示例#1
0
        public RecordingModel(Settings.Settings settings,
                              LanguageManager languageManager,
                              ISystemTray systemTray,
                              IRegionProvider regionProvider,
                              WebCamOverlay webcamOverlay,
                              IMainWindow mainWindow,
                              IPreviewWindow previewWindow,
                              VideoSourcesViewModel videoSourcesViewModel,
                              VideoWritersViewModel videoWritersViewModel,
                              AudioSource audioSource,
                              IWebCamProvider webCamProvider,
                              KeymapViewModel keymap,
                              IAudioPlayer audioPlayer,
                              IRecentList recentList,
                              TimerModel timerModel) : base(settings, languageManager)
        {
            _systemTray            = systemTray;
            _regionProvider        = regionProvider;
            _webcamOverlay         = webcamOverlay;
            _mainWindow            = mainWindow;
            _previewWindow         = previewWindow;
            _videoSourcesViewModel = videoSourcesViewModel;
            _videoWritersViewModel = videoWritersViewModel;
            _audioSource           = audioSource;
            _webCamProvider        = webCamProvider;
            _keymap      = keymap;
            _audioPlayer = audioPlayer;
            _recentList  = recentList;
            _timerModel  = timerModel;

            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

            timerModel.CountdownElapsed += InternalStartRecording;
            timerModel.DurationElapsed  += async() =>
            {
                if (_syncContext != null)
                {
                    _syncContext.Post(async state => await StopRecording(), null);
                }
                else
                {
                    await StopRecording();
                }
            };
        }