Implement ISystemDisplayService::GetDisplayMode

This commit is contained in:
raven02 2018-09-17 23:19:31 +08:00
parent df5a44a40b
commit 4092907687
1 changed files with 19 additions and 1 deletions

View File

@ -609,7 +609,7 @@ public:
{3000, nullptr, "ListDisplayModes"}, {3000, nullptr, "ListDisplayModes"},
{3001, nullptr, "ListDisplayRgbRanges"}, {3001, nullptr, "ListDisplayRgbRanges"},
{3002, nullptr, "ListDisplayContentTypes"}, {3002, nullptr, "ListDisplayContentTypes"},
{3200, nullptr, "GetDisplayMode"}, {3200, &ISystemDisplayService::GetDisplayMode, "GetDisplayMode"},
{3201, nullptr, "SetDisplayMode"}, {3201, nullptr, "SetDisplayMode"},
{3202, nullptr, "GetDisplayUnderscan"}, {3202, nullptr, "GetDisplayUnderscan"},
{3203, nullptr, "SetDisplayUnderscan"}, {3203, nullptr, "SetDisplayUnderscan"},
@ -660,6 +660,24 @@ private:
LOG_WARNING(Service_VI, "(STUBBED) called, layer_id=0x{:08X}, visibility={}", layer_id, LOG_WARNING(Service_VI, "(STUBBED) called, layer_id=0x{:08X}, visibility={}", layer_id,
visibility); visibility);
} }
void GetDisplayMode(Kernel::HLERequestContext& ctx) {
IPC::ResponseBuilder rb{ctx, 6};
rb.Push(RESULT_SUCCESS);
if (Settings::values.use_docked_mode) {
rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedWidth));
rb.Push(static_cast<u32>(Service::VI::DisplayResolution::DockedHeight));
} else {
rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedWidth));
rb.Push(static_cast<u32>(Service::VI::DisplayResolution::UndockedHeight));
}
rb.PushRaw<float>(60.0f);
rb.Push<u32>(0);
LOG_DEBUG(Service_VI, "called");
}
}; };
class IManagerDisplayService final : public ServiceFramework<IManagerDisplayService> { class IManagerDisplayService final : public ServiceFramework<IManagerDisplayService> {