Пример #1
0
        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));
        }
Пример #2
0
        public static RPMusicGenre Genre(this RPMusicAlbum al)
        {
            foreach (RPMusicGenre gn in MusicCache.Default.Framework.Genres)
            {
                if (gn.ID == al.GenreID)
                {
                    return(gn);
                }
            }

            return(null);
        }
Пример #3
0
        // 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);
        }
Пример #4
0
        public static string ArtistName(this RPMusicAlbum al)
        {
            RPMusicArtist ar = al.Artist();

            if (ar != null)
            {
                return(ar.Name);
            }
            else
            {
                return("Unknown Artist");
            }
        }
Пример #5
0
        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);
        }
Пример #6
0
 public static bool IsPseudoAlbum(this RPMusicAlbum al)
 {
     return((al.ID.StartsWith("[ALL")));
 }