예제 #1
0
 public bool Equals(Song obj)
 {
     return (Name == obj.Name) && (AudioBitrate == obj.AudioBitrate) && (IsCurrentSong == obj.IsCurrentSong)
         && (Artist == obj.Artist) && (Album == obj.Album) && (Number == obj.Number);
 }
예제 #2
0
        private static IEnumerable<Song> AddFiles(string path)
        {
            List<Song> songs = new List<Song>();
            try
            {
                if (Directory.Exists(path)) // is Directory
                {
                    List<string> newpathList = new List<string>();
                    newpathList.AddRange(Directory.GetDirectories(path));
                    newpathList.AddRange(Directory.GetFiles(path));
                    foreach (var newpath in newpathList)
                    {
                        songs.AddRange(AddFiles(newpath));
                    }
                }
                else
                {
                    if (File.Exists(path) && IsMediaFile(path))
                    {
                        var fileWithTags = TagLib.File.Create(path);
                        var newSong = new Song
                        {
                            Album = fileWithTags.Tag.Album,
                            Artist = fileWithTags.Tag.FirstPerformer,
                            Genre = fileWithTags.Tag.FirstGenre,
                            Name = fileWithTags.Tag.Title,
                            Number = fileWithTags.Tag.Track,
                            Year = fileWithTags.Tag.Year,
                            Path = path,
                            Duration = fileWithTags.Properties.Duration,
                            AudioBitrate = fileWithTags.Properties.AudioBitrate
                        };

                        songs.Add(newSong);
                    }
                }
                return songs;
            }
            catch
            {
                return new List<Song>();
            }
        }