public List <RPMusicArtist> GetAllArtists() { if (!Settings.Default.EnableMusicLibrary) { return(new List <RPMusicArtist>()); } WindowsMediaPlayer WMPlayer = new WindowsMediaPlayer(); List <RPMusicArtist> output = new List <RPMusicArtist>(); List <RPMusicArtist> outputList = new List <RPMusicArtist>(); IWMPStringCollection scArtists = WMPlayer.mediaCollection.getAttributeStringCollection("Author", "Audio"); for (int i = 0; i < scArtists.count; i++) { string strArtistName = scArtists.Item(i); if (string.IsNullOrEmpty(strArtistName)) { continue; // Believe it or not WMP sometimes returns an empty artist name } RPMusicArtist artist = new RPMusicArtist(strArtistName); output.Add(artist); } WMPlayer.close(); // Sort output A-Z CommonEPG.Comparers.RPMusicArtistNameComparer myComparer = new CommonEPG.Comparers.RPMusicArtistNameComparer(); output.Sort(myComparer); return(output); }
public List <RPMusicGenre> GetAllGenres() { if (!Settings.Default.EnableMusicLibrary) { return(new List <RPMusicGenre>()); } WindowsMediaPlayer WMPlayer = new WindowsMediaPlayer(); List <RPMusicGenre> output = new List <RPMusicGenre>(); IWMPStringCollection scGenres = WMPlayer.mediaCollection.getAttributeStringCollection("Genre", "Audio"); for (int i = 0; i < scGenres.count; i++) { RPMusicGenre genre = new RPMusicGenre(scGenres.Item(i)); output.Add(genre); } WMPlayer.close(); // Sort output A-Z CommonEPG.Comparers.RPMusicGenreTitleComparer myComparer = new CommonEPG.Comparers.RPMusicGenreTitleComparer(); output.Sort(myComparer); return(output); }
public int addAlbums(IWMPStringCollection collection, IWMPMediaCollection2 mediaCollection) { ArrayList items = new ArrayList(); for (int k = 0; k < collection.count; k++) { string name = collection.Item(k); if (name != null && !name.Equals("")) { Album item; if (!stats_only) { item = new Album(name, mediaCollection.getByAlbum(name)); } else { item = new Album(name, true); } if (!items.Contains(item)) { items.Add(item); } } } items.TrimToSize(); if (!stats_only) { albums = items; } return(items.Count); }
public void ResetAlbumList() { // Get the list of album names and put them into the listbox. IWMPStringCollection rgsAlbumNames = wmpplayer.mediaCollection.getAttributeStringCollection("Album", "Audio"); for (int i = 0; i < rgsAlbumNames.count; i++) { string strAlbumName = rgsAlbumNames.Item(i); albumListbox.Items.Add(strAlbumName); } }
private void SaveWMPLibraryData(NHibernate.ISession pDataSession) { // Hip hip hooray for procedural...... WindowsMediaPlayerClass WMP = new WindowsMediaPlayerClass(); IWMPMediaCollection mc = WMP.mediaCollection; IWMPStringCollection strings = mc.getAttributeStringCollection("AlbumID", "audio"); var albumArtistLookup = new System.Collections.Hashtable(); int WmpCount = strings.count; if (WmpCount > 0) { for (int i = 0; i < WmpCount; i++) { string item = strings.Item(i); IWMPPlaylist playlist = mc.getByAttribute("AlbumID", item); playlist.setItemInfo("SortAttribute", "OriginalIndex"); int playlistCount = playlist.count; if (playlistCount > 0) { for (int ic = 0; ic < playlistCount; ic++) { IWMPMedia mMedia = playlist.get_Item(ic); string guid = mMedia.getItemInfo("WM/WMCollectionID"); string albumTitle = mMedia.getItemInfo("WM/AlbumTitle"); string albumArtist = mMedia.getItemInfo("WM/AlbumArtist"); FileInfo file = new FileInfo(mMedia.sourceURL); //Add to array if not found if (!string.IsNullOrEmpty(guid) && !string.IsNullOrEmpty(albumTitle) && !albumArtistLookup.ContainsKey(file.DirectoryName)) { albumArtistLookup[file.DirectoryName] = true; string filePathLarge = System.IO.Path.Combine(file.DirectoryName, string.Format(WMP_LARGE_GUID, guid)); string filePathSmall = System.IO.Path.Combine(file.DirectoryName, string.Format(WMP_SMALL_GUID, guid)); if (File.Exists(filePathLarge)) { CreateAndSaveLargeArt(albumArtist, albumTitle, filePathLarge, pDataSession); } if (File.Exists(filePathSmall)) { CreateAndSaveSmallArt(albumArtist, albumTitle, filePathSmall, pDataSession); } } } } } } }
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); }
private ArrayList getArray(IWMPStringCollection collection) { ArrayList items = new ArrayList(); for (int k = 0; k < collection.count; k++) { string item = collection.Item(k); if (item != null && !item.Equals("") && !items.Contains(item)) { items.Add(item); } } items.TrimToSize(); return(items); }
public int addAlbumArtists(IWMPStringCollection collection) { int result_count = 0; if (!stats_only) { album_artists = getArray(collection); result_count = album_artists.Count; } else { result_count = getArrayCount(getArray(collection)); } return(result_count); }
public int addGenres(IWMPStringCollection collection) { int result_count = 0; if (!stats_only) { genres = getArray(collection); result_count = genres.Count; } else { result_count = getArrayCount(getArray(collection)); } return(result_count); }