Example #1
0
        public void DuplicateScannerInAlbum()
        {
            // for this test, create new 'ituner' playlist and add duplicate entries..

            DuplicateScanner scanner = new DuplicateScanner(controller, catalog);
            scanner.PlaylistFilter = PersistentID.Parse("612F0BCDC4E08C4E");
            scanner.Execute();
        }
Example #2
0
        public void DuplicateScannerInAlbum()
        {
            // for this test, create new 'ituner' playlist and add duplicate entries..

            DuplicateScanner scanner = new DuplicateScanner(controller, catalog);

            scanner.PlaylistFilter = PersistentID.Parse("612F0BCDC4E08C4E");
            scanner.Execute();
        }
Example #3
0
 /// <summary>
 /// Scan the entire iTunes library deleting all duplicate entries.  Determining
 /// the preferred entry vs. duplicate entries is based on attribute priorities.
 /// </summary>
 public void ScanDuplicates()
 {
     if (!disabled.Contains(Resx.I_ScanDuplicates))
     {
         IScanner scanner = new DuplicateScanner(controller, catalog);
         AddScanner(scanner);
     }
 }
Example #4
0
        /// <summary>
        /// Clean either the current album if in the Music library or the current user-defined
        /// playlist by scanning for duplicates and removing phantom tracks within that context.
        /// </summary>
        /// <remarks>
        /// This is invoked manually by the user from the Clean context menu.
        /// </remarks>
        public void CleanContext(bool isAlbumContext)
        {
            if (catalog == null)
            {
                // catalog is null until InitializingScanner is complete
                return;
            }

            if (isAlbumContext)
            {
                // DO NOT dispose current or we'll destroy the original CurrentTrack RCW
                Track current = controller.CurrentTrack;
                string album = current.Album;
                string artist = current.Artist;

                string key = album + "~" + artist;
                string logtext = String.Format("cleaning album '{0}'", key);
                Logger.WriteAppLog(LogCategory, logtext);
                Logger.WriteLine(LogCategory, logtext);

                cleansed.Add(key);

                DuplicateScanner dscanner = new DuplicateScanner(controller, catalog);
                PhantomScanner pscanner = new PhantomScanner(controller, catalog);

                dscanner.AlbumFilter = album;
                pscanner.AlbumFilter = album;
                dscanner.ArtistFilter = artist;
                pscanner.ArtistFilter = artist;

                AddScanner(dscanner);
                AddScanner(pscanner);
            }
            else // (isPlaylistContext)
            {
                // DO NOT dispose current or we'll destory the original CurrentPlaylist RCW
                Playlist current = controller.CurrentPlaylist;

                string logtext = String.Format("cleaning playlist '{0}'", current.Name);
                Logger.WriteAppLog(LogCategory, logtext);
                Logger.WriteLine(LogCategory, logtext);

                DuplicateScanner dscanner = new DuplicateScanner(controller, catalog);
                PhantomScanner pscanner = new PhantomScanner(controller, catalog);

                dscanner.PlaylistFilter = current.PersistentID;
                pscanner.PlaylistFilter = current.PersistentID;

                AddScanner(dscanner);
                AddScanner(pscanner);
            }
        }
Example #5
0
        /// <summary>
        /// Clean the specified (current) artist's album.
        /// </summary>
        /// <param name="album"></param>
        /// <param name="artist"></param>
        /// <remarks>
        /// This is invoked automatically whenever a new track is played, as prescribed by
        /// the isCleansed verification.
        /// </remarks>
        public void Clean(string album, string artist)
        {
            if (catalog == null)
            {
                // catalog is null until InitializingScanner is complete
                return;
            }

            bool allowDuplicateScanner = IsScannerAllowed(Resx.I_ScanDuplicates);
            bool allowPhantomScanner = IsScannerAllowed(Resx.I_ScanPhantoms);

            if (allowDuplicateScanner || allowPhantomScanner)
            {
                string key = album + "~" + artist;

                string logtext = String.Format("Auto-cleaning album '{0}'", key);
                Logger.WriteAppLog(LogCategory, logtext);
                Logger.WriteLine(LogCategory, logtext);

                cleansed.Add(key);

                if (allowDuplicateScanner)
                {
                    DuplicateScanner dscanner = new DuplicateScanner(controller, catalog);
                    dscanner.AlbumFilter = album;
                    dscanner.ArtistFilter = artist;
                    AddScanner(dscanner);
                }

                if (allowPhantomScanner)
                {
                    PhantomScanner pscanner = new PhantomScanner(controller, catalog);
                    pscanner.AlbumFilter = album;
                    pscanner.ArtistFilter = artist;
                    AddScanner(pscanner);
                }
            }
        }
Example #6
0
 public void DuplicateScanner()
 {
     DuplicateScanner scanner = new DuplicateScanner(controller, catalog);
     scanner.Execute();
 }
Example #7
0
        public void DuplicateScanner()
        {
            DuplicateScanner scanner = new DuplicateScanner(controller, catalog);

            scanner.Execute();
        }