RaumfeldNET.MediaItem.newFromUpnpItemClass C# (CSharp) Метод

newFromUpnpItemClass() публичный статический Метод

public static newFromUpnpItemClass ( String _upnpItemClass, String _raumfeldSection ) : MediaItem
_upnpItemClass String
_raumfeldSection String
Результат MediaItem
        public static MediaItem newFromUpnpItemClass(String _upnpItemClass, String _raumfeldSection)
        {
            MediaItem mediaItem;

            switch (_upnpItemClass)
            {
                case "object.item.audioItem.musicTrack":
                    mediaItem = new MediaItem_Track();
                    break;
                case "object.container.album.musicAlbum":
                    mediaItem = new MediaItem_Album();
                    break;
                case "object.container.albumContainer":
                    mediaItem = new MediaItem(); // @@@
                    break;
                case "object.container.person.musicArtist":
                    mediaItem = new MediaItem_Artist();
                    break;
                case "object.container.genre.musicGenre":
                    mediaItem = new MediaItem_Genre();
                    break;
                case "object.container.person.musicComposer":
                    mediaItem = new MediaItem_Composer();
                    break;
                case "object.container.trackContainer":
                    mediaItem = new MediaItem_TrackContainer();
                    break;
                case "object.container.trackContainer.napster":
                    mediaItem = new MediaItem_TrackContainer();
                    break;
                case "object.item.audioItem.audioBroadcast.radio":
                    mediaItem = new MediaItem_Radio();
                    break;
                case "object.item.audioItem.audioBroadcast.lastFM":
                    mediaItem = new MediaItem_LastFm();
                    break;
                case "object.item.audioItem.audioBroadcast.rhapsody":
                    mediaItem = new MediaItem_RhapsodyRadio();
                    break;
                case "object.item.audioItem.audioBroadcast.lineIn":
                    mediaItem = new MediaItem_LineIn();
                    break;
                case "object.container.playlistContainer":
                    mediaItem = new MediaItem_Playlist();
                    break;
                case "object.container.playlistContainer.queue":
                    if (_raumfeldSection == "Playlists")
                    {
                        mediaItem = new MediaItem_Playlist();
                    }
                    else
                    {
                        mediaItem = new MediaItem();
                    }
                    break;
                case "object.container":
                    mediaItem = new MediaItem();
                    break;
                case "object.container.storageFolder":
                    mediaItem = new MediaItem_StorageFolder();
                    break;
                case "object.container.favoritesContainer":
                    mediaItem = new MediaItem();
                    break;
                case "object.container.playlistContainer.shuffle":
                    mediaItem = new MediaItem_Shuffle();
                    break;
                default:
                    mediaItem = new MediaItem();
                    break;
            }

            mediaItem.upnpItemClass = _upnpItemClass;

            return mediaItem;
        }

Usage Example

Пример #1
0
        protected virtual MediaItem createMediaItemForMetaDataNode(XmlNode _nodeItem, XmlNamespaceManager _manager)
        {
            MediaItem mediaItem;
            String    raumfeldSection;
            String    upnpClass;

            // check type of item by info we get on result, it may be a track, a album, artist info... aso..
            // for this create own Classed derived from Media Information. In fact a list will consists only
            // of items with one type. But this class should be able to handle differnt types of items in a list
            upnpClass       = this.xmlDocumentHelper.getChildNodeValue(_nodeItem, "upnp:class", _manager);
            raumfeldSection = this.xmlDocumentHelper.getChildNodeValue(_nodeItem, "raumfeld:section", _manager);

            if (String.IsNullOrWhiteSpace(upnpClass))
            {
                return(null);
            }

            mediaItem = MediaItem.newFromUpnpItemClass(upnpClass, raumfeldSection);
            mediaItem.initValuesFromXMLNode(_nodeItem, _manager);

            if (!isItemViewable(mediaItem))
            {
                return(null);
            }

            return(mediaItem);
        }