Beispiel #1
0
 public MusicPlayer(AudioSource src, int syncFrameCount)
 {
     _player        = src;
     _timer         = new SyncedTimer();
     _syncFramesMax = syncFrameCount;
     _syncFrames    = 0;
 }
Beispiel #2
0
 public MusicPlayer(AudioSource src, int syncFrameCount)
 {
     _player = src;
     _timer = new SyncedTimer();
     _syncFramesMax = syncFrameCount;
     _syncFrames = 0;
 }
Beispiel #3
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;
        }
Beispiel #4
0
        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;
        }