Ejemplo n.º 1
0
        public async Task StartScanPhotoContentAsync()
        {
            try
            {
                //root
                DIDLLite didllite_root = await BrowseFolderAsync("0");

                foreach (Container cont_root in didllite_root.Containers)
                {
                    if (cont_root.PersistentID == "picture")
                    {
                        DIDLLite didllite_photo = await BrowseFolderAsync(cont_root.Id);

                        foreach (Container cont_photo in didllite_photo.Containers)
                        {
                            if (cont_photo.PersistentID == "picture/all")
                            {
                                DIDLLite didllite_allphoto = await BrowseFolderAsync(cont_photo.Id);

                                Content content = new Content(didllite_allphoto, cont_photo.ParentID, this.PresentationURL);

                                if (OnPhotoContentScanCompleted != null)
                                {
                                    OnPhotoContentScanCompleted(this, new PhotoContentScanCompletedEventArgs(content));
                                }
                                return;
                            }
                        }
                    }
                }
            }
            catch
            {
            }
        }
Ejemplo n.º 2
0
 private void onCurrentTrackMetaDataChanged(RaumFeldEvent args)
 {
     // val = "<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:raumfeld="urn:schemas-raumfeld-com:meta-data/raumfeld" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" lang="en"><item parentID="0/My Music/Albums/The%20Notwist+12" id="0/My Music/Albums/The%20Notwist+12/75725c9134fd69b824706f8a3b3030c4" restricted="1"><raumfeld:name>Track</raumfeld:name><upnp:class>object.item.audioItem.musicTrack</upnp:class><raumfeld:section>My Music</raumfeld:section><dc:title>The String</dc:title><upnp:album>12</upnp:album><upnp:artist>The Notwist</upnp:artist><upnp:genre>Punk Rock</upnp:genre><dc:creator>The Notwist</dc:creator><upnp:originalTrackNumber>7</upnp:originalTrackNumber><dc:date>1995-01-01</dc:date><upnp:albumArtURI dlna:profileID="JPEG_TN">http://192.168.0.18:47366/?artist=The%20Notwist&albumArtist=The%20Notwist&album=12&track=The%20String</upnp:albumArtURI><res protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3" size="5636735" duration="0:04:31.000" bitrate="163840" sampleFrequency="44100" nrAudioChannels="2" sourceName="music on jc-station" sourceType="smb" sourceID="uuid:39cb689d-3804-43da-a14e-21102a1f50ec">http://192.168.0.18:37665/redirect?uri=smb%3A%2F%2Fjc-station%2Fmusic%2F%2FMP3%2FThe%2520Notwist%2F12%2F07%2520The%2520String.mp3</res></item></DIDL-Lite>" />
     if (args.ChangedValues.TryGetValue("val", out string currenttrackmetadata))
     {
         DIDLLite didl = currenttrackmetadata.Deserialize <DIDLLite>();
         if ((didl?.Items?.Count() ?? 0) != 0)
         {
             CurrentTrackMetaData = PrismUnityApplication.Current.Container.Resolve <ElementItem>(new ResolverOverride[]
             {
                 new ParameterOverride("didl", didl?.Items?.FirstOrDefault())
             });
             AlbumArtUri = CurrentTrackMetaData.AlbumArtUri;
             setSelection(CurrentTrackMetaData);
         }
     }
 }
Ejemplo n.º 3
0
        private async Task <DIDLLite> BrowseFolderAsync(string id)
        {
            try
            {
                if (_browseAction != null)
                {
                    DIDLLite didllite = new DIDLLite();
                    didllite.Containers = new List <Container>();
                    didllite.Items      = new List <Item>();
                    int  start_from = 0;
                    int  limit      = 100;
                    bool found      = false;
                    do
                    {
                        _browseAction.ClearArgumentsValue();
                        _browseAction.SetArgumentValue("ObjectId", id);
                        _browseAction.SetArgumentValue("BrowseFlag", "BrowseDirectChildren");
                        _browseAction.SetArgumentValue("Filter", "*");
                        _browseAction.SetArgumentValue("StartingIndex", start_from.ToString());
                        _browseAction.SetArgumentValue("RequestedCount", limit.ToString());
                        _browseAction.SetArgumentValue("SortCriteria", "");
                        await _browseAction.InvokeAsync(ServiceTypes.CONTENTDIRECTORY, this.ContentDirectoryControlUrl.AbsoluteUri);

                        DIDLLite tmp_didllite = Deserializer.DeserializeXml <DIDLLite>(_browseAction.GetArgumentValue("Result"));
                        foreach (Container container in tmp_didllite.Containers)
                        {
                            didllite.Containers.Add(container);
                        }
                        foreach (Item item in tmp_didllite.Items)
                        {
                            didllite.Items.Add(item);
                        }
                        found       = (tmp_didllite.Containers.Count > 0 || tmp_didllite.Items.Count > 0);
                        start_from += limit;
                    }while (found);

                    return(didllite);
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }
Ejemplo n.º 4
0
 private async void onAVTransportURIMetaDataChanged(RaumFeldEvent args)
 {
     // val = "&lt;DIDL-Lite xmlns=&quot;urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/&quot; xmlns:raumfeld=&quot;urn:schemas-raumfeld-com:meta-data/raumfeld&quot; xmlns:upnp=&quot;urn:schemas-upnp-org:metadata-1-0/upnp/&quot; xmlns:dc=&quot;http://purl.org/dc/elements/1.1/&quot; xmlns:dlna=&quot;urn:schemas-dlna-org:metadata-1-0/&quot; lang=&quot;en&quot;&gt;&lt;container parentID=&quot;0/My Music/Albums&quot; id=&quot;0/My Music/Albums/The%20Notwist+12&quot; restricted=&quot;1&quot; childCount=&quot;9&quot;&gt;&lt;raumfeld:name&gt;Album&lt;/raumfeld:name&gt;&lt;upnp:class&gt;object.container.album.musicAlbum&lt;/upnp:class&gt;&lt;raumfeld:section&gt;My Music&lt;/raumfeld:section&gt;&lt;upnp:artist&gt;The Notwist&lt;/upnp:artist&gt;&lt;dc:date&gt;1995&lt;/dc:date&gt;&lt;upnp:album&gt;12&lt;/upnp:album&gt;&lt;upnp:albumArtURI dlna:profileID=&quot;JPEG_TN&quot;&gt;http://192.168.0.18:47366/?albumArtist=The%20Notwist&amp;amp;album=12&lt;/upnp:albumArtURI&gt;&lt;raumfeld:totalPlaytime&gt;0:39:07&lt;/raumfeld:totalPlaytime&gt;&lt;dc:title&gt;12&lt;/dc:title&gt;&lt;/container&gt;&lt;/DIDL-Lite&gt;" />
     if (args.ChangedValues.TryGetValue("val", out string avtransporturimetadata))
     {
         DIDLLite didl = avtransporturimetadata.Deserialize <DIDLLite>();
         if ((didl?.Containers?.Count() ?? 0) != 0)
         {
             if (await raumFeldService.BrowseChildren(ZoneViewModelTracks, didl.Containers?.First().Id, true))
             {
                 setSelection(CurrentTrackMetaData);
             }
             else
             {
                 ZoneViewModelTracks.Clear();
             }
         }
     }
 }