Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 public SettingsViewModel(IVoiceControl voiceControl, IDiscordRpcService discordRpcService)
 {
     _voiceControl      = voiceControl;
     _discordRpcService = discordRpcService;
 }