summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid
diff options
context:
space:
mode:
authorLiam <byteslice@airmail.cc>2023-02-18 22:26:48 +0100
committerLiam <byteslice@airmail.cc>2023-02-21 18:19:25 +0100
commita9369726147c7499e0016e183d5d56a7b44efe4b (patch)
treec1d1b4a9fdafd92863c0922b05d72c14de83ffa7 /src/core/hle/service/hid
parentcore: defer cpu shutdown (diff)
downloadyuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.gz
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.bz2
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.lz
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.xz
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.tar.zst
yuzu-a9369726147c7499e0016e183d5d56a7b44efe4b.zip
Diffstat (limited to 'src/core/hle/service/hid')
-rw-r--r--src/core/hle/service/hid/hid.cpp21
-rw-r--r--src/core/hle/service/hid/hid.h3
2 files changed, 14 insertions, 10 deletions
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index eb3c45a58..5ec31950a 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -18,6 +18,7 @@
#include "core/hle/service/hid/hidbus.h"
#include "core/hle/service/hid/irs.h"
#include "core/hle/service/hid/xcd.h"
+#include "core/hle/service/server_manager.h"
#include "core/memory.h"
#include "core/hle/service/hid/controllers/console_sixaxis.h"
@@ -2734,16 +2735,20 @@ private:
}
};
-void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system) {
- std::make_shared<Hid>(system)->InstallAsService(service_manager);
- std::make_shared<HidBus>(system)->InstallAsService(service_manager);
- std::make_shared<HidDbg>(system)->InstallAsService(service_manager);
- std::make_shared<HidSys>(system)->InstallAsService(service_manager);
+void LoopProcess(Core::System& system) {
+ auto server_manager = std::make_unique<ServerManager>(system);
- std::make_shared<Service::IRS::IRS>(system)->InstallAsService(service_manager);
- std::make_shared<Service::IRS::IRS_SYS>(system)->InstallAsService(service_manager);
+ server_manager->RegisterNamedService("hid", std::make_shared<Hid>(system));
+ server_manager->RegisterNamedService("hidbus", std::make_shared<HidBus>(system));
+ server_manager->RegisterNamedService("hid:dbg", std::make_shared<HidDbg>(system));
+ server_manager->RegisterNamedService("hid:sys", std::make_shared<HidSys>(system));
- std::make_shared<XCD_SYS>(system)->InstallAsService(service_manager);
+ server_manager->RegisterNamedService("irs", std::make_shared<Service::IRS::IRS>(system));
+ server_manager->RegisterNamedService("irs:sys",
+ std::make_shared<Service::IRS::IRS_SYS>(system));
+
+ server_manager->RegisterNamedService("xcd:sys", std::make_shared<XCD_SYS>(system));
+ system.RunServer(std::move(server_manager));
}
} // namespace Service::HID
diff --git a/src/core/hle/service/hid/hid.h b/src/core/hle/service/hid/hid.h
index b7c2a23ef..dc3c45aba 100644
--- a/src/core/hle/service/hid/hid.h
+++ b/src/core/hle/service/hid/hid.h
@@ -209,7 +209,6 @@ private:
KernelHelpers::ServiceContext service_context;
};
-/// Registers all HID services with the specified service manager.
-void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system);
+void LoopProcess(Core::System& system);
} // namespace Service::HID