public MainModel(Settings Settings, IWebCamProvider WebCamProvider, VideoWritersViewModel VideoWritersViewModel, AudioSource AudioSource, HotKeyManager HotKeyManager, RememberByName RememberByName, IRecentList RecentList, RecordingModel RecordingModel) { _settings = Settings; _webCamProvider = WebCamProvider; _videoWritersViewModel = VideoWritersViewModel; _audioSource = AudioSource; _hotKeyManager = HotKeyManager; _rememberByName = RememberByName; _recentList = RecentList; _recordingModel = RecordingModel; // If Output Dircetory is not set. Set it to Documents\Captura\ if (string.IsNullOrWhiteSpace(Settings.OutPath)) { Settings.OutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Captura"); } // Create the Output Directory if it does not exist Settings.EnsureOutPath(); }
public MainModel(Settings Settings, RememberByName RememberByName, WebcamModel WebcamModel) { _settings = Settings; _rememberByName = RememberByName; _webcamModel = WebcamModel; }
public MainViewModel(Settings Settings, HotKeyManager HotKeyManager, IPreviewWindow PreviewWindow, IDialogService DialogService, RecordingModel RecordingModel, RememberByName RememberByName) : base(Settings) { _dialogService = DialogService; _rememberByName = RememberByName; }
public MainViewModel(Settings Settings, ILocalizationProvider Loc, HotKeyManager HotKeyManager, IPreviewWindow PreviewWindow, IDialogService DialogService, RecordingModel RecordingModel, IEnumerable <IRefreshable> Refreshables, IFFmpegViewsProvider FFmpegViewsProvider, RememberByName RememberByName) : base(Settings, Loc) { _dialogService = DialogService; _rememberByName = RememberByName; OutFolderDisplay = Settings .ObserveProperty(M => M.OutPath) .Select(M => Settings.GetOutputPath()) .ToReadOnlyReactivePropertySlim(); ShowPreviewCommand = new ReactiveCommand() .WithSubscribe(PreviewWindow.Show); SelectFFmpegFolderCommand = new ReactiveCommand() .WithSubscribe(FFmpegViewsProvider.PickFolder); #region Commands RefreshCommand = RecordingModel .ObserveProperty(M => M.RecorderState) .Select(M => M == RecorderState.NotRecording) .ToReactiveCommand() .WithSubscribe(() => { foreach (var refreshable in Refreshables) { refreshable.Refresh(); } Refreshed?.Invoke(); }); OpenOutputFolderCommand = new ReactiveCommand() .WithSubscribe(OpenOutputFolder); SelectOutputFolderCommand = new ReactiveCommand() .WithSubscribe(SelectOutputFolder); ResetFFmpegFolderCommand = new ReactiveCommand() .WithSubscribe(() => Settings.FFmpeg.FolderPath = ""); TrayLeftClickCommand = new ReactiveCommand() .WithSubscribe(() => HotKeyManager.FakeHotkey(Settings.Tray.LeftClickAction)); #endregion }
public MainModel(Settings Settings, RememberByName RememberByName, WebcamModel WebcamModel) { _settings = Settings; _rememberByName = RememberByName; _webcamModel = WebcamModel; // If Output Dircetory is not set. Set it to Documents\Captura\ if (string.IsNullOrWhiteSpace(Settings.GetOutputPath())) { Settings.OutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), nameof(Captura)); } // Create the Output Directory if it does not exist Settings.EnsureOutPath(); }
public MainModel(Settings.Settings settings, IWebCamProvider webCamProvider, VideoWritersViewModel videoWritersViewModel, AudioSource audioSource, HotKeyManager hotKeyManager, RememberByName rememberByName) { _settings = settings; _webCamProvider = webCamProvider; _videoWritersViewModel = videoWritersViewModel; _audioSource = audioSource; _hotKeyManager = hotKeyManager; _rememberByName = rememberByName; // If Output Directory is not set. Set it to Documents\Captura\ if (string.IsNullOrWhiteSpace(settings.OutPath)) { settings.OutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Captura"); } // Create the Output Directory if it does not exist settings.EnsureOutPath(); }
public MainViewModel(AudioSource AudioSource, VideoViewModel VideoViewModel, IWebCamProvider WebCamProvider, Settings Settings, RecentViewModel RecentViewModel, LanguageManager LanguageManager, HotKeyManager HotKeyManager, IPreviewWindow PreviewWindow, FFmpegLog FFmpegLog, IDialogService DialogService, RememberByName RememberByName, ScreenShotViewModel ScreenShotViewModel, RecordingViewModel RecordingViewModel) : base(Settings, LanguageManager) { this.AudioSource = AudioSource; this.VideoViewModel = VideoViewModel; this.WebCamProvider = WebCamProvider; this.RecentViewModel = RecentViewModel; this.HotKeyManager = HotKeyManager; _dialogService = DialogService; _rememberByName = RememberByName; this.ScreenShotViewModel = ScreenShotViewModel; this.RecordingViewModel = RecordingViewModel; this.FFmpegLog = FFmpegLog; ShowPreviewCommand = new DelegateCommand(PreviewWindow.Show); #region Commands RefreshCommand = new DelegateCommand(OnRefresh); OpenOutputFolderCommand = new DelegateCommand(OpenOutputFolder); SelectOutputFolderCommand = new DelegateCommand(SelectOutputFolder); ResetFFmpegFolderCommand = new DelegateCommand(() => Settings.FFmpeg.FolderPath = ""); #endregion Settings.Audio.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(Settings.Audio.Enabled): case null: case "": CheckFunctionalityAvailability(); break; } }; VideoViewModel.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(VideoViewModel.SelectedVideoSourceKind): case nameof(VideoViewModel.SelectedVideoSource): case null: case "": CheckFunctionalityAvailability(); break; } }; RecordingViewModel.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(RecordingViewModel.RecorderState): case null: case "": RefreshCommand.RaiseCanExecuteChanged(RecordingViewModel.RecorderState == RecorderState.NotRecording); break; } }; // If Output Dircetory is not set. Set it to Documents\Captura\ if (string.IsNullOrWhiteSpace(Settings.OutPath)) { Settings.OutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Captura"); } // Create the Output Directory if it does not exist Settings.EnsureOutPath(); // Handle Hoykeys HotKeyManager.HotkeyPressed += Service => { switch (Service) { case ServiceName.Recording: RecordingViewModel.RecordCommand.ExecuteIfCan(); break; case ServiceName.Pause: RecordingViewModel.PauseCommand.ExecuteIfCan(); break; case ServiceName.ScreenShot: ScreenShotViewModel.ScreenShotCommand.ExecuteIfCan(); break; case ServiceName.ActiveScreenShot: ScreenShotViewModel.ScreenShotActiveCommand.ExecuteIfCan(); break; case ServiceName.DesktopScreenShot: ScreenShotViewModel.ScreenShotDesktopCommand.ExecuteIfCan(); break; case ServiceName.ToggleMouseClicks: Settings.Clicks.Display = !Settings.Clicks.Display; break; case ServiceName.ToggleKeystrokes: Settings.Keystrokes.Display = !Settings.Keystrokes.Display; break; } }; }
public MainViewModel(AudioSource AudioSource, VideoSourcesViewModel VideoSourcesViewModel, VideoWritersViewModel VideoWritersViewModel, IWebCamProvider WebCamProvider, Settings Settings, LanguageManager LanguageManager, HotKeyManager HotKeyManager, IPreviewWindow PreviewWindow, IDialogService DialogService, RememberByName RememberByName, ScreenShotViewModel ScreenShotViewModel, RecordingViewModel RecordingViewModel, HotkeyActionRegisterer HotkeyActionRegisterer, IRecentList RecentList) : base(Settings, LanguageManager) { this.AudioSource = AudioSource; this.VideoSourcesViewModel = VideoSourcesViewModel; this.VideoWritersViewModel = VideoWritersViewModel; this.WebCamProvider = WebCamProvider; this.HotKeyManager = HotKeyManager; _dialogService = DialogService; _rememberByName = RememberByName; this.ScreenShotViewModel = ScreenShotViewModel; this.RecordingViewModel = RecordingViewModel; _recentList = RecentList; ShowPreviewCommand = new DelegateCommand(PreviewWindow.Show); #region Commands RefreshCommand = new DelegateCommand(OnRefresh); OpenOutputFolderCommand = new DelegateCommand(OpenOutputFolder); SelectOutputFolderCommand = new DelegateCommand(SelectOutputFolder); ResetFFmpegFolderCommand = new DelegateCommand(() => Settings.FFmpeg.FolderPath = ""); TrayLeftClickCommand = new DelegateCommand(() => HotKeyManager.FakeHotkey(Settings.Tray.LeftClickAction)); #endregion Settings.Audio.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(Settings.Audio.Enabled): case null: case "": CheckFunctionalityAvailability(); break; } }; VideoSourcesViewModel.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(VideoSourcesViewModel.SelectedVideoSourceKind): case null: case "": CheckFunctionalityAvailability(); break; } }; RecordingViewModel.PropertyChanged += (Sender, Args) => { switch (Args.PropertyName) { case nameof(RecordingViewModel.RecorderState): case null: case "": RefreshCommand.RaiseCanExecuteChanged(RecordingViewModel.RecorderState == RecorderState.NotRecording); break; } }; // If Output Dircetory is not set. Set it to Documents\Captura\ if (string.IsNullOrWhiteSpace(Settings.OutPath)) { Settings.OutPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Captura"); } // Create the Output Directory if it does not exist Settings.EnsureOutPath(); // Handle Hoykeys HotkeyActionRegisterer.Register(); }
public MainModel(Settings Settings, RememberByName RememberByName) { _settings = Settings; _rememberByName = RememberByName; }