Example #1
0
        private void RefreshBrightness()
        {
            foreach (DisplayConfiguration.PHYSICAL_MONITOR physicalMonitor in physicalMonitors)
            {
                try
                {
                    double newBrightness = brightnessSlider.Value;
                    if (newBrightness >= 0 && newBrightness < 25)
                    {
                        variationPos = 0;
                    }
                    else
                    if (newBrightness >= 25 && newBrightness < 50)
                    {
                        variationPos = 1;
                    }
                    else
                    if (newBrightness >= 50 && newBrightness < 75)
                    {
                        variationPos = 2;
                    }
                    else
                    if (newBrightness >= 75 && newBrightness < 100)
                    {
                        variationPos = 3;
                    }
                    else
                    {
                        variationPos = 4;
                    }
                    brightnessToggler.Content = newBrightness + "%";

                    DisplayConfiguration.SetMonitorBrightness(physicalMonitor, newBrightness / brightnessSlider.Maximum);
                }
                catch (Win32Exception e_)
                {
                    // LG Flatron W2443T sometimes causes ERROR_GEN_FAILURE when rapidly changing brightness or contrast
                    if (e_.NativeErrorCode == ERROR_GEN_FAILURE)
                    {
                        Debug.WriteLine("ERROR_GEN_FAILURE while setting brightness, rescheduling");
                        brightnessTimeout = new DispatcherTimeout(RefreshBrightness, CHANGE_DELAY);
                        break;
                    }
                    else
                    {
                        throw;
                    }
                }
            }
        }
Example #2
0
 private void RefreshBrightness()
 {
     foreach (DisplayConfiguration.PHYSICAL_MONITOR physicalMonitor in physicalMonitors)
     {
         try
         {
             DisplayConfiguration.SetMonitorBrightness(physicalMonitor, brightnessSlider.Value / brightnessSlider.Maximum);
         }
         catch (Win32Exception e)
         {
             // The monitor configuration API tends to throw errors randomly, so we log and ignore them
             Debug.WriteLine(string.Format("Windows API threw an error when changing brightness (0x{0:X}): {1}", e.NativeErrorCode, e.Message));
             brightnessTimeout = new DispatcherTimeout(RefreshBrightness, CHANGE_DELAY);
         }
     }
 }
Example #3
0
 public MainWindow()
 {
     InitializeComponent();
     physicalMonitors = DisplayConfiguration.GetPhysicalMonitors(DisplayConfiguration.GetCurrentMonitor());
     hideStoryboard   = (Storyboard)FindResource("hide");
     notifyIcon       = new System.Windows.Forms.NotifyIcon();
     notifyIcon.Text  = "Brightness";
     using (Stream stream = Application.GetResourceStream(new Uri("brightness.ico", UriKind.Relative)).Stream)
     {
         notifyIcon.Icon = new System.Drawing.Icon(stream);
     }
     notifyIcon.Visible     = true;
     notifyIcon.MouseClick += notifyIcon_MouseClick;
     notifyIcon.ContextMenu = new System.Windows.Forms.ContextMenu();
     notifyIcon.ContextMenu.MenuItems.Add(new System.Windows.Forms.MenuItem("Settings", (sender, e) => SettingsWindow.ShowInstance()));
     notifyIcon.ContextMenu.MenuItems.Add(new System.Windows.Forms.MenuItem("Quit", (sender, e) => Close()));
     brightnessSlider.Value = DisplayConfiguration.GetMonitorBrightness(physicalMonitors[0]) * 100;
 }
Example #4
0
 private void RefreshBrightness()
 {
     foreach (DisplayConfiguration.PHYSICAL_MONITOR physicalMonitor in physicalMonitors)
     {
         try
         {
             DisplayConfiguration.SetMonitorBrightness(physicalMonitor, brightnessSlider.Value / brightnessSlider.Maximum);
         }
         catch (Win32Exception e_)
         {
             // LG Flatron W2443T sometimes causes ERROR_GEN_FAILURE when rapidly changing brightness or contrast
             if (e_.NativeErrorCode == ERROR_GEN_FAILURE)
             {
                 Debug.WriteLine("ERROR_GEN_FAILURE while setting brightness, rescheduling");
                 brightnessTimeout = new DispatcherTimeout(RefreshBrightness, CHANGE_DELAY);
                 break;
             }
             else
             {
                 throw;
             }
         }
     }
 }
Example #5
0
        private void Window_Closed(object sender, EventArgs e)
        {
            UnregisterHotkeys();

            DisplayConfiguration.DestroyPhysicalMonitors(physicalMonitors);
        }