private string SelectArtistTag(MPDSongResponseBlock block) { if (Settings.Default.UseAlbumArtist) { return(block.AlbumArtist ?? block.Artist ?? UnknownArtist); } else { return(block.Artist ?? UnknownArtist); } }
private GenreFilteredAlbum GetOrCreateGenreFilteredAlbum(Album album, MPDSongResponseBlock block) { Genre genre = Genres[block.Genre ?? UnknownGenre]; if (!m_GenreFilteredAlbumLookup.ContainsKey(genre)) { m_GenreFilteredAlbumLookup[genre] = new SortedDictionary <Album, GenreFilteredAlbum>(); } IDictionary <Album, GenreFilteredAlbum> albumList = m_GenreFilteredAlbumLookup[genre]; if (!albumList.ContainsKey(album)) { string directory = new Path(block.File).Directories.Last(); GenreFilteredAlbum genreFilteredAlbum = new GenreFilteredAlbum(genre, album.Artist, album.Title, album.Date, directory); m_GenreFilteredAlbumLookup[genre][album] = genreFilteredAlbum; AddGenreExpansion(genre, genreFilteredAlbum); } return(m_GenreFilteredAlbumLookup[genre][album]); }
private Album GetOrCreateAlbum(MPDSongResponseBlock block) { Artist artist = Artists[SelectArtistTag(block)]; string albumKey = block.Album ?? UnknownAlbum; if (!m_AlbumLookup.ContainsKey(artist)) { m_AlbumLookup[artist] = new SortedDictionary <string, Album>(StringComparer.Ordinal); } IDictionary <string, Album> albumList = m_AlbumLookup[artist]; if (!albumList.ContainsKey(albumKey)) { string date = null; if (block.Date != null) { if (Path.IsSpotify(block.File)) { date = m_DataModel.YearNormalizer.Normalize(block.Date); } else { date = m_DataModel.CustomDateNormalizer.Normalize(block.Date); } } string directory = new Path(block.File).Directories.Last(); Album album = new Album(artist, albumKey, date, directory); albumList[albumKey] = album; AddArtistExpansion(artist, album); } return(albumList[albumKey]); }
private string SelectArtistTag(MPDSongResponseBlock block) { if (Settings.Default.UseAlbumArtist) { return block.AlbumArtist ?? block.Artist ?? UnknownArtist; } else { return block.Artist ?? UnknownArtist; } }
private GenreFilteredAlbum GetOrCreateGenreFilteredAlbum(Album album, MPDSongResponseBlock block) { Genre genre = Genres[block.Genre ?? UnknownGenre]; if (!m_GenreFilteredAlbumLookup.ContainsKey(genre)) { m_GenreFilteredAlbumLookup[genre] = new SortedDictionary<Album, GenreFilteredAlbum>(); } IDictionary<Album, GenreFilteredAlbum> albumList = m_GenreFilteredAlbumLookup[genre]; if (!albumList.ContainsKey(album)) { string directory = new Path(block.File).Directories.Last(); GenreFilteredAlbum genreFilteredAlbum = new GenreFilteredAlbum(genre, album.Artist, album.Title, album.Date, directory); m_GenreFilteredAlbumLookup[genre][album] = genreFilteredAlbum; AddGenreExpansion(genre, genreFilteredAlbum); } return m_GenreFilteredAlbumLookup[genre][album]; }
private Album GetOrCreateAlbum(MPDSongResponseBlock block) { Artist artist = Artists[SelectArtistTag(block)]; string albumKey = block.Album ?? UnknownAlbum; if (!m_AlbumLookup.ContainsKey(artist)) { m_AlbumLookup[artist] = new SortedDictionary<string, Album>(StringComparer.Ordinal); } IDictionary<string, Album> albumList = m_AlbumLookup[artist]; if (!albumList.ContainsKey(albumKey)) { string date = null; if (block.Date != null) { if (Path.IsSpotify(block.File)) { date = m_DataModel.YearNormalizer.Normalize(block.Date); } else { date = m_DataModel.CustomDateNormalizer.Normalize(block.Date); } } string directory = new Path(block.File).Directories.Last(); Album album = new Album(artist, albumKey, date, directory); albumList[albumKey] = album; AddArtistExpansion(artist, album); } return albumList[albumKey]; }
private void ParseSongList() { // Uncomment this to read the song database from a diagnostics dump. //ReadResponseFromFile(); MPDSongResponseBlock song = new MPDSongResponseBlock(null); foreach (MPDResponseLine line in m_CurrentResponse) { if (line.Key == MPDResponseLine.Keyword.File) { if (song.File != null) { m_CurrentSongList.Add(song); } song = new MPDSongResponseBlock(line.Value); } else if (line.Key == MPDResponseLine.Keyword.Album) { song.Album = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Artist) { song.Artist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.AlbumArtist) { song.AlbumArtist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Date) { song.Date = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Genre) { song.Genre = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Id) { song.Id = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Name) { song.Name = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Pos) { song.Pos = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Time) { int?time = line.IntValue; song.Time = time > 0 ? time : null; } else if (line.Key == MPDResponseLine.Keyword.Title) { song.Title = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Track) { song.Track = line.IntValue; } } if (song.File != null) { m_CurrentSongList.Add(song); } }
private void ParseSongList() { MPDSongResponseBlock song = new MPDSongResponseBlock(null); foreach (MPDResponseLine line in m_CurrentResponse) { if (line.Key == MPDResponseLine.Keyword.File) { if (song.File != null) { m_CurrentSongList.Add(song); } song = new MPDSongResponseBlock(line.Value); } else if (line.Key == MPDResponseLine.Keyword.Album) { song.Album = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Artist) { song.Artist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.AlbumArtist) { song.AlbumArtist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Date) { song.Date = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Genre) { song.Genre = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Id) { song.Id = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Name) { song.Name = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Pos) { song.Pos = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Time) { int?time = line.IntValue; song.Time = time > 0 ? time : null; } else if (line.Key == MPDResponseLine.Keyword.Title) { song.Title = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Track) { song.Track = line.IntValue; } } if (song.File != null) { m_CurrentSongList.Add(song); } }
private void ParseSongList() { // Uncomment this to read the song database from a diagnostics dump. //ReadResponseFromFile(); MPDSongResponseBlock song = new MPDSongResponseBlock(null); foreach (MPDResponseLine line in m_CurrentResponse) { if (line.Key == MPDResponseLine.Keyword.File) { if (song.File != null) { m_CurrentSongList.Add(song); } song = new MPDSongResponseBlock(line.Value); } else if (line.Key == MPDResponseLine.Keyword.Album) { song.Album = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Artist) { song.Artist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.AlbumArtist) { song.AlbumArtist = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Date) { song.Date = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Genre) { song.Genre = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Id) { song.Id = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Name) { song.Name = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Pos) { song.Pos = line.IntValue; } else if (line.Key == MPDResponseLine.Keyword.Time) { int? time = line.IntValue; song.Time = time > 0 ? time : null; } else if (line.Key == MPDResponseLine.Keyword.Title) { song.Title = line.Value; } else if (line.Key == MPDResponseLine.Keyword.Track) { song.Track = line.IntValue; } } if (song.File != null) { m_CurrentSongList.Add(song); } }