private void Application_Startup(object sender, StartupEventArgs e) { bool isNewInstance = false; appMutex = new Mutex(true, "SamsungHotkeys", out isNewInstance); if(!isNewInstance) { Debug.WriteLine("Another instance of SamsungHotkeys is already running!"); Application.Current.Shutdown(); return; } try { hkMgr = new HotkeyManager(Dispatcher); } catch(Controls.InterfaceNotInitializedException ex) { MessageBox.Show("Unable to initialize the Samsung BIOS interface. It would seem that SABI.DLL is not properly installed.", "Samsung Hotkeys", MessageBoxButton.OK, MessageBoxImage.Error); Application.Current.Shutdown(); return; } hkMgr.ShowOSDEvent += HkMgr_ShowOSDEvent; osdWindow.ShowActivated = false; osdWindow.Topmost = true; osdWindow.ShowInTaskbar = false; osdWindow.Opacity = 0; osdWindow.SizeChanged += OsdWindow_SizeChanged; osdWindow.Show(); }
private void HkMgr_ShowOSDEvent(object sender, HotkeyManager.ShowOSDEventArgs e) { Debug.WriteLine("ShowOSDEvent: " + e.HotkeyEvent + "; HasLevel=" + e.HasLevel + "; Level=" + e.Level); switch(e.HotkeyEvent) { case Hotkey.EasySettings: ShowSettingsWindow(); break; case Hotkey.ScreenBrightnessDown: case Hotkey.ScreenBrightnessUp: ShowOSD("Display Brightness", e.Level / 100.0); break; case Hotkey.DisplaySwitch: if (SamsungHotkeys.Properties.Settings.Default.ShowUnusedOSDNotifications) { ShowOSD("Display Switch"); } break; case Hotkey.TouchpadDisabled: ShowOSD("Touchpad", "OFF", redTextBrush); break; case Hotkey.TouchpadEnabled: ShowOSD("Touchpad", "ON", greenTextBrush); break; case Hotkey.KeyboardBacklightDown: case Hotkey.KeyboardBacklightUp: ShowOSD("Keyboard Backlight", e.Level / 8.0); break; case Hotkey.CoolingMode: ShowOSD("Power Plan: ", (string)e.Parameter, lightTextBrush); break; case Hotkey.ToggleWireless: ShowOSD("WiFi / BT / WWAN", e.Level == 0 ? "OFF" : "ON", e.Level == 0 ? redTextBrush : greenTextBrush); break; case Hotkey.FnLockDisabled: ShowOSD("Fn-Lock", "OFF", redTextBrush); break; case Hotkey.FnLockEnabled: ShowOSD("Fn-Lock", "ON", greenTextBrush); break; case Hotkey.EjectODD: ShowOSD("Eject ODD"); break; } }