private void RefreshControls() { highPerformanceToggle.CheckedChanged -= HighPerformanceToggle1_CheckedChanged; if (currentLastActivePowerPlan != NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID) { currentLastActivePowerPlan = PowerManager.GetActivePlan(); } highPerformanceToggle.Checked = PowerManager.GetActivePlan() == NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID; highPerformanceToggle.CheckedChanged += HighPerformanceToggle1_CheckedChanged; disableGameBarMetroToggle.CheckedChanged -= DisableGameBarMetroToggle_CheckedChanged; disableGameBarMetroToggle.Checked = !GameBar.IsEnabled(false); disableGameBarMetroToggle.CheckedChanged += DisableGameBarMetroToggle_CheckedChanged; disableFullScreenOptimizationsMetroToggle.CheckedChanged -= DisableFullScreenOptimizationsMetroToggle_CheckedChanged; disableFullScreenOptimizationsMetroToggle.Checked = !LeagueGameCompabilityFlagLayers.Instance.GetFullScreenOptimizationsFlag(false); disableFullScreenOptimizationsMetroToggle.CheckedChanged += DisableFullScreenOptimizationsMetroToggle_CheckedChanged; notificationsToggle.CheckedChanged -= NotificationsToggle_CheckedChanged; notificationsToggle.Checked = notification; Program.PlayNotiAllow = notification; Properties.Settings.Default.Notifications = notification; notificationsToggle.CheckedChanged += NotificationsToggle_CheckedChanged; ReadGameConfigData(false); }
public void GetActivePlan_Returns_Guid() { var res = PowerManager.GetActivePlan(); Assert.IsNotNull(res); Assert.AreNotEqual(Guid.Empty, res); }
// Update tray hover text, with power plan and battery status private void UpdateTrayText() { trayIcon.Text = PowerManager.GetPlanName(PowerManager.GetActivePlan()); if (SystemInformation.PowerStatus.BatteryChargeStatus != BatteryChargeStatus.NoSystemBattery) { trayIcon.Text += " | " + SystemInformation.PowerStatus.BatteryLifePercent.ToString("P0"); if (SystemInformation.PowerStatus.BatteryChargeStatus == BatteryChargeStatus.Charging) { trayIcon.Text += " | Charging"; } if (SystemInformation.PowerStatus.BatteryLifePercent <= 100) { trayIcon.Icon = Resources.Battery100; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 90) { trayIcon.Icon = Resources.Battery90; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 80) { trayIcon.Icon = Resources.Battery80; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 70) { trayIcon.Icon = Resources.Battery70; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 60) { trayIcon.Icon = Resources.Battery60; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 50) { trayIcon.Icon = Resources.Battery50; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 40) { trayIcon.Icon = Resources.Battery40; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 30) { trayIcon.Icon = Resources.Battery30; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 20) { trayIcon.Icon = Resources.Battery20; } else if (SystemInformation.PowerStatus.BatteryLifePercent <= 10) { trayIcon.Icon = Resources.Battery10; } } }
private void MetroLabel2_Click(object sender, EventArgs e) { logger.Info("High Performance PP label has been clicked with left click. Showing reset confirmation dialog."); if (DialogResult.Yes == MessageBox.Show("Are you sure that you want to reset last active power plan?", "LeagueFPSBoost: PowerManager", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) { logger.Info("Resetting current last active power plan."); SaveLastActivePowerPlan(Guid.Empty); currentLastActivePowerPlan = PowerManager.GetActivePlan(); logger.Info("Finished resetting current last active power plan."); } else { logger.Info("User declined to reset current last active power plan"); } }
public void SetActivePlan_Sets_ActivePlan() { var sourcePlan = PowerManager.GetActivePlan(); Assert.IsNotNull(sourcePlan); Assert.AreNotEqual(Guid.Empty, sourcePlan); try { PowerManager.DuplicatePlan(_balancedPlanGuid, _nonExistentPlanGuid1); PowerManager.SetActivePlan(_nonExistentPlanGuid1); var active = PowerManager.GetActivePlan(); Assert.AreEqual(_nonExistentPlanGuid1, active); } finally { PowerManager.SetActivePlan(sourcePlan); PowerManager.DeletePlan(_nonExistentPlanGuid1); } }
// Get the list of power plans for the tray context menu private List <MenuItem> GetTrayList() { var activePlan = PowerManager.GetActivePlan(); List <MenuItem> menuList = new List <MenuItem>(); var planList = PowerManager.ListPlans(); foreach (var plan in planList) { var name = PowerManager.GetPlanName(plan); if (plan == activePlan) { name += " (active)"; } menuList.Add(new MenuItem(name, (sender, e) => { ChangePlan(plan); })); } menuList.Add(new MenuItem("Settings", SettingsHandler)); menuList.Add(new MenuItem("Exit", ExitHandler)); return(menuList); }
private void HighPerformanceToggle1_CheckedChanged(object sender, EventArgs e) { if (!Settings.Default.HighPPPAgreement && currentLastActivePowerPlan != NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID) { logger.Info("User clicked on High PPP without agreeing."); if (DialogResult.OK != MessageBox.Show("By clicking OK you are agreeing that you are aware of possibility of reducing battery life on laptops and increased temperatures" + " while using high performance power plan and that developer is not responsible for any damage.", "LeagueFPSBoost: WARNING", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)) { logger.Info("User declined agreement."); try { logger.Debug("Saving agreement status as false in settings."); Settings.Default.HighPPPAgreement = false; Settings.Default.Save(); logger.Debug("Saving done."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while saving agreement status: " + Environment.NewLine); } highPerformanceToggle.CheckedChanged -= HighPerformanceToggle1_CheckedChanged; highPerformanceToggle.Checked = false; highPerformanceToggle.CheckedChanged += HighPerformanceToggle1_CheckedChanged; logger.Info("Aborting High PPP."); return; } else { logger.Info("User accepted agreement."); try { logger.Debug("Saving agreement status as true in settings."); Settings.Default.HighPPPAgreement = true; Settings.Default.Save(); logger.Debug("Saving done."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while saving agreement status: " + Environment.NewLine); } } } if (currentLastActivePowerPlan == NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID) { logger.Info("Old power plan was also high performance."); MessageBox.Show("Old power plan was also high performance. Try to right click on 'High Performance PP' and then select your default plan and then left click on 'High Performance PP' and reset last active power plan.", "LeagueFPSBoost: PowerManager Info", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (highPerformanceToggle.Checked) { logger.Debug("High PPP has been checked."); try { logger.Info($"Changing power plan to: {NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID} - {PowerManager.GetPlanName(NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID)}"); PowerManager.SetActivePlan(NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID); logger.Info("Power plan change finished without exceptions."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + $" while changing power plan to high performance: {NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID}{Environment.NewLine}"); MessageBox.Show("There was an error while changing power plan to high performance. Check log for more details.", "LeagueFPSBoost: PowerManager Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { logger.Debug("High PPP has been unchecked."); try { logger.Info($"Changing power plan to last active one: {currentLastActivePowerPlan} - {PowerManager.GetPlanName(currentLastActivePowerPlan)}"); PowerManager.SetActivePlan(currentLastActivePowerPlan); logger.Info("Power plan change finished without exceptions."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + $" while changing power plan to last active power plan: {currentLastActivePowerPlan}"); MessageBox.Show("There was an error while changing power plan to last active power plan. Check log for more details.", "LeagueFPSBoost: PowerManager Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } highPerformanceToggle.CheckedChanged -= HighPerformanceToggle1_CheckedChanged; highPerformanceToggle.Checked = PowerManager.GetActivePlan() == NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID; highPerformanceToggle.CheckedChanged += HighPerformanceToggle1_CheckedChanged; }
private void MainWindow_Load(object sender, EventArgs e) { //Debug text update if (Program.DebugBuild) { Text = "LeagueFPSBoost β"; metroLabel9.Text += Environment.NewLine + "THIS IS BETA BUILD!"; aboutTXTDebug = metroLabel9.Text; } Program.DebuggerWatcher.DebuggerChanged += DebuggerChangedGUI; Program.DebuggerWatcher.DebuggerChecked += DebuggerChangedGUI; Program.DebuggerWatcher.CheckNow(); //Theme metroStyleManager1.Theme = Settings.Default.ThemeStyle; metroStyleManager1.Style = Settings.Default.ColorStyle; if (metroStyleManager1.Theme == MetroThemeStyle.Dark) { darkThemeToggle.Checked = true; } else { darkThemeToggle.Checked = false; } logger.Debug("Loaded style settings."); LeagueLogger.Okay("Loaded style settings."); //High PPP try { logger.Debug("Reading current active power plan."); currentLastActivePowerPlan = PowerManager.GetActivePlan(); logger.Debug($"Current active power plan: {currentLastActivePowerPlan} - {PowerManager.GetPlanName(currentLastActivePowerPlan)}"); highPerformanceToggle.CheckedChanged -= HighPerformanceToggle1_CheckedChanged; highPerformanceToggle.Checked = currentLastActivePowerPlan == NativeGUIDs.HIGH_PERFORMANCE_POWER_PLAN_GUID; highPerformanceToggle.CheckedChanged += HighPerformanceToggle1_CheckedChanged; logger.Debug("Loaded current active power plan."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while reading active power plan: " + Environment.NewLine); } if (currentLastActivePowerPlan != Settings.Default.LastActivePowerPlan) { logger.Warn("Current active power plan and last active power plan don't match. Maybe program has closed incorrectly or plan was changed outside of program."); try { logger.Info("Trying to change power plan."); logger.Info($"Changing current power plan to last saved active power plan: {Settings.Default.LastActivePowerPlan} - {PowerManager.GetPlanName(Settings.Default.LastActivePowerPlan)}"); PowerManager.SetActivePlan(Settings.Default.LastActivePowerPlan); currentLastActivePowerPlan = PowerManager.GetActivePlan(); logger.Debug($"Power plan set to: {currentLastActivePowerPlan} - {PowerManager.GetPlanName(currentLastActivePowerPlan)}"); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while trying to change power plan to last active one: " + Environment.NewLine); } } SaveLastActivePowerPlan(currentLastActivePowerPlan); //Notification notificationsToggle.CheckedChanged -= NotificationsToggle_CheckedChanged; notification = Properties.Settings.Default.Notifications; notificationsToggle.Checked = notification; Program.PlayNotiAllow = notification; logger.Debug("Loaded notification settings."); LeagueLogger.Okay("Loaded notification settings."); notificationsToggle.CheckedChanged -= NotificationsToggle_CheckedChanged; disableGameBarMetroToggle.CheckedChanged -= DisableGameBarMetroToggle_CheckedChanged; disableFullScreenOptimizationsMetroToggle.CheckedChanged -= DisableFullScreenOptimizationsMetroToggle_CheckedChanged; if (Environment.OSVersion.Version.Major != 10) { logger.Debug("OS major version is not 10. Disabling game bar and fullscropt toggle."); disableGameBarMetroToggle.Enabled = false; metroLabel8.Enabled = false; disableFullScreenOptimizationsMetroToggle.Enabled = false; metroLabel7.Enabled = false; } disableGameBarMetroToggle.Checked = !GameBar.IsEnabled(); disableFullScreenOptimizationsMetroToggle.Checked = !LeagueGameCompabilityFlagLayers.Instance.GetFullScreenOptimizationsFlag(); disableGameBarMetroToggle.CheckedChanged += DisableGameBarMetroToggle_CheckedChanged; disableFullScreenOptimizationsMetroToggle.CheckedChanged += DisableFullScreenOptimizationsMetroToggle_CheckedChanged; metroToggleProcessPriority.CheckedChanged -= MetroToggleProcessPriority_CheckedChanged; metroToggleProcessPriority.Enabled = metroLabelManageProcPriority.Enabled = metroToggleProcessPriority.Checked = false; //Watcher Task.Factory.StartNew(() => { logger.Debug("Starting process watcher for first time."); var wmierror = !LeaguePriority.InitAndStartWatcher(); if (wmierror) { metroToggleProcessPriority.Enabled = metroLabelManageProcPriority.Enabled = metroToggleProcessPriority.Checked = false; return; } metroToggleProcessPriority.Checked = LeaguePriority.ProcessWatcherEnabled; logger.Debug("Checking the saved state of process watcher enabled setting."); if (!Settings.Default.ProcessWatcherEnable) { try { logger.Debug("Trying to disable process watcher because its disabled in settings."); LeaguePriority.StopProcessWatcher(); metroToggleProcessPriority.Checked = LeaguePriority.ProcessWatcherEnabled; logger.Debug("Disabling process watcher completed successfully."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while trying to stop process watcher: " + Environment.NewLine); metroToggleProcessPriority.Checked = false; } } else { try { logger.Debug("Trying to enable process watcher because its enabled in settings."); LeaguePriority.StartProcessWatcher(); metroToggleProcessPriority.Checked = LeaguePriority.ProcessWatcherEnabled; logger.Debug("Enabling process watcher completed successfully."); } catch (Exception ex) { logger.Error(ex, Strings.exceptionThrown + " while trying to stop process watcher: " + Environment.NewLine); try { LeaguePriority.StopProcessWatcher(); } catch { } metroToggleProcessPriority.Checked = false; } } metroToggleProcessPriority.Enabled = metroLabelManageProcPriority.Enabled = true; metroToggleProcessPriority.CheckedChanged += MetroToggleProcessPriority_CheckedChanged; }); //Ini-Praser ReadGameConfigData(); Loaded = true; logger.Debug("Main window has been loaded."); LeagueLogger.Okay("Main window loaded."); Program.MainWindowLoaded = true; if (Program.FirstRun.Value) { UpdaterActionsSettings.Default.Reset(); UpdaterActionsSettings.Default.Save(); UpdaterMessageBoxSettings.Default.Reset(); UpdaterMessageBoxSettings.Default.Save(); logger.Debug("Reseted updater actions and message box settings to their default values."); Task.Run(new Action(FirstRunDonationMessageBox)); } UpdateManager.InitAndCheckForUpdates(); BringFormToFront(); }
private ComponentTask ConfigurePowerOptions() { Func <bool> prequisiteFunc = null; Action action = () => { //SUB_DISK - DISKIDLE PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.DISK_SUBGROUP, Setting.DISKIDLE, PowerMode.AC, 0); PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.DISK_SUBGROUP, Setting.DISKIDLE, PowerMode.DC, 0); //SUB_SLEEP - STANDBYIDLE PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.STANDBYIDLE, PowerMode.AC, 0); PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.STANDBYIDLE, PowerMode.DC, 0); //SUB_SLEEP - HYBRIDSLEEP PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HYBRIDSLEEP, PowerMode.AC, 0); PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HYBRIDSLEEP, PowerMode.DC, 0); //SUB_SLEEP - HIBERNATEIDLE PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HIBERNATEIDLE, PowerMode.AC, 0); PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HIBERNATEIDLE, PowerMode.DC, 0); //SUB_VIDEO - VIDEOIDLE PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.VIDEO_SUBGROUP, Setting.VIDEOIDLE, PowerMode.AC, 0); PowerManager.SetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.VIDEO_SUBGROUP, Setting.VIDEOIDLE, PowerMode.DC, 0); }; Func <bool> actionValidation = () => { return //SUB_DISK - DISKIDLE (PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.DISK_SUBGROUP, Setting.DISKIDLE, PowerMode.AC) == 0 && PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.DISK_SUBGROUP, Setting.DISKIDLE, PowerMode.DC) == 0 && //SUB_SLEEP - STANDBYIDLE PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.STANDBYIDLE, PowerMode.AC) == 0 && PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.STANDBYIDLE, PowerMode.DC) == 0 && //SUB_SLEEP - HYBRIDSLEEP PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HYBRIDSLEEP, PowerMode.AC) == 0 && PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HYBRIDSLEEP, PowerMode.DC) == 0 && //SUB_SLEEP - HIBERNATEIDLE PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HIBERNATEIDLE, PowerMode.AC) == 0 && PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.SLEEP_SUBGROUP, Setting.HIBERNATEIDLE, PowerMode.DC) == 0 && //SUB_VIDEO - VIDEOIDLE PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.VIDEO_SUBGROUP, Setting.VIDEOIDLE, PowerMode.AC) == 0 && PowerManager.GetPlanSetting( PowerManager.GetActivePlan(), SettingSubgroup.VIDEO_SUBGROUP, Setting.VIDEOIDLE, PowerMode.DC) == 0); }; return(new ComponentTask(new SetupTask(prequisiteFunc, action, actionValidation, false), null)); }
// When the event timer fires private void OnTimerEvent(object source, ElapsedEventArgs e) { // Update timer the interval based on settings aTimer.Interval = settingsForm.getPollInterval(); var madeChange = false; // If idle event is enabled if (settingsForm.getIdleEnabled()) { // If we are idle beyond timeout if (GetIdleTime() > settingsForm.getIdleTimeout()) { // And not already sleeping if (!sleep) { // Store the old plan, and switch to the defined sleep plan oldPlan = PowerManager.GetActivePlan(); PowerManager.SetActivePlan(settingsForm.getIdlePlan()); sleep = true; madeChange = true; Console.WriteLine("Sleep: Idle"); } } // We are sleeping but no longer idle, change to previous plan else if (sleep == true) { PowerManager.SetActivePlan(oldPlan); sleep = false; madeChange = true; Console.WriteLine("Woken: Idle"); } } // If battery event enabled if (settingsForm.getBatEnabled()) { // If battery in use if (SystemInformation.PowerStatus.BatteryChargeStatus != BatteryChargeStatus.NoSystemBattery && SystemInformation.PowerStatus.BatteryChargeStatus != BatteryChargeStatus.Unknown) { // If battery lower than defined level for sleep var batPer = SystemInformation.PowerStatus.BatteryLifePercent; if (batPer < settingsForm.getBatLevel()) { // And not already sleeping if (!sleep) { // Store the old plan, and switch to the defined sleep plan oldPlan = PowerManager.GetActivePlan(); PowerManager.SetActivePlan(settingsForm.getBatPlan()); sleep = true; madeChange = true; Console.WriteLine("Sleep: Battery"); } } // We are sleeping but no longer below battery threshold, change to previous plan else if (sleep == true) { PowerManager.SetActivePlan(oldPlan); sleep = false; madeChange = true; Console.WriteLine("Woken: Battery"); } } } // If the state changed, update the tray with new power plan if (madeChange) { UpdateTrayMenu(); UpdateTrayText(); } }