public MusicPlayer(AudioSource src, int syncFrameCount) { _player = src; _timer = new SyncedTimer(); _syncFramesMax = syncFrameCount; _syncFrames = 0; }
public TemperatureService(ISettingsService settingsService, IGammaService gammaService) { _settingsService = settingsService; _gammaService = gammaService; // Polling timer _pollingTimer = new Timer(); _pollingTimer.Tick += (sender, args) => UpdateGamma(); // Temperature update timer _temperatureUpdateTimer = new SyncedTimer(); _temperatureUpdateTimer.Tick += (sender, args) => { Tick?.Invoke(this, EventArgs.Empty); if (!_temperatureSmoother.IsActive) { UpdateTemperature(true); } }; // Cycle preview timer _cyclePreviewTimer = new Timer(TimeSpan.FromMilliseconds(15)); _cyclePreviewTimer.Tick += (sender, args) => { CyclePreviewTime = CyclePreviewTime.Add(TimeSpan.FromHours(0.05)); Tick?.Invoke(this, EventArgs.Empty); IsPreviewModeEnabled = true; UpdateTemperature(true); // Ending condition if ((CyclePreviewTime - DateTime.Now).TotalHours >= 24) { _cyclePreviewTimer.IsEnabled = false; IsPreviewModeEnabled = false; Debug.WriteLine("Ended cycle preview", GetType().Name); CyclePreviewEnded?.Invoke(this, EventArgs.Empty); } }; // Helpers _temperatureSmoother = new ValueSmoother(); _temperatureSmoother.Finished += (sender, args) => UpdateTemperature(true); // snap // System events SystemEvents.PowerModeChanged += SystemPowerModeChanged; SystemEvents.DisplaySettingsChanged += SystemDisplaySettingsChanged; // Settings _settingsService.PropertyChanged += SettingsServicePropertyChanged; UpdateConfiguration(); // Init _temperature = _settingsService.DefaultMonitorTemperature; }
public MainViewModel( ISettingsService settingsService, ITemperatureService temperatureService, IWindowService windowService, IHotkeyService hotkeyService, IGeoService geoService, IVersionCheckService versionCheckService) { // Services SettingsService = settingsService; _temperatureService = temperatureService; _windowService = windowService; _hotkeyService = hotkeyService; _geoService = geoService; _versionCheckService = versionCheckService; _temperatureService.Tick += TemperatureServiceTick; _temperatureService.Updated += TemperatureServiceUpdated; _windowService.FullScreenStateChanged += WindowServiceFullScreenStateChanged; // Timers _checkForUpdatesTimer = new Timer(); _checkForUpdatesTimer.Tick += async(sender, args) => await CheckForUpdatesAsync(); _internetSyncTimer = new SyncedTimer(); _internetSyncTimer.Tick += async(sender, args) => await SynchronizeWithInternetAsync(); _disableTemporarilyTimer = new Timer(); _disableTemporarilyTimer.Tick += (sender, args) => { IsEnabled = true; _disableTemporarilyTimer.IsEnabled = false; }; // Commands ShowMainWindowCommand = new RelayCommand(() => { DispatcherHelper.CheckBeginInvokeOnUI(() => { Application.Current.MainWindow.Show(); Application.Current.MainWindow.Activate(); Application.Current.MainWindow.Focus(); }); }); ExitApplicationCommand = new RelayCommand(() => { Application.Current.ShutdownSafe(); }); AboutCommand = new RelayCommand(() => { Process.Start("https://github.com/Tyrrrz/LightBulb"); }); ToggleEnabledCommand = new RelayCommand(() => { IsEnabled = !IsEnabled; }); DisableTemporarilyCommand = new RelayCommand <double>(ms => { _disableTemporarilyTimer.IsEnabled = false; _disableTemporarilyTimer.Interval = TimeSpan.FromMilliseconds(ms); IsEnabled = false; _disableTemporarilyTimer.IsEnabled = true; }); DownloadNewVersionCommand = new RelayCommand(() => { Process.Start("https://github.com/Tyrrrz/LightBulb/releases"); }); // Settings SettingsService.PropertyChanged += SettingsServicePropertyChanged; UpdateConfiguration(); UpdateHotkeys(); // Init CheckForUpdatesAsync().Forget(); SynchronizeWithInternetAsync().Forget(); IsEnabled = true; }