Просмотр исходного кода

service: Add the lbl service

Adds the skeleton of the lbl service based off the information provided
by Switch Brew.
Lioncash 8 лет назад
Родитель
Сommit
c2c543e8f7

+ 2 - 0
src/core/CMakeLists.txt

@@ -164,6 +164,8 @@ add_library(core STATIC
     hle/service/hid/irs.h
     hle/service/hid/xcd.cpp
     hle/service/hid/xcd.h
+    hle/service/lbl/lbl.cpp
+    hle/service/lbl/lbl.h
     hle/service/ldn/ldn.cpp
     hle/service/ldn/ldn.h
     hle/service/ldr/ldr.cpp

+ 58 - 0
src/core/hle/service/lbl/lbl.cpp

@@ -0,0 +1,58 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <memory>
+
+#include "core/hle/service/lbl/lbl.h"
+#include "core/hle/service/service.h"
+#include "core/hle/service/sm/sm.h"
+
+namespace Service::LBL {
+
+class LBL final : public ServiceFramework<LBL> {
+public:
+    explicit LBL() : ServiceFramework{"lbl"} {
+        // clang-format off
+        static const FunctionInfo functions[] = {
+            {0, nullptr, "Unknown1"},
+            {1, nullptr, "Unknown2"},
+            {2, nullptr, "Unknown3"},
+            {3, nullptr, "Unknown4"},
+            {4, nullptr, "Unknown5"},
+            {5, nullptr, "Unknown6"},
+            {6, nullptr, "TurnOffBacklight"},
+            {7, nullptr, "TurnOnBacklight"},
+            {8, nullptr, "GetBacklightStatus"},
+            {9, nullptr, "Unknown7"},
+            {10, nullptr, "Unknown8"},
+            {11, nullptr, "Unknown9"},
+            {12, nullptr, "Unknown10"},
+            {13, nullptr, "Unknown11"},
+            {14, nullptr, "Unknown12"},
+            {15, nullptr, "Unknown13"},
+            {16, nullptr, "ReadRawLightSensor"},
+            {17, nullptr, "Unknown14"},
+            {18, nullptr, "Unknown15"},
+            {19, nullptr, "Unknown16"},
+            {20, nullptr, "Unknown17"},
+            {21, nullptr, "Unknown18"},
+            {22, nullptr, "Unknown19"},
+            {23, nullptr, "Unknown20"},
+            {24, nullptr, "Unknown21"},
+            {25, nullptr, "Unknown22"},
+            {26, nullptr, "EnableVrMode"},
+            {27, nullptr, "DisableVrMode"},
+            {28, nullptr, "GetVrMode"},
+        };
+        // clang-format on
+
+        RegisterHandlers(functions);
+    }
+};
+
+void InstallInterfaces(SM::ServiceManager& sm) {
+    std::make_shared<LBL>()->InstallAsService(sm);
+}
+
+} // namespace Service::LBL

+ 15 - 0
src/core/hle/service/lbl/lbl.h

@@ -0,0 +1,15 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+namespace Service::SM {
+class ServiceManager;
+}
+
+namespace Service::LBL {
+
+void InstallInterfaces(SM::ServiceManager& sm);
+
+} // namespace Service::LBL

+ 2 - 0
src/core/hle/service/service.cpp

@@ -29,6 +29,7 @@
 #include "core/hle/service/friend/friend.h"
 #include "core/hle/service/grc/grc.h"
 #include "core/hle/service/hid/hid.h"
+#include "core/hle/service/lbl/lbl.h"
 #include "core/hle/service/ldn/ldn.h"
 #include "core/hle/service/ldr/ldr.h"
 #include "core/hle/service/lm/lm.h"
@@ -203,6 +204,7 @@ void Init(std::shared_ptr<SM::ServiceManager>& sm) {
     Friend::InstallInterfaces(*sm);
     GRC::InstallInterfaces(*sm);
     HID::InstallInterfaces(*sm);
+    LBL::InstallInterfaces(*sm);
     LDN::InstallInterfaces(*sm);
     LDR::InstallInterfaces(*sm);
     LM::InstallInterfaces(*sm);