private async void ScannerScanDone(AudioScan sender, ScanCompletedEventArgs e) { _lib = _scanner.MediaLibrary; await MediaRepository.Instance.Save(_lib); if (ScanCompleted != null) ScanCompleted(e); }
public async Task<bool> Rescan() { _lib = MediaRepository.Instance.GetLibrary(); _scanner = new AudioScanner(new ID3Parser(), SettingsModel.Instance.WatchFolder, SearchOption.AllDirectories); _scanner.MediaLibrary = _lib; _scanner.ScanDone += ScannerScanDone; _scanner.FileParsed += ScannerFileParsed; await Task.Run(() => _scanner.RunScannerAsync()); return true; }
public AudioScanner(IDataParser parser, DirectoryInfo directory, SearchOption searchoption, params string[] extensions) { if (parser == null) throw new ArgumentNullException("parser"); if (directory == null) throw new ArgumentNullException("directory"); _parser = parser; _directory = directory; _searchoption = searchoption; _extensionList = new ExtensionList(extensions); MediaLibrary = new Library(); }
public MainWindow() { InitializeComponent(); library = new Library(); playlist = new LibraryPlaylist(library); player = new Player<Track>(playlist, new AudioControl<Track>(rt => rt.FilePath)); player.StatusChanged += player_StatusChanged; Settings s; try { s = Settings.LoadSettings("Settings.xml"); } catch (FileNotFoundException e) { s = new Settings(); } foreach (var path in s.Mediapaths) { scanner = new ScannerBackgroundWorker( new AudioScanner(new MediaParser(), path)); scanner.FileParsed += scanner_FileParsed; scanner.RunAync(); } icon = new TaskbarIcon(); icon.Icon = Properties.Resources.headset; var ctal = ModifierKeys.Control | ModifierKeys.Alt; hotkeys = new Hotkeys.HotKeyManager(this); hotkeys.AddHotKey(Key.J, ctal, () => { this.Show(); textbox.Focus(); textbox.Text = ""; }); hotkeys.AddHotKey(Key.Q, ctal, () => this.Close()); hotkeys.AddHotKey(Key.Insert, ctal, () => player.Play()); hotkeys.AddHotKey(Key.Home, ctal, () => player.Pause()); hotkeys.AddHotKey(Key.End, ctal, () => player.Stop()); hotkeys.AddHotKey(Key.PageUp, ctal, () => playlist.MovePrevious()); hotkeys.AddHotKey(Key.PageDown, ctal, () => playlist.MoveNext()); hotkeys.AddHotKey(Key.Right, ctal, () => player.Seek(PlayerSeekOrigin.CurrentForwards, 5000)); hotkeys.AddHotKey(Key.Left, ctal, () => player.Seek(PlayerSeekOrigin.CurrentBackwards, 5000)); textbox.Focus(); }