Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
        }