diff options
author | bunnei <bunneidev@gmail.com> | 2019-01-03 03:51:20 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-01-03 03:51:20 +0100 |
commit | 2c0f831468961826f5264c8fc4b4a21ffb1de87c (patch) | |
tree | 466edda0ba6c33390b4becfd20ff9a42a60aaa88 /src/core/hle/service | |
parent | Merge pull request #1978 from lioncash/enabled (diff) | |
parent | service/vi: Implement OpenDefaultDisplay in terms of OpenDisplay (diff) | |
download | yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar.gz yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar.bz2 yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar.lz yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar.xz yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.tar.zst yuzu-2c0f831468961826f5264c8fc4b4a21ffb1de87c.zip |
Diffstat (limited to 'src/core/hle/service')
-rw-r--r-- | src/core/hle/service/vi/vi.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp index ecfec9995..a3b8cec72 100644 --- a/src/core/hle/service/vi/vi.cpp +++ b/src/core/hle/service/vi/vi.cpp @@ -899,10 +899,23 @@ private: LOG_WARNING(Service_VI, "(STUBBED) called"); IPC::RequestParser rp{ctx}; - auto name_buf = rp.PopRaw<std::array<u8, 0x40>>(); - auto end = std::find(name_buf.begin(), name_buf.end(), '\0'); + const auto name_buf = rp.PopRaw<std::array<char, 0x40>>(); - std::string name(name_buf.begin(), end); + OpenDisplayImpl(ctx, std::string_view{name_buf.data(), name_buf.size()}); + } + + void OpenDefaultDisplay(Kernel::HLERequestContext& ctx) { + LOG_DEBUG(Service_VI, "called"); + + OpenDisplayImpl(ctx, "Default"); + } + + void OpenDisplayImpl(Kernel::HLERequestContext& ctx, std::string_view name) { + const auto trim_pos = name.find('\0'); + + if (trim_pos != std::string_view::npos) { + name.remove_suffix(name.size() - trim_pos); + } ASSERT_MSG(name == "Default", "Non-default displays aren't supported yet"); @@ -1103,7 +1116,7 @@ IApplicationDisplayService::IApplicationDisplayService( "GetIndirectDisplayTransactionService"}, {1000, &IApplicationDisplayService::ListDisplays, "ListDisplays"}, {1010, &IApplicationDisplayService::OpenDisplay, "OpenDisplay"}, - {1011, nullptr, "OpenDefaultDisplay"}, + {1011, &IApplicationDisplayService::OpenDefaultDisplay, "OpenDefaultDisplay"}, {1020, &IApplicationDisplayService::CloseDisplay, "CloseDisplay"}, {1101, &IApplicationDisplayService::SetDisplayEnabled, "SetDisplayEnabled"}, {1102, &IApplicationDisplayService::GetDisplayResolution, "GetDisplayResolution"}, |