public AmbiLightService(string configPath) { _configPath = configPath; _logger = HostLogger.Get <AmbiLightService>(); _screenCaptureServiceProvider = new ScreenCaptureServiceProvider(); _colorAveragingServiceProvider = new ColorAveragingServiceProvider(); _colorTransformerService = new ColorTransformerService(); AmbiLightConfig config = ReadConfig(_configPath); ApplyConfig(config); var configFileInfo = new FileInfo(configPath); var watcher = new FileSystemWatcher(configFileInfo.DirectoryName, configFileInfo.Name); watcher.Changed += (sender, eventArgs) => { watcher.EnableRaisingEvents = false; while (FileIsLocked(eventArgs.FullPath)) { Thread.Sleep(100); } ReloadConfig(); watcher.EnableRaisingEvents = true; }; watcher.EnableRaisingEvents = true; }
public ConfigForm() { InitializeComponent(); var captureServiceProvider = new ScreenCaptureServiceProvider(); _captureService = captureServiceProvider.Provide(false); _updateImageTimer = new Timer(); _updateImageTimer.Interval = 100; _updateImageTimer.Tick += UpdatePictureBox; _updateImageTimer.Start(); screenList.DataSource = Screen.AllScreens; screenList.DisplayMember = "DeviceName"; Screen primaryScreen = Screen.PrimaryScreen; screenList.SelectedItem = primaryScreen; _selectedScreen = primaryScreen; SetScreenClickMode(ScreenClickMode.None); }