internal AudioScan(DirectoryInfo directory, SearchOption searchoption, bool parseAdd, bool parseUpdate, bool removeDeadFiles, string[] extensions, IEnumerable<RawTrack> existingFiles, IEnumerable<string> ignoredFiles, ScanFileEventHandler parsed, ScanCompletedEventHandler done) { var thread = new Thread(Run); _directory = directory; _searchoption = searchoption; _parseAdd = parseAdd; _parseUpdate = parseUpdate; _removeDeadFiles = removeDeadFiles; _parser = new MediaParser(); _extensions = extensions; _existingFiles = existingFiles.ToDictionary(rt => rt.File); _ignoredFiles = (from s in ignoredFiles select new FileInfo(s)).ToArray(); Parsed = parsed; Done = done; _state = ScannerState.NotRunning; _added = _updated = _skipped = _error = _removed = _total = 0; thread.Start(); }
internal AudioScan(DirectoryInfo directory, SearchOption searchoption, bool parseAdd, bool parseUpdate, bool removeDeadFiles, string[] extensions, IEnumerable <RawTrack> existingFiles, IEnumerable <string> ignoredFiles, ScanFileEventHandler parsed, ScanCompletedEventHandler done) { var thread = new Thread(Run); _directory = directory; _searchoption = searchoption; _parseAdd = parseAdd; _parseUpdate = parseUpdate; _removeDeadFiles = removeDeadFiles; _parser = new MediaParser(); _extensions = extensions; _existingFiles = existingFiles.ToDictionary(rt => rt.File); _ignoredFiles = (from s in ignoredFiles select new FileInfo(s)).ToArray(); Parsed = parsed; Done = done; _state = ScannerState.NotRunning; _added = _updated = _skipped = _error = _removed = _total = 0; thread.Start(); }
public AudioScan RunScannerAsync(string[] ignoreFiles) { if (!_directory.Exists) { throw new ArgumentException("Directory must exist.", "directory"); } if (IsRunning) { throw new InvalidOperationException("RunScannerAsync is already running."); } var ig = new string[ignoreFiles.Length]; ignoreFiles.CopyTo(ig, 0); ScanFileEventHandler parsed = FileParsed; parsed += AudioScannerFileParsed; return(new AudioScan(_directory, _searchoption, _parseAdd, _parseUpdate, _removeDeadFiles, _extensionList.ToArray(), MediaLibrary.Tracks.Select(x => x.Model).ToArray(), ig, parsed, ScanDone)); }