Exemple #1
0
 private async void ScannerScanDone(AudioScan sender, ScanCompletedEventArgs e)
 {
     _lib = _scanner.MediaLibrary;
     await MediaRepository.Instance.Save(_lib);
     if (ScanCompleted != null)
         ScanCompleted(e);
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        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();
        }