private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) { if (msg == 0x007e) // WM_DISPLAYCHANGE { DisplayChanged?.Invoke(); } return(IntPtr.Zero); }
/// <summary> /// Starts observing display information for changes. /// </summary> /// <remarks> /// Display events will be never invoked before calling this method. /// </remarks> public void StartListening() { Display.StateChanged += (s, e) => { DisplayChanged?.Invoke(s, new DisplayStateEventArgs(EnumMapper.DisplayStateMapper(e.State))); }; SystemSettings.ScreenBacklightTimeChanged += (s, e) => { ScreenBacklightTimeChanged?.Invoke(s, new SystemInfo.Model.Display.ScreenBacklightTimeChangedEventArgs(e.Value)); }; }
private void ProcessData(byte data) { if (CursorCol < 16) { var chars = Lines[CursorRow].ToCharArray(); chars[CursorCol] = (char)data; Lines[CursorRow] = new String(chars); if (_cursorDir == CursorDir.Right) { CursorCol++; } else if (CursorCol > 0) { CursorCol--; } DisplayChanged?.Invoke(); } }
private void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e) { logger.Info("Display change detected!"); Task.Run(() => DisplayChanged?.Invoke()); }
protected virtual void OnDisplayChanged(Display display) => DisplayChanged?.Invoke(display);