public MediaControlViewModel(IEventAggregator eventAggregator, ILoggerFacade loggerFacade, IHorsifyMediaController horsifyMediaController, ISongDataProvider songDataProvider, MediaControl mediaControl, IDiscordRpcService discordRpcService) : base(loggerFacade, horsifyMediaController, eventAggregator, mediaControl) { _songDataProvider = songDataProvider; _discordRpcService = discordRpcService; #region Events //Update SelectedSong _eventAggregator.GetEvent <OnMediaPlay <AllJoinedTable> >() .Subscribe(song => { OnSongChangedLoaded(song); }, ThreadOption.UIThread); //Queue completed _eventAggregator.GetEvent <QueuedJobsCompletedEvent>().Subscribe(() => { OnQueueCompletedMessage(); }, ThreadOption.UIThread); _horsifyMediaController.OnTimeChanged += (currentTime) => { OnTimeChanged(MediaControlModel, currentTime); }; _horsifyMediaController.OnMediaFinished += OnMediaFinsished; _horsifyMediaController.OnMediaLoaded += (duration) => { MediaControlModel.CurrentSongTime = duration; }; #endregion //Enable discord. TODO: Make optional _discordRpcService.Enable(true); }
public SettingsViewModel(IVoiceControl voiceControl, IDiscordRpcService discordRpcService) { _voiceControl = voiceControl; _discordRpcService = discordRpcService; }