summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/hid.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-06-28 23:41:24 +0200
committerbunnei <bunneidev@gmail.com>2021-07-21 03:54:55 +0200
commit015058fadf8dbc72c186e833512e7189c625474b (patch)
treebc8839ef4b46c86283fda20cf95e4b0c6ab18e54 /src/core/hle/service/hid/hid.cpp
parenthle: kernel: Provide methods for tracking dangling kernel objects. (diff)
downloadyuzu-015058fadf8dbc72c186e833512e7189c625474b.tar
yuzu-015058fadf8dbc72c186e833512e7189c625474b.tar.gz
yuzu-015058fadf8dbc72c186e833512e7189c625474b.tar.bz2
yuzu-015058fadf8dbc72c186e833512e7189c625474b.tar.lz
yuzu-015058fadf8dbc72c186e833512e7189c625474b.tar.xz
yuzu-015058fadf8dbc72c186e833512e7189c625474b.tar.zst
yuzu-015058fadf8dbc72c186e833512e7189c625474b.zip
Diffstat (limited to 'src/core/hle/service/hid/hid.cpp')
-rw-r--r--src/core/hle/service/hid/hid.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index d68b023d0..b8b80570d 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -46,8 +46,9 @@ constexpr auto pad_update_ns = std::chrono::nanoseconds{1000 * 1000}; //
constexpr auto motion_update_ns = std::chrono::nanoseconds{15 * 1000 * 1000}; // (15ms, 66.666Hz)
constexpr std::size_t SHARED_MEMORY_SIZE = 0x40000;
-IAppletResource::IAppletResource(Core::System& system_)
- : ServiceFramework{system_, "IAppletResource"} {
+IAppletResource::IAppletResource(Core::System& system_,
+ KernelHelpers::ServiceContext& service_context_)
+ : ServiceFramework{system_, "IAppletResource"}, service_context{service_context_} {
static const FunctionInfo functions[] = {
{0, &IAppletResource::GetSharedMemoryHandle, "GetSharedMemoryHandle"},
};
@@ -63,7 +64,7 @@ IAppletResource::IAppletResource(Core::System& system_)
MakeController<Controller_Stubbed>(HidController::CaptureButton);
MakeController<Controller_Stubbed>(HidController::InputDetector);
MakeController<Controller_Stubbed>(HidController::UniquePad);
- MakeController<Controller_NPad>(HidController::NPad);
+ MakeControllerWithServiceContext<Controller_NPad>(HidController::NPad);
MakeController<Controller_Gesture>(HidController::Gesture);
MakeController<Controller_ConsoleSixAxis>(HidController::ConsoleSixAxisSensor);
@@ -191,13 +192,14 @@ private:
std::shared_ptr<IAppletResource> Hid::GetAppletResource() {
if (applet_resource == nullptr) {
- applet_resource = std::make_shared<IAppletResource>(system);
+ applet_resource = std::make_shared<IAppletResource>(system, service_context);
}
return applet_resource;
}
-Hid::Hid(Core::System& system_) : ServiceFramework{system_, "hid"} {
+Hid::Hid(Core::System& system_)
+ : ServiceFramework{system_, "hid"}, service_context{system_, service_name} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &Hid::CreateAppletResource, "CreateAppletResource"},
@@ -347,7 +349,7 @@ void Hid::CreateAppletResource(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_HID, "called, applet_resource_user_id={}", applet_resource_user_id);
if (applet_resource == nullptr) {
- applet_resource = std::make_shared<IAppletResource>(system);
+ applet_resource = std::make_shared<IAppletResource>(system, service_context);
}
IPC::ResponseBuilder rb{ctx, 2, 0, 1};