service: lbl: Add SaveCurrentSetting, LoadCurrentSetting and IsAutoBrightnessControlSupported for QLaunch

This commit is contained in:
Narr the Reg 2024-02-23 12:41:42 -06:00
parent 015d666a4d
commit e1bdeb2942
1 changed files with 27 additions and 4 deletions

View File

@ -18,8 +18,8 @@ public:
explicit LBL(Core::System& system_) : ServiceFramework{system_, "lbl"} { explicit LBL(Core::System& system_) : ServiceFramework{system_, "lbl"} {
// clang-format off // clang-format off
static const FunctionInfo functions[] = { static const FunctionInfo functions[] = {
{0, nullptr, "SaveCurrentSetting"}, {0, &LBL::SaveCurrentSetting, "SaveCurrentSetting"},
{1, nullptr, "LoadCurrentSetting"}, {1, &LBL::LoadCurrentSetting, "LoadCurrentSetting"},
{2, &LBL::SetCurrentBrightnessSetting, "SetCurrentBrightnessSetting"}, {2, &LBL::SetCurrentBrightnessSetting, "SetCurrentBrightnessSetting"},
{3, &LBL::GetCurrentBrightnessSetting, "GetCurrentBrightnessSetting"}, {3, &LBL::GetCurrentBrightnessSetting, "GetCurrentBrightnessSetting"},
{4, nullptr, "ApplyCurrentBrightnessSettingToBacklight"}, {4, nullptr, "ApplyCurrentBrightnessSettingToBacklight"},
@ -47,7 +47,7 @@ public:
{26, &LBL::EnableVrMode, "EnableVrMode"}, {26, &LBL::EnableVrMode, "EnableVrMode"},
{27, &LBL::DisableVrMode, "DisableVrMode"}, {27, &LBL::DisableVrMode, "DisableVrMode"},
{28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"}, {28, &LBL::IsVrModeEnabled, "IsVrModeEnabled"},
{29, nullptr, "IsAutoBrightnessControlSupported"}, {29, &LBL::IsAutoBrightnessControlSupported, "IsAutoBrightnessControlSupported"},
}; };
// clang-format on // clang-format on
@ -60,6 +60,20 @@ private:
On = 1, On = 1,
}; };
void SaveCurrentSetting(HLERequestContext& ctx) {
LOG_WARNING(Service_LBL, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
void LoadCurrentSetting(HLERequestContext& ctx) {
LOG_WARNING(Service_LBL, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
}
void SetCurrentBrightnessSetting(HLERequestContext& ctx) { void SetCurrentBrightnessSetting(HLERequestContext& ctx) {
IPC::RequestParser rp{ctx}; IPC::RequestParser rp{ctx};
auto brightness = rp.Pop<float>(); auto brightness = rp.Pop<float>();
@ -310,6 +324,14 @@ private:
rb.Push(vr_mode_enabled); rb.Push(vr_mode_enabled);
} }
void IsAutoBrightnessControlSupported(HLERequestContext& ctx) {
LOG_DEBUG(Service_LBL, "called");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push<u8>(auto_brightness_supported);
}
bool vr_mode_enabled = false; bool vr_mode_enabled = false;
float current_brightness = 1.0f; float current_brightness = 1.0f;
float ambient_light_value = 0.0f; float ambient_light_value = 0.0f;
@ -317,7 +339,8 @@ private:
bool dimming = true; bool dimming = true;
bool backlight_enabled = true; bool backlight_enabled = true;
bool update_instantly = false; bool update_instantly = false;
bool auto_brightness = false; // TODO(ogniK): Move to system settings bool auto_brightness = false;
bool auto_brightness_supported = true; // TODO(ogniK): Move to system settings
}; };
void LoopProcess(Core::System& system) { void LoopProcess(Core::System& system) {