public PlaybackService(IFileService fileService, ITrackRepository trackRepository, ITrackStatisticRepository trackStatisticRepository, IEqualizerService equalizerService, IQueuedTrackRepository queuedTrackRepository) { this.fileService = fileService; this.trackRepository = trackRepository; this.trackStatisticRepository = trackStatisticRepository; this.queuedTrackRepository = queuedTrackRepository; this.equalizerService = equalizerService; this.context = SynchronizationContext.Current; this.queueManager = new QueueManager(); // Event handlers this.fileService.TracksImported += async(tracks) => await this.EnqueueAsync(tracks); // Set up timers this.progressTimer.Interval = TimeSpan.FromSeconds(this.progressTimeoutSeconds).TotalMilliseconds; this.progressTimer.Elapsed += new ElapsedEventHandler(this.ProgressTimeoutHandler); this.saveQueuedTracksTimer.Interval = TimeSpan.FromSeconds(this.saveQueuedTracksTimeoutSeconds).TotalMilliseconds; this.saveQueuedTracksTimer.Elapsed += new ElapsedEventHandler(this.SaveQueuedTracksTimeoutHandler); this.savePlaybackCountersTimer.Interval = TimeSpan.FromSeconds(this.savePlaybackCountersTimeoutSeconds).TotalMilliseconds; this.savePlaybackCountersTimer.Elapsed += new ElapsedEventHandler(this.SavePlaybackCountersHandler); this.Initialize(); }
public PlaybackService(IFileService fileService, II18nService i18nService, ITrackRepository trackRepository, IEqualizerService equalizerService, IQueuedTrackRepository queuedTrackRepository, IContainerProvider container, IPlaylistService playlistService) { this.fileService = fileService; this.i18nService = i18nService; this.trackRepository = trackRepository; this.queuedTrackRepository = queuedTrackRepository; this.equalizerService = equalizerService; this.playlistService = playlistService; this.container = container; this.context = SynchronizationContext.Current; this.queueManager = new QueueManager(this.trackRepository); // Event handlers this.fileService.ImportingTracks += (_, __) => this.canGetSavedQueuedTracks = false; this.fileService.TracksImported += (tracks, track) => this.EnqueueFromFilesAsync(tracks, track); this.i18nService.LanguageChanged += (_, __) => this.UpdateQueueLanguageAsync(); // Set up timers this.progressTimer.Interval = TimeSpan.FromSeconds(this.progressTimeoutSeconds).TotalMilliseconds; this.progressTimer.Elapsed += new ElapsedEventHandler(this.ProgressTimeoutHandler); this.saveQueuedTracksTimer.Interval = TimeSpan.FromSeconds(this.saveQueuedTracksTimeoutSeconds).TotalMilliseconds; this.saveQueuedTracksTimer.Elapsed += new ElapsedEventHandler(this.SaveQueuedTracksTimeoutHandler); this.savePlaybackCountersTimer.Interval = TimeSpan.FromSeconds(this.savePlaybackCountersTimeoutSeconds).TotalMilliseconds; this.savePlaybackCountersTimer.Elapsed += new ElapsedEventHandler(this.SavePlaybackCountersHandler); this.Initialize(); }
public PlaybackService(ITrackRepository trackRepository, IQueuedTrackRepository queuedTrackRepository, IEqualizerService equalizerService) { this.trackRepository = trackRepository; this.queuedTrackRepository = queuedTrackRepository; this.equalizerService = equalizerService; this.context = SynchronizationContext.Current; // Initialize the PlayerFactory this.playerFactory = new PlayerFactory(); // Set up timers this.progressTimer.Interval = TimeSpan.FromSeconds(this.progressTimeoutSeconds).TotalMilliseconds; this.progressTimer.Elapsed += new ElapsedEventHandler(this.ProgressTimeoutHandler); this.saveQueuedTracksTimer.Interval = TimeSpan.FromSeconds(this.saveQueuedTracksTimeoutSeconds).TotalMilliseconds; this.saveQueuedTracksTimer.Elapsed += new ElapsedEventHandler(this.SaveQueuedTracksTimeoutHandler); this.saveTrackStatisticsTimer.Interval = TimeSpan.FromSeconds(this.saveTrackStatisticsTimeoutSeconds).TotalMilliseconds; this.saveTrackStatisticsTimer.Elapsed += new ElapsedEventHandler(this.SaveTrackStatisticsHandler); // Equalizer this.SetIsEqualizerEnabled(XmlSettingsClient.Instance.Get <bool>("Equalizer", "IsEnabled")); // Queued tracks this.GetSavedQueuedTracksAsync(); }
public PlaybackService(IFileService fileService, ITrackRepository trackRepository, ITrackStatisticRepository trackStatisticRepository, IEqualizerService equalizerService, IQueuedTrackRepository queuedTrackRepository) { this.fileService = fileService; this.trackRepository = trackRepository; this.trackStatisticRepository = trackStatisticRepository; this.queuedTrackRepository = queuedTrackRepository; this.equalizerService = equalizerService; // Initialize MMDevice using (var mmdeviceEnumerator = new MMDeviceEnumerator()) { using ( var mmdeviceCollection = mmdeviceEnumerator.EnumAudioEndpoints(DataFlow.Render, DeviceState.Active)) { outputDevice = mmdeviceCollection[0]; } } this.context = SynchronizationContext.Current; this.queueManager = new QueueManager(); // Event handlers this.fileService.TracksImported += async(tracks) => await this.EnqueueAsync(tracks); // Set up timers this.progressTimer.Interval = TimeSpan.FromSeconds(this.progressTimeoutSeconds).TotalMilliseconds; this.progressTimer.Elapsed += new ElapsedEventHandler(this.ProgressTimeoutHandler); this.saveQueuedTracksTimer.Interval = TimeSpan.FromSeconds(this.saveQueuedTracksTimeoutSeconds).TotalMilliseconds; this.saveQueuedTracksTimer.Elapsed += new ElapsedEventHandler(this.SaveQueuedTracksTimeoutHandler); this.savePlaybackCountersTimer.Interval = TimeSpan.FromSeconds(this.savePlaybackCountersTimeoutSeconds).TotalMilliseconds; this.savePlaybackCountersTimer.Elapsed += new ElapsedEventHandler(this.SavePlaybackCountersHandler); this.Initialize(); }
public EqualizerControlViewModel(IPlaybackService playbackService, IEqualizerService equalizerService, IDialogService dialogService) { // Variables this.playbackService = playbackService; this.equalizerService = equalizerService; this.dialogService = dialogService; this.IsEqualizerEnabled = XmlSettingsClient.Instance.Get <bool>("Equalizer", "IsEnabled"); // Commands this.ResetCommand = new DelegateCommand(() => { this.canApplyManualPreset = false; this.Band0 = this.Band1 = this.Band2 = this.Band3 = this.Band4 = this.Band5 = this.Band6 = this.Band7 = this.Band8 = this.Band9 = 0.0; this.canApplyManualPreset = true; this.ApplyManualPreset(); }); this.DeleteCommand = new DelegateCommand(async() => { await this.DeletePresetAsync(); }, () => { if (this.SelectedPreset != null) { return(this.SelectedPreset.IsRemovable); } else { return(false); } }); this.SaveCommand = new DelegateCommand(async() => { await this.SavePresetToFileAsync(); }); // Initialize this.InitializeAsync(); }