From abfebe5cc4d297f7dff160686decedc377079aa9 Mon Sep 17 00:00:00 2001 From: german77 Date: Sun, 10 Dec 2023 14:53:19 -0600 Subject: service: hid: Improve CreateAppletResource implementation and free resources --- src/core/hle/service/hid/resource_manager.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/core/hle/service/hid/resource_manager.h') diff --git a/src/core/hle/service/hid/resource_manager.h b/src/core/hle/service/hid/resource_manager.h index a78e2b729..15c1beb1a 100644 --- a/src/core/hle/service/hid/resource_manager.h +++ b/src/core/hle/service/hid/resource_manager.h @@ -66,10 +66,13 @@ public: Result CreateAppletResource(u64 aruid); + Result RegisterCoreAppletResource(); + Result UnregisterCoreAppletResource(); Result RegisterAppletResourceUserId(u64 aruid, bool bool_value); void UnregisterAppletResourceUserId(u64 aruid); Result GetSharedMemoryHandle(Kernel::KSharedMemory** out_handle, u64 aruid); + void FreeAppletResourceId(u64 aruid); void EnableInput(u64 aruid, bool is_enabled); void EnableSixAxisSensor(u64 aruid, bool is_enabled); @@ -82,6 +85,8 @@ public: void UpdateMotion(std::uintptr_t user_data, std::chrono::nanoseconds ns_late); private: + Result CreateAppletResourceImpl(u64 aruid); + bool is_initialized{false}; mutable std::mutex shared_mutex; @@ -121,7 +126,8 @@ private: class IAppletResource final : public ServiceFramework { public: - explicit IAppletResource(Core::System& system_, std::shared_ptr resource); + explicit IAppletResource(Core::System& system_, std::shared_ptr resource, + u64 applet_resource_user_id); ~IAppletResource() override; private: @@ -132,6 +138,7 @@ private: std::shared_ptr mouse_keyboard_update_event; std::shared_ptr motion_update_event; + u64 aruid; std::shared_ptr resource_manager; }; -- cgit v1.2.3