ProcessController: save and restore "Power saving" mode

fix #11823

Change-Id: I1284587fa814cd3e121e1c5913f0fe1e15865d9d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7670
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
This commit is contained in:
Jérôme Duval 2024-05-16 16:20:15 +02:00 committed by waddlesplash
parent 370dde2255
commit c38a5f9099
1 changed files with 8 additions and 0 deletions

View File

@ -472,6 +472,8 @@ ProcessController::MessageReceived(BMessage *message)
set_scheduler_mode(SCHEDULER_MODE_POWER_SAVING);
else
set_scheduler_mode(SCHEDULER_MODE_LOW_LATENCY);
Preferences preferences(kPreferencesFileName);
preferences.SaveInt32(get_scheduler_mode(), "scheduler_mode");
break;
}
@ -841,6 +843,12 @@ thread_popup(void *arg)
// Scheduler modes
int32 currentMode = get_scheduler_mode();
Preferences preferences(kPreferencesFileName, NULL, false);
int32 savedMode;
if (preferences.ReadInt32(savedMode, "scheduler_mode") && currentMode != savedMode) {
set_scheduler_mode(savedMode);
currentMode = get_scheduler_mode();
}
BMessage* msg = new BMessage('Schd');
item = new BMenuItem(B_TRANSLATE("Power saving"), msg);
if ((uint32)currentMode == SCHEDULER_MODE_POWER_SAVING)