summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2018-07-27 14:01:17 -0400
committerGravatar Lioncash2018-07-27 14:20:42 -0400
commitea8dd8b6505deddf0057203d73c9524b81d7af9f (patch)
tree454db21c398b52e933d92d76be7abf6be904f219
parentservice: Add the lbl service (diff)
downloadyuzu-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.cpp1
-rw-r--r--src/common/logging/log.h1
-rw-r--r--src/core/hle/service/lbl/lbl.cpp38
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
56private:
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
54void InstallInterfaces(SM::ServiceManager& sm) { 86void InstallInterfaces(SM::ServiceManager& sm) {