diff options
| author | 2023-10-21 18:22:13 -0400 | |
|---|---|---|
| committer | 2023-10-21 18:22:13 -0400 | |
| commit | d28e826e47bc13b173fd7d279b6013d73363bd27 (patch) | |
| tree | b4f7d2a6481a338a79c094193cba61235dd38905 | |
| parent | Merge pull request #11828 from liamwhite/setthreadescription (diff) | |
| parent | ts: add OpenSession (diff) | |
| download | yuzu-d28e826e47bc13b173fd7d279b6013d73363bd27.tar.gz yuzu-d28e826e47bc13b173fd7d279b6013d73363bd27.tar.xz yuzu-d28e826e47bc13b173fd7d279b6013d73363bd27.zip | |
Merge pull request #11830 from liamwhite/ts-session
ts: add OpenSession
Diffstat (limited to '')
| -rw-r--r-- | src/core/hle/service/ptm/ts.cpp | 40 | ||||
| -rw-r--r-- | src/core/hle/service/ptm/ts.h | 6 |
2 files changed, 40 insertions, 6 deletions
diff --git a/src/core/hle/service/ptm/ts.cpp b/src/core/hle/service/ptm/ts.cpp index ca064dd90..652f38b97 100644 --- a/src/core/hle/service/ptm/ts.cpp +++ b/src/core/hle/service/ptm/ts.cpp | |||
| @@ -9,6 +9,35 @@ | |||
| 9 | 9 | ||
| 10 | namespace Service::PTM { | 10 | namespace Service::PTM { |
| 11 | 11 | ||
| 12 | enum class Location : u8 { | ||
| 13 | Internal, | ||
| 14 | External, | ||
| 15 | }; | ||
| 16 | |||
| 17 | class ISession : public ServiceFramework<ISession> { | ||
| 18 | public: | ||
| 19 | explicit ISession(Core::System& system_) : ServiceFramework{system_, "ISession"} { | ||
| 20 | // clang-format off | ||
| 21 | static const FunctionInfo functions[] = { | ||
| 22 | {0, nullptr, "GetTemperatureRange"}, | ||
| 23 | {2, nullptr, "SetMeasurementMode"}, | ||
| 24 | {4, &ISession::GetTemperature, "GetTemperature"}, | ||
| 25 | }; | ||
| 26 | // clang-format on | ||
| 27 | |||
| 28 | RegisterHandlers(functions); | ||
| 29 | } | ||
| 30 | |||
| 31 | private: | ||
| 32 | void GetTemperature(HLERequestContext& ctx) { | ||
| 33 | constexpr f32 temperature = 35; | ||
| 34 | |||
| 35 | IPC::ResponseBuilder rb{ctx, 3}; | ||
| 36 | rb.Push(ResultSuccess); | ||
| 37 | rb.Push(temperature); | ||
| 38 | } | ||
| 39 | }; | ||
| 40 | |||
| 12 | TS::TS(Core::System& system_) : ServiceFramework{system_, "ts"} { | 41 | TS::TS(Core::System& system_) : ServiceFramework{system_, "ts"} { |
| 13 | // clang-format off | 42 | // clang-format off |
| 14 | static const FunctionInfo functions[] = { | 43 | static const FunctionInfo functions[] = { |
| @@ -16,7 +45,7 @@ TS::TS(Core::System& system_) : ServiceFramework{system_, "ts"} { | |||
| 16 | {1, &TS::GetTemperature, "GetTemperature"}, | 45 | {1, &TS::GetTemperature, "GetTemperature"}, |
| 17 | {2, nullptr, "SetMeasurementMode"}, | 46 | {2, nullptr, "SetMeasurementMode"}, |
| 18 | {3, &TS::GetTemperatureMilliC, "GetTemperatureMilliC"}, | 47 | {3, &TS::GetTemperatureMilliC, "GetTemperatureMilliC"}, |
| 19 | {4, nullptr, "OpenSession"}, | 48 | {4, &TS::OpenSession, "OpenSession"}, |
| 20 | }; | 49 | }; |
| 21 | // clang-format on | 50 | // clang-format on |
| 22 | 51 | ||
| @@ -47,4 +76,13 @@ void TS::GetTemperatureMilliC(HLERequestContext& ctx) { | |||
| 47 | rb.Push(temperature); | 76 | rb.Push(temperature); |
| 48 | } | 77 | } |
| 49 | 78 | ||
| 79 | void TS::OpenSession(HLERequestContext& ctx) { | ||
| 80 | IPC::RequestParser rp{ctx}; | ||
| 81 | [[maybe_unused]] const u32 device_code = rp.Pop<u32>(); | ||
| 82 | |||
| 83 | IPC::ResponseBuilder rb{ctx, 2, 0, 1}; | ||
| 84 | rb.Push(ResultSuccess); | ||
| 85 | rb.PushIpcInterface<ISession>(system); | ||
| 86 | } | ||
| 87 | |||
| 50 | } // namespace Service::PTM | 88 | } // namespace Service::PTM |
diff --git a/src/core/hle/service/ptm/ts.h b/src/core/hle/service/ptm/ts.h index c3f43d5a3..a10a91a64 100644 --- a/src/core/hle/service/ptm/ts.h +++ b/src/core/hle/service/ptm/ts.h | |||
| @@ -14,13 +14,9 @@ public: | |||
| 14 | ~TS() override; | 14 | ~TS() override; |
| 15 | 15 | ||
| 16 | private: | 16 | private: |
| 17 | enum class Location : u8 { | ||
| 18 | Internal, | ||
| 19 | External, | ||
| 20 | }; | ||
| 21 | |||
| 22 | void GetTemperature(HLERequestContext& ctx); | 17 | void GetTemperature(HLERequestContext& ctx); |
| 23 | void GetTemperatureMilliC(HLERequestContext& ctx); | 18 | void GetTemperatureMilliC(HLERequestContext& ctx); |
| 19 | void OpenSession(HLERequestContext& ctx); | ||
| 24 | }; | 20 | }; |
| 25 | 21 | ||
| 26 | } // namespace Service::PTM | 22 | } // namespace Service::PTM |