コード例 #1
0
        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);
        }
コード例 #2
0
        public void GetActivePlan_Returns_Guid()
        {
            var res = PowerManager.GetActivePlan();

            Assert.IsNotNull(res);
            Assert.AreNotEqual(Guid.Empty, res);
        }
コード例 #3
0
        // 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;
                }
            }
        }
コード例 #4
0
 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");
     }
 }
コード例 #5
0
        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);
            }
        }
コード例 #6
0
        // 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);
        }
コード例 #7
0
        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;
        }
コード例 #8
0
        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();
        }
コード例 #9
0
ファイル: OS.cs プロジェクト: trentet/TinybotInstaller
        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));
        }
コード例 #10
0
        // 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();
            }
        }