コード例 #1
0
ファイル: XmlDisc.cs プロジェクト: OriginalCliff/itsfv
        public XmlDisc(List<string> filePaths)
            : this()
        {
            foreach (string p in filePaths)
            {
                XmlTrack xt = new XmlTrack(p);
                this.Tracks.Add(xt);
            }

            if (this.Tracks.Count > 0)
            {
                this.Key = Tracks[0].GetDiscKey();
            }
        }
コード例 #2
0
ファイル: ReportWriter.cs プロジェクト: OriginalCliff/itsfv
 public void AddTrackMissingTags(XmlTrack track, List<string> missingTags)
 {
     TracksMissingTags.Add(track, missingTags);
 }
コード例 #3
0
ファイル: ReportWriter.cs プロジェクト: OriginalCliff/itsfv
 public void AddTrackLowResArtwork(XmlTrack track, List<string> artwork_dimensions)
 {
     TracksLowResArtwork.Add(track, artwork_dimensions);
 }
コード例 #4
0
ファイル: XmlLibrary.cs プロジェクト: OriginalCliff/itsfv
        /// <summary>
        /// Method to add a track to Player
        /// </summary>
        /// <param name="track"></param>
        private void AddTrack(XmlTrack track)
        {
            string albumName = track.AlbumArtist;
            if (string.IsNullOrEmpty(albumName))
                albumName = Path.GetFileName(Path.GetDirectoryName(track.Location));

            XmlAlbumArtist tempBand = GetBand(albumName);
            if (tempBand == null)
            {
                tempBand = new XmlAlbumArtist(albumName);
                Library.Add(tempBand.Name, tempBand);
                AlbumArtists.Add(tempBand);
            }

            XmlAlbum tempAlbum = tempBand.GetAlbum(track.GetAlbumKey());
            if (tempAlbum == null)
            {
                tempAlbum = new XmlAlbum(track.GetAlbumKey());
                Library[albumName].AddAlbum(tempAlbum);
                Albums.Add(tempAlbum);
            }

            XmlDisc tempDisc = tempAlbum.GetDisc(track.GetDiscKey());
            if (tempDisc == null)
            {
                tempDisc = new XmlDisc(track.GetDiscKey());
                Library[albumName].GetAlbum(track.GetAlbumKey()).AddDisc(tempDisc);
                Discs.Add(tempDisc);
            }

            if (Library[albumName].GetAlbum(track.GetAlbumKey()).GetDisc(track.GetDiscKey()).AddTrack(track))
            {
                Tracks.Add(track);
            }
        }
コード例 #5
0
ファイル: XmlLibrary.cs プロジェクト: OriginalCliff/itsfv
        public void ValidateTrack(XmlTrack track)
        {
            if (this.Config.UI.Tracks_ArtworkFill)
                track.EmbedArtwork(this.Config, this.Report);

            if (this.Config.UI.Tracks_AlbumArtistFill)
                track.FillAlbumArtist(Albums, this.Report);

            if (this.Config.UI.Tracks_GenreFill)
                track.FillGenre(Discs, this.Report);

            if (this.Config.UI.Tracks_TrackCountFill)
                track.FillTrackCount(Albums, Discs, this.Report);

            // do checks after updating tracks

            if (this.Config.UI.Checks_MissingTags)
                track.CheckMissingTags(this.Report);

            if (this.Config.UI.Checks_ArtworkLowRes)
                track.CheckLowResArtwork(this.Config, this.Report);

            // write tags if modified

            if (track.IsModified)
                track.WriteTagsToFile();

            Worker.ReportProgress(this.Progress, track);
        }
コード例 #6
0
ファイル: XmlDisc.cs プロジェクト: OriginalCliff/itsfv
 public bool HasTrack(XmlTrack track)
 {
     // 5.32.0.4 iTSfv showed duplicated tracklists if the same album was added to iTunes multiple times
     foreach (XmlTrack oTrack in Tracks)
     {
         if (track.FileName == oTrack.FileName)
         {
             return true;
         }
     }
     return false;
 }
コード例 #7
0
ファイル: XmlDisc.cs プロジェクト: OriginalCliff/itsfv
        public bool AddTrack(XmlTrack track)
        {
            bool success = false;

            if (!HasTrack(track))
            {
                Tracks.Add(track);

                if (DiscNumber == 0)
                {
                    this.DiscNumber = Math.Max(track.DiscNumber, 1);
                }

                if (string.IsNullOrEmpty(Key))
                {
                    this.Key = track.GetDiscKey();
                }

                success = true;
            }

            return success;
        }
コード例 #8
0
ファイル: AddFilesWizard.cs プロジェクト: OriginalCliff/itsfv
        private void AddFilesWizard_Load(object sender, EventArgs e)
        {
            foreach (string pfd in FilesDirs.ToArray<string>())
            {
                if (Directory.Exists(pfd))
                {
                    AddDirToNode(pfd, tvBands.Nodes);
                }
                else if (File.Exists(pfd))
                {
                    XmlTrack track = new XmlTrack(pfd);
                    Tracks.Add(track);
                    TracksOrphaned.Add(track);
                }
            }

            XmlDisc discOrphaned = new XmlDisc(TracksOrphaned);
            foreach (XmlTrack track in TracksOrphaned)
            {
                TreeNode tnOrphaned = new TreeNode("Orphaned Tracks");
                tnOrphaned.Tag = discOrphaned;
                tvBands.Nodes.Add(tnOrphaned);
            }

            if (tvBands.Nodes.Count > 0 && tvBands.Nodes[0].Nodes.Count > 0)
                tvBands.SelectedNode = tvBands.Nodes[0].Nodes[0];
            else if (tvBands.Nodes.Count > 0)
                tvBands.SelectedNode = tvBands.Nodes[0];
        }