Ejemplo n.º 1
0
        public void Process(NodeAlbum aNode)
        {
            musicAlbum metadata = new musicAlbum();

            SetContainerMetadata(metadata, aNode);

            LibraryItem albumArtItem = null;

            foreach (NodeItem item in aNode.ItemList)
            {
                LibraryItem libItem = item.LibraryItem;
                if (libItem.AlbumArtId != null)
                {
                    albumArtItem = libItem;
                    break;
                }
            }

            if (albumArtItem != null)
            {
                string filename = iLibrary.GetAlbumArtFilenameNoExt(albumArtItem.AlbumArtId) + albumArtItem.AlbumArtExt;
                try
                {
                    string albumArtUri = iSupport.VirtualFileSystem.Uri(filename);
                    metadata.AlbumArtUri.Add(albumArtUri);
                }
                catch (HttpServerException) { }
            }

            iMetadata = metadata;
        }
Ejemplo n.º 2
0
        public static string Album(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is musicAlbum)
            {
                musicAlbum album = aObject as musicAlbum;
                result = album.Title;
            }
            else if (aObject is musicVideoClip)
            {
                musicVideoClip item = aObject as musicVideoClip;
                if (item.Album.Count > 0)
                {
                    result = item.Album[0];
                }
            }
            else if (aObject is musicTrack)
            {
                musicTrack item = aObject as musicTrack;
                if (item.Album.Count > 0)
                {
                    result = item.Album[0];
                }
            }

            // always return a non-null string
            return(NonNullString(result));
        }
Ejemplo n.º 3
0
        public static string AlbumArtist(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is person)
            {
                person person = aObject as person;
                result = person.Title;
            }
            else if (aObject is musicAlbum)
            {
                // Album Artist for a musicAlbum object is, in order of preference,
                // - the <artist role="albumArtist"> value
                // - the <artist> value
                // - the <creator> value
                musicAlbum album = aObject as musicAlbum;

                string roleAlbumArtist = null;
                string roleNull        = null;
                foreach (artist a in album.Artist)
                {
                    if (string.IsNullOrEmpty(a.Role))
                    {
                        roleNull = a.Artist;
                    }
                    else if (a.Role.ToLower() == "albumartist")
                    {
                        roleAlbumArtist = a.Artist;
                    }
                }

                if (!string.IsNullOrEmpty(roleAlbumArtist))
                {
                    result = roleAlbumArtist;
                }
                else if (!string.IsNullOrEmpty(roleNull))
                {
                    result = roleNull;
                }
                else
                {
                    result = album.Creator;
                }
            }
            else if (aObject is musicTrack)
            {
                // Album Artist for a track is unambiguous - it is the <artist role="albumArtist"> value or nothing
                musicTrack item = aObject as musicTrack;
                foreach (artist a in item.Artist)
                {
                    if (a.Role != null && a.Role.ToLower() == "albumartist")
                    {
                        result = a.Artist;
                        break;
                    }
                }
            }
            else if (aObject is musicVideoClip)
            {
                musicVideoClip item = aObject as musicVideoClip;
                foreach (artist a in item.Artist)
                {
                    if (a.Role != null && a.Role.ToLower() == "albumartist")
                    {
                        result = a.Artist;
                        break;
                    }
                }
            }

            // always return a non-null string
            return(NonNullString(result));
        }
Ejemplo n.º 4
0
        public static string Genre(upnpObject aObject)
        {
            string result = string.Empty;

            if (aObject is genre)
            {
                genre genre = aObject as genre;
                result = genre.Title;
            }
            else if (aObject is musicArtist)
            {
                musicArtist artist = aObject as musicArtist;
                for (int i = 0; i < artist.Genre.Count; ++i)
                {
                    if (i > 0 && i < artist.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += artist.Genre[i];
                }
            }
            else if (aObject is musicAlbum)
            {
                musicAlbum album = aObject as musicAlbum;
                for (int i = 0; i < album.Genre.Count; ++i)
                {
                    if (i > 0 && i < album.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += album.Genre[i];
                }
            }
            else if (aObject is audioItem)
            {
                audioItem item = aObject as audioItem;
                for (int i = 0; i < item.Genre.Count; ++i)
                {
                    if (i > 0 && i < item.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += item.Genre[i];
                }
            }
            else if (aObject is videoItem)
            {
                videoItem item = aObject as videoItem;
                for (int i = 0; i < item.Genre.Count; ++i)
                {
                    if (i > 0 && i < item.Genre.Count - 1)
                    {
                        result += ", ";
                    }
                    result += item.Genre[i];
                }
            }

            // always return a non-null string
            return(NonNullString(result));
        }