public ColorbarViewModel(IRegionManager regionManager, IRecordDirectoryObserver recordDirectoryObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, IShell shell) { _regionManager = regionManager; _recordDirectoryObserver = recordDirectoryObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _shell = shell; StutteringFactor = _appConfiguration.StutteringFactor; SelectWindowSize = _appConfiguration.MovingAverageWindowSize; FpsValuesRoundingDigits = _appConfiguration.FpsValuesRoundingDigits; ObservedDirectory = _appConfiguration.ObservedDirectory; ScreenshotDirectory = _appConfiguration.ScreenshotDirectory; WindowSizes = new List <int>(Enumerable.Range(4, 100 - 4)); RoundingDigits = new List <int>(Enumerable.Range(0, 8)); SelectObservedFolderCommand = new DelegateCommand(OnSelectObeservedFolder); SelectScreenshotFolderCommand = new DelegateCommand(OnSelectScreenshotFolder); OpenObservedFolderCommand = new DelegateCommand(OnOpenObservedFolder); OpenScreenshotFolderCommand = new DelegateCommand(OnOpenScreenshotFolder); HasCustomInfo = SelectedHardwareInfoSource == EHardwareInfoSource.Custom; SetHardwareInfoDefaultsFromDatabase(); SetAggregatorEvents(); SubscribeToOverlayActivate(); SubscribeToOverlayDeactivate(); }
public StateViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, ICaptureService captureService, IOverlayService overlayService, IUpdateCheck updateCheck, IAppVersionProvider appVersionProvider, IWebVersionProvider webVersionProvider, LoginManager loginManager, IRTSSService rTSSService, ILogger <StateViewModel> logger) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _captureService = captureService; _overlayService = overlayService; _updateCheck = updateCheck; _appVersionProvider = appVersionProvider; _logger = logger; IsCaptureModeActive = false; IsOverlayActive = _appConfiguration.IsOverlayActive && rTSSService.IsRTSSInstalled(); _captureService.IsCaptureModeActiveStream .Subscribe(state => IsCaptureModeActive = state); _captureService.IsLoggingActiveStream .Subscribe(state => IsLoggingActive = state); _overlayService.IsOverlayActiveStream .Subscribe(state => IsOverlayActive = state); IsLoggedIn = loginManager.State.Token != null; _eventAggregator.GetEvent <PubSubEvent <AppMessages.LoginState> >().Subscribe(state => { IsLoggedIn = state.IsLoggedIn; RaisePropertyChanged(nameof(IsLoggedIn)); }); Task.Run(async() => { var(updateAvailable, updateVersion) = await _updateCheck.IsUpdateAvailable(); Dispatcher.CurrentDispatcher.Invoke(() => { IsUpdateAvailable = updateAvailable; UpdateHyperlinkText = $"New version available on GitHub: v{updateVersion}"; RaisePropertyChanged(nameof(IsUpdateAvailable)); }); }); stopwatch.Stop(); _logger.LogInformation(this.GetType().Name + " {initializationTime}s initialization time", Math.Round(stopwatch.ElapsedMilliseconds * 1E-03, 1)); }
public StateViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, ICaptureService captureService, IOverlayService overlayService, IUpdateCheck updateCheck, IAppVersionProvider appVersionProvider, IWebVersionProvider webVersionProvider) { _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _captureService = captureService; _overlayService = overlayService; _updateCheck = updateCheck; _appVersionProvider = appVersionProvider; IsDirectoryObserving = true; IsCaptureModeActive = false; IsOverlayActive = _appConfiguration.IsOverlayActive && !string.IsNullOrEmpty(RTSSUtils.GetRTSSFullPath()); UpdateHyperlinkText = $"New version available on GitHub: v{webVersionProvider.GetWebVersion()}"; _recordObserver.HasValidSourceStream .Subscribe(state => IsDirectoryObserving = state); _captureService.IsCaptureModeActiveStream .Subscribe(state => IsCaptureModeActive = state); _overlayService.IsOverlayActiveStream .Subscribe(state => IsOverlayActive = state); }
public AggregationViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration) { _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; SubscribeToUpdateSession(); }
public StateViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, ICaptureService captureService, IOverlayService overlayService, IUpdateCheck updateCheck, IAppVersionProvider appVersionProvider, IWebVersionProvider webVersionProvider, LoginManager loginManager, IRTSSService rTSSService) { _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _captureService = captureService; _overlayService = overlayService; _updateCheck = updateCheck; _appVersionProvider = appVersionProvider; IsCaptureModeActive = false; IsOverlayActive = _appConfiguration.IsOverlayActive && rTSSService.IsRTSSInstalled(); _captureService.IsCaptureModeActiveStream .Subscribe(state => IsCaptureModeActive = state); _captureService.IsLoggingActiveStream .Subscribe(state => IsLoggingActive = state); _overlayService.IsOverlayActiveStream .Subscribe(state => IsOverlayActive = state); IsLoggedIn = loginManager.State.Token != null; _eventAggregator.GetEvent <PubSubEvent <AppMessages.LoginState> >().Subscribe(state => { IsLoggedIn = state.IsLoggedIn; RaisePropertyChanged(nameof(IsLoggedIn)); }); Task.Run(async() => { var(updateAvailable, updateVersion) = await _updateCheck.IsUpdateAvailable(); Dispatcher.CurrentDispatcher.Invoke(() => { IsUpdateAvailable = updateAvailable; UpdateHyperlinkText = $"New version available on GitHub: v{updateVersion}"; RaisePropertyChanged(nameof(IsUpdateAvailable)); }); }); }
public ControlViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, RecordManager recordManager, ISystemInfo systemInfo, ProcessList processList, ILogger <ControlViewModel> logger, ApplicationState applicationState) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _recordManager = recordManager; _systemInfo = systemInfo; _processList = processList; _logger = logger; _applicationState = applicationState; //Commands DeleteRecordFileCommand = new DelegateCommand(OnDeleteRecordFile); MoveRecordFileCommand = new DelegateCommand(OnMoveRecordFile); DuplicateRecordFileCommand = new DelegateCommand(OnDuplicateRecordFile); AcceptEditingDialogCommand = new DelegateCommand(OnAcceptEditingDialog); CancelEditingDialogCommand = new DelegateCommand(OnCancelEditingDialog); AddCpuInfoCommand = new DelegateCommand(OnAddCpuInfo); AddGpuInfoCommand = new DelegateCommand(OnAddGpuInfo); AddRamInfoCommand = new DelegateCommand(OnAddRamInfo); DeleteRecordCommand = new DelegateCommand(OnPressDeleteKey); OpenObservedFolderCommand = new DelegateCommand(OnOpenObservedFolder); DeleteFolderCommand = new DelegateCommand(OnDeleteFolder); OpenCreateSubFolderDialogCommand = new DelegateCommand(() => { CreateFolderDialogIsOpen = true; TreeViewSubFolderName = string.Empty; CreateFolderdialogIsOpenStream.OnNext(true); }); SelectedRecordingsCommand = new DelegateCommand <object>(OnSelectedRecordings); CreateFolderCommand = new DelegateCommand(OnCreateSubFolder); CloseCreateFolderDialogCommand = new DelegateCommand(() => { CreateFolderDialogIsOpen = false; CreateFolderdialogIsOpenStream.OnNext(false); } ); ReloadRootFolderCommand = new DelegateCommand(() => TreeViewUpdateStream.OnNext(default));
public RecordDataProvider(IRecordDirectoryObserver recordObserver, IAppConfiguration appConfiguration) { _recordObserver = recordObserver; _appConfiguration = appConfiguration; try { if (!File.Exists(_matchingNameLiveFilename)) { Directory.CreateDirectory( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"CapFrameX\Resources")); File.Copy(_matchingNameInitialFilename, _matchingNameLiveFilename); } } catch { } }
public RecordManager(ILogger <RecordManager> logger, IAppConfiguration appConfiguration, IRecordDirectoryObserver recordObserver, IAppVersionProvider appVersionProvider, ISensorService sensorService, ISystemInfo systemInfo, ProcessList processList, IRTSSService rTSSService) { _logger = logger; _appConfiguration = appConfiguration; _recordObserver = recordObserver; _appVersionProvider = appVersionProvider; _sensorService = sensorService; _systemInfo = systemInfo; _processList = processList; _rTSSService = rTSSService; }
public StateViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, ICaptureService captureService) { _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _captureService = captureService; IsDirectoryObserving = true; IsCaptureModeActive = false; UpdateHpyerlinkText = $"New version available on GitHub: v{WebCheck.GetWebVersion(WebCheck.VersionSourceFileUrl)}"; _recordObserver.HasValidSourceStream .Subscribe(state => IsDirectoryObserving = state); _captureService.IsCaptureModeActiveStream .Subscribe(state => IsCaptureModeActive = state); }
public RecordDataProvider(IRecordDirectoryObserver recordObserver, IAppConfiguration appConfiguration, ILogger <RecordDataProvider> logger) { _recordObserver = recordObserver; _appConfiguration = appConfiguration; _logger = logger; try { if (!File.Exists(_matchingNameLiveFilename)) { Directory.CreateDirectory( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"CapFrameX\Resources")); File.Copy(_matchingNameInitialFilename, _matchingNameLiveFilename); } } catch (Exception ex) { var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), @"CapFrameX\Resources"); _logger.LogError(ex, $"Error while creating {path}"); } }
public ControlViewModel(IRecordDirectoryObserver recordObserver, IEventAggregator eventAggregator, IAppConfiguration appConfiguration, IRecordDataProvider recordDataProvider) { _recordObserver = recordObserver; _eventAggregator = eventAggregator; _appConfiguration = appConfiguration; _recordDataProvider = recordDataProvider; //Commands OpenEditingDialogCommand = new DelegateCommand(OnOpenEditingDialog); AddToIgnoreListCommand = new DelegateCommand(OnAddToIgnoreList); DeleteRecordFileCommand = new DelegateCommand(OnDeleteRecordFile); AcceptEditingDialogCommand = new DelegateCommand(OnAcceptEditingDialog); CancelEditingDialogCommand = new DelegateCommand(OnCancelEditingDialog); AddCpuInfoCommand = new DelegateCommand(OnAddCpuInfo); AddGpuInfoCommand = new DelegateCommand(OnAddGpuInfo); AddRamInfoCommand = new DelegateCommand(OnAddRamInfo); DeleteRecordCommand = new DelegateCommand(OnPressDeleteKey); SelectedRecordingsCommand = new DelegateCommand <object>(OnSelectedRecordings); HasValidSource = recordObserver.HasValidSource; Task.Factory.StartNew(() => { if (recordObserver.HasValidSource) { var initialRecordFileInfoList = _recordDataProvider?.GetFileRecordInfoList(); foreach (var recordFileInfo in initialRecordFileInfoList) { AddToRecordInfoList(recordFileInfo); } } }); RecordDataGridSelectedIndex = -1; _recordDeleteSubStream = new Subject <FileInfo>(); var context = SynchronizationContext.Current; _recordObserver.RecordCreatedStream .ObserveOn(context) .SubscribeOn(context) .Subscribe(OnRecordCreated); _recordObserver.RecordDeletedStream .Merge(_recordDeleteSubStream) .Where(x => _recordDeleteStreamActive) .ObserveOn(context) .SubscribeOn(context) .Subscribe(x => OnRecordDeleted()); // Turn streams now on if (_recordObserver.HasValidSource) { _recordObserver.IsActive = true; } SetAggregatorEvents(); SubscribeToResetRecord(); SubscribeToObservedDiretoryUpdated(); SubscribeToSetFileRecordInfoExternal(); }