示例#1
0
        public Dictionary <string, Album> create(string[] files)
        {
            Dictionary <string, Album> dict = new Dictionary <string, Album>();
            int i = 1;

            foreach (string file in files)
            {
                progressListener.notifyProgress(files.Length, i++);
                try
                {
                    using (MusicTag tagFile = MusicTagFactory.create(file))
                    {
                        if (tagFile.Disc == 0 || tagFile.DiscCount == 0 || tagFile.Track == 0 || tagFile.TrackCount == 0)
                        {
                            continue;
                        }

                        Album al;
                        if (!dict.ContainsKey(tagFile.AlbumTitle))
                        {
                            dict[tagFile.AlbumTitle] = new Album(tagFile.AlbumTitle, tagFile.DiscCount);
                        }

                        al = dict[tagFile.AlbumTitle];
                        al.addTrack(tagFile.Disc, tagFile.Track, tagFile.TrackCount, tagFile.Title, file, tagFile.Artist);
                    }
                }
                catch (Exception)
                {
                    continue;
                }
            }
            return(dict);
        }
示例#2
0
        /// <summary>
        /// トラック番号を再採番する。
        /// 第1ソートキーをディスク番号、第2ソートキーをトラック番号として1から順に再採番する。
        /// </summary>
        /// <param name="album">再採番するアルバム</param>
        public void reset(Album album)
        {
            uint newTrack = 1;

            for (uint i = 1; album != null && i <= album.DiscCount; ++i)
            {
                Disc disc = album.getDisc(i);
                for (uint j = 1; disc != null && j <= disc.TrackCount; ++j)
                {
                    Track track = disc.getTrack(j);
                    if (track == null)
                    {
                        continue;
                    }
                    using (MusicTag tagFile = MusicTagFactory.create(track.FilePath))
                    {
                        tagFile.Track      = newTrack++;
                        tagFile.TrackCount = album.AllTrackCount;
                        tagFile.save();
                    }
                }
            }
        }