|
|
|
@ -29,7 +29,7 @@ ISystemDisplayService::ISystemDisplayService(Core::System& system_, |
|
|
|
{2400, nullptr, "OpenIndirectLayer"}, |
|
|
|
{2401, nullptr, "CloseIndirectLayer"}, |
|
|
|
{2402, nullptr, "FlipIndirectLayer"}, |
|
|
|
{3000, nullptr, "ListDisplayModes"}, |
|
|
|
{3000, C<&ISystemDisplayService::ListDisplayModes>, "ListDisplayModes"}, |
|
|
|
{3001, nullptr, "ListDisplayRgbRanges"}, |
|
|
|
{3002, nullptr, "ListDisplayContentTypes"}, |
|
|
|
{3200, C<&ISystemDisplayService::GetDisplayMode>, "GetDisplayMode"}, |
|
|
|
@ -80,20 +80,39 @@ Result ISystemDisplayService::SetLayerVisibility(bool visible, u64 layer_id) { |
|
|
|
R_SUCCEED(); |
|
|
|
} |
|
|
|
|
|
|
|
Result ISystemDisplayService::GetDisplayMode(Out<u32> out_width, Out<u32> out_height, |
|
|
|
Out<f32> out_refresh_rate, Out<u32> out_unknown) { |
|
|
|
LOG_WARNING(Service_VI, "(STUBBED) called"); |
|
|
|
Result ISystemDisplayService::ListDisplayModes( |
|
|
|
Out<u64> out_count, u64 display_id, |
|
|
|
OutArray<DisplayMode, BufferAttr_HipcMapAlias> out_display_modes) { |
|
|
|
LOG_WARNING(Service_VI, "(STUBBED) called, display_id={}", display_id); |
|
|
|
|
|
|
|
if (!out_display_modes.empty()) { |
|
|
|
out_display_modes[0] = { |
|
|
|
.width = 1920, |
|
|
|
.height = 1080, |
|
|
|
.refresh_rate = 60.f, |
|
|
|
.unknown = {}, |
|
|
|
}; |
|
|
|
*out_count = 1; |
|
|
|
} else { |
|
|
|
*out_count = 0; |
|
|
|
} |
|
|
|
|
|
|
|
R_SUCCEED(); |
|
|
|
} |
|
|
|
|
|
|
|
Result ISystemDisplayService::GetDisplayMode(Out<DisplayMode> out_display_mode, u64 display_id) { |
|
|
|
LOG_WARNING(Service_VI, "(STUBBED) called, display_id={}", display_id); |
|
|
|
|
|
|
|
if (Settings::IsDockedMode()) { |
|
|
|
*out_width = static_cast<u32>(DisplayResolution::DockedWidth); |
|
|
|
*out_height = static_cast<u32>(DisplayResolution::DockedHeight); |
|
|
|
out_display_mode->width = static_cast<u32>(DisplayResolution::DockedWidth); |
|
|
|
out_display_mode->height = static_cast<u32>(DisplayResolution::DockedHeight); |
|
|
|
} else { |
|
|
|
*out_width = static_cast<u32>(DisplayResolution::UndockedWidth); |
|
|
|
*out_height = static_cast<u32>(DisplayResolution::UndockedHeight); |
|
|
|
out_display_mode->width = static_cast<u32>(DisplayResolution::UndockedWidth); |
|
|
|
out_display_mode->height = static_cast<u32>(DisplayResolution::UndockedHeight); |
|
|
|
} |
|
|
|
|
|
|
|
*out_refresh_rate = 60.f; // This wouldn't seem to be correct for 30 fps games.
|
|
|
|
*out_unknown = 0; |
|
|
|
out_display_mode->refresh_rate = 60.f; // This wouldn't seem to be correct for 30 fps games.
|
|
|
|
out_display_mode->unknown = 0; |
|
|
|
|
|
|
|
R_SUCCEED(); |
|
|
|
} |
|
|
|
|