diff options
| author | 2018-07-27 14:01:17 -0400 | |
|---|---|---|
| committer | 2018-07-27 14:20:42 -0400 | |
| commit | ea8dd8b6505deddf0057203d73c9524b81d7af9f (patch) | |
| tree | 454db21c398b52e933d92d76be7abf6be904f219 | |
| parent | service: Add the lbl service (diff) | |
| download | yuzu-ea8dd8b6505deddf0057203d73c9524b81d7af9f.tar.gz yuzu-ea8dd8b6505deddf0057203d73c9524b81d7af9f.tar.xz yuzu-ea8dd8b6505deddf0057203d73c9524b81d7af9f.zip | |
service/lbl: Implement EnableVrMode, DisableVrMode and GetVrMode
Implements these functions according to the information available on
Switch Brew.
Diffstat (limited to '')
| -rw-r--r-- | src/common/logging/backend.cpp | 1 | ||||
| -rw-r--r-- | src/common/logging/log.h | 1 | ||||
| -rw-r--r-- | src/core/hle/service/lbl/lbl.cpp | 38 |
3 files changed, 37 insertions, 3 deletions
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp index ad9edbcdf..db3ee0837 100644 --- a/src/common/logging/backend.cpp +++ b/src/common/logging/backend.cpp | |||
| @@ -173,6 +173,7 @@ void FileBackend::Write(const Entry& entry) { | |||
| 173 | SUB(Service, Friend) \ | 173 | SUB(Service, Friend) \ |
| 174 | SUB(Service, FS) \ | 174 | SUB(Service, FS) \ |
| 175 | SUB(Service, HID) \ | 175 | SUB(Service, HID) \ |
| 176 | SUB(Service, LBL) \ | ||
| 176 | SUB(Service, LDN) \ | 177 | SUB(Service, LDN) \ |
| 177 | SUB(Service, LM) \ | 178 | SUB(Service, LM) \ |
| 178 | SUB(Service, MM) \ | 179 | SUB(Service, MM) \ |
diff --git a/src/common/logging/log.h b/src/common/logging/log.h index ad3cbf5d1..d22cb2966 100644 --- a/src/common/logging/log.h +++ b/src/common/logging/log.h | |||
| @@ -60,6 +60,7 @@ enum class Class : ClassType { | |||
| 60 | Service_Friend, ///< The friend service | 60 | Service_Friend, ///< The friend service |
| 61 | Service_FS, ///< The FS (Filesystem) service | 61 | Service_FS, ///< The FS (Filesystem) service |
| 62 | Service_HID, ///< The HID (Human interface device) service | 62 | Service_HID, ///< The HID (Human interface device) service |
| 63 | Service_LBL, ///< The LBL (LCD backlight) service | ||
| 63 | Service_LDN, ///< The LDN (Local domain network) service | 64 | Service_LDN, ///< The LDN (Local domain network) service |
| 64 | Service_LM, ///< The LM (Logger) service | 65 | Service_LM, ///< The LM (Logger) service |
| 65 | Service_MM, ///< The MM (Multimedia) service | 66 | Service_MM, ///< The MM (Multimedia) service |
diff --git a/src/core/hle/service/lbl/lbl.cpp b/src/core/hle/service/lbl/lbl.cpp index 435911b0a..8fc8b1057 100644 --- a/src/core/hle/service/lbl/lbl.cpp +++ b/src/core/hle/service/lbl/lbl.cpp | |||
| @@ -4,6 +4,9 @@ | |||
| 4 | 4 | ||
| 5 | #include <memory> | 5 | #include <memory> |
| 6 | 6 | ||
| 7 | #include "common/logging/log.h" | ||
| 8 | #include "core/hle/ipc_helpers.h" | ||
| 9 | #include "core/hle/kernel/hle_ipc.h" | ||
| 7 | #include "core/hle/service/lbl/lbl.h" | 10 | #include "core/hle/service/lbl/lbl.h" |
| 8 | #include "core/hle/service/service.h" | 11 | #include "core/hle/service/service.h" |
| 9 | #include "core/hle/service/sm/sm.h" | 12 | #include "core/hle/service/sm/sm.h" |
| @@ -41,14 +44,43 @@ public: | |||
| 41 | {23, nullptr, "Unknown20"}, | 44 | {23, nullptr, "Unknown20"}, |
| 42 | {24, nullptr, "Unknown21"}, | 45 | {24, nullptr, "Unknown21"}, |
| 43 | {25, nullptr, "Unknown22"}, | 46 | {25, nullptr, "Unknown22"}, |
| 44 | {26, nullptr, "EnableVrMode"}, | 47 | {26, &LBL::EnableVrMode, "EnableVrMode"}, |
| 45 | {27, nullptr, "DisableVrMode"}, | 48 | {27, &LBL::DisableVrMode, "DisableVrMode"}, |
| 46 | {28, nullptr, "GetVrMode"}, | 49 | {28, &LBL::GetVrMode, "GetVrMode"}, |
| 47 | }; | 50 | }; |
| 48 | // clang-format on | 51 | // clang-format on |
| 49 | 52 | ||
| 50 | RegisterHandlers(functions); | 53 | RegisterHandlers(functions); |
| 51 | } | 54 | } |
| 55 | |||
| 56 | private: | ||
| 57 | void EnableVrMode(Kernel::HLERequestContext& ctx) { | ||
| 58 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 59 | rb.Push(RESULT_SUCCESS); | ||
| 60 | |||
| 61 | vr_mode_enabled = true; | ||
| 62 | |||
| 63 | LOG_DEBUG(Service_LBL, "called"); | ||
| 64 | } | ||
| 65 | |||
| 66 | void DisableVrMode(Kernel::HLERequestContext& ctx) { | ||
| 67 | IPC::ResponseBuilder rb{ctx, 2}; | ||
| 68 | rb.Push(RESULT_SUCCESS); | ||
| 69 | |||
| 70 | vr_mode_enabled = false; | ||
| 71 | |||
| 72 | LOG_DEBUG(Service_LBL, "called"); | ||
| 73 | } | ||
| 74 | |||
| 75 | void GetVrMode(Kernel::HLERequestContext& ctx) { | ||
| 76 | IPC::ResponseBuilder rb{ctx, 3}; | ||
| 77 | rb.Push(RESULT_SUCCESS); | ||
| 78 | rb.Push(vr_mode_enabled); | ||
| 79 | |||
| 80 | LOG_DEBUG(Service_LBL, "called"); | ||
| 81 | } | ||
| 82 | |||
| 83 | bool vr_mode_enabled = false; | ||
| 52 | }; | 84 | }; |
| 53 | 85 | ||
| 54 | void InstallInterfaces(SM::ServiceManager& sm) { | 86 | void InstallInterfaces(SM::ServiceManager& sm) { |