예제 #1
0
        private void OnSendToQueue(object obj)
        {
            ItemBase itemBase = obj as ItemBase;

            if (itemBase != null)
            {
                switch (itemBase.Type)
                {
                case ItemType.Content:
                {
                    this.multiScreen.PushMediaToTvQueue((Content)itemBase);
                    break;
                }

                case ItemType.Folder:
                {
                    MultimediaFolder multimediaFolder = (MultimediaFolder)itemBase;
                    this.multiScreen.PushMediaToTvQueue(multimediaFolder.GetFilesList());
                    return;
                }

                default:
                {
                    return;
                }
                }
            }
        }
        private IEnumerable <XElement> HandleBrowse(HttpRequest request, Dictionary <string, string> sparams)
        {
            int    num;
            int    num1;
            string item = sparams["ObjectID"];
            string str  = sparams["BrowseFlag"];

            if (int.TryParse(sparams["RequestedCount"], out num) && num <= 0)
            {
                num = 20;
            }
            if (int.TryParse(sparams["StartingIndex"], out num1) && num1 <= 0)
            {
                num1 = 0;
            }
            MultimediaFolder rootFolder = null;
            string           str1       = item;
            string           str2       = str1;

            if (str1 == null)
            {
                goto Label0;
            }
            else if (str2 == "0")
            {
                rootFolder = this.dataLibrary.RootFolder;
            }
            else if (str2 == "I")
            {
                rootFolder = this.dataLibrary.RootImageFolder;
            }
            else if (str2 == "A")
            {
                rootFolder = this.dataLibrary.RootMusicFolder;
            }
            else
            {
                if (str2 != "V")
                {
                    goto Label0;
                }
                rootFolder = this.dataLibrary.RootVideoFolder;
            }
Label2:
            XName xName = this.didl + "DIDL-Lite";

            object[] xAttribute = new object[] { new XAttribute(XNamespace.Xmlns + "dc", this.dc), new XAttribute(XNamespace.Xmlns + "dlna", this.dlna), new XAttribute(XNamespace.Xmlns + "upnp", this.upnp), new XAttribute(XNamespace.Xmlns + "sec", this.sec) };
            XElement xElement   = new XElement(xName, xAttribute);

            if (str != "BrowseMetadata")
            {
                xElement.Add((
                                 from i in rootFolder.GetFoldersList()
                                 select this.CreateFolder(i)).Union <XElement>(
                                 from i in rootFolder.GetFilesList()
                                 select this.CreateItem(i)).Skip <XElement>(num1).Take <XElement>(num));
            }
            else
            {
                xElement.Add(this.CreateFolder(rootFolder));
            }
            yield return(new XElement("Result", xElement.ToString()));

            yield return(new XElement("NumberReturned", (object)xElement.Elements().Count <XElement>()));

            yield return(new XElement("TotalMatches", (object)rootFolder.ItemsList.Count));

            yield return(new XElement("UpdateID", (object)this.systemID));

            yield break;
Label0:
            rootFolder = this.dataLibrary.GetItemById(new Guid(item), this.dataLibrary.RootFolder) as MultimediaFolder;
            goto Label2;
            goto Label0;
        }