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; }
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)); }
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)); }
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)); }