public static Uri ThumbnailUriOrNull(this RPMusicAlbum al, string size) { // Normal albums - remote thumbnail if (string.IsNullOrEmpty(size)) { size = "medium"; } return(new Uri("musicalbumthumbnail64?id=" + Uri.EscapeUriString(Functions.EncodeToBase64(al.ID)) + "&size=" + size, UriKind.Absolute)); }
public static RPMusicGenre Genre(this RPMusicAlbum al) { foreach (RPMusicGenre gn in MusicCache.Default.Framework.Genres) { if (gn.ID == al.GenreID) { return(gn); } } return(null); }
// Album => public static RPMusicArtist Artist(this RPMusicAlbum al) { foreach (RPMusicArtist ar in MusicCache.Default.Framework.Artists) { if (ar.ID == al.ArtistID) { return(ar); } } return(null); }
public static string ArtistName(this RPMusicAlbum al) { RPMusicArtist ar = al.Artist(); if (ar != null) { return(ar.Name); } else { return("Unknown Artist"); } }
public List <RPMusicAlbum> GetAllAlbums() { if (!Settings.Default.EnableMusicLibrary) { return(new List <RPMusicAlbum>()); } WindowsMediaPlayer WMPlayer = new WindowsMediaPlayer(); List <RPMusicAlbum> output = new List <RPMusicAlbum>(); IWMPStringCollection scAlbums = WMPlayer.mediaCollection.getAttributeStringCollection("AlbumID", "Audio"); for (int i = 0; i < scAlbums.count; i++) { if (string.IsNullOrEmpty(scAlbums.Item(i))) { continue; // avoid null strings } RPMusicAlbum album = new RPMusicAlbum(); album.ID = scAlbums.Item(i); // Find a song in this album IWMPPlaylist pl = WMPlayer.mediaCollection.getByAttribute("AlbumID", album.ID); if (pl.count < 1) { continue; // don't add the album; no matching media items (must be an error, shouldn't happen) } IWMPMedia song = pl.get_Item(0); // just use the first song to get the additional album info // ALBUM ARTIST: Try to use the song property's "album artist", if this doesn't work, use the first song's author album.ArtistID = song.getItemInfo("WM/AlbumArtist"); if (string.IsNullOrEmpty(album.ArtistID)) { album.ArtistID = song.getItemInfo("Author"); } album.Title = song.getItemInfo("WM/AlbumTitle"); album.GenreID = song.getItemInfo("Genre"); output.Add(album); } WMPlayer.close(); // Sort output A-Z CommonEPG.Comparers.RPMusicAlbumNameComparer myComparer = new CommonEPG.Comparers.RPMusicAlbumNameComparer(); output.Sort(myComparer); return(output); }
public static bool IsPseudoAlbum(this RPMusicAlbum al) { return((al.ID.StartsWith("[ALL"))); }