service: hid: Implement EnableAppletForInput
This commit is contained in:
parent
93a3342841
commit
1b984738ab
|
@ -533,7 +533,7 @@ void IHidSystemServer::EnableAppletToGetInput(HLERequestContext& ctx) {
|
|||
parameters.is_enabled, parameters.applet_resource_user_id);
|
||||
|
||||
GetResourceManager()->EnableInput(parameters.applet_resource_user_id, parameters.is_enabled);
|
||||
// GetResourceManager()->GetNpad()->EnableInput(parameters.applet_resource_user_id);
|
||||
GetResourceManager()->GetNpad()->EnableAppletToGetInput(parameters.applet_resource_user_id);
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(ResultSuccess);
|
||||
|
@ -596,7 +596,7 @@ void IHidSystemServer::EnableAppletToGetPadInput(HLERequestContext& ctx) {
|
|||
parameters.is_enabled, parameters.applet_resource_user_id);
|
||||
|
||||
GetResourceManager()->EnablePadInput(parameters.applet_resource_user_id, parameters.is_enabled);
|
||||
// GetResourceManager()->GetNpad()->EnableInput(parameters.applet_resource_user_id);
|
||||
GetResourceManager()->GetNpad()->EnableAppletToGetInput(parameters.applet_resource_user_id);
|
||||
|
||||
IPC::ResponseBuilder rb{ctx, 2};
|
||||
rb.Push(ResultSuccess);
|
||||
|
|
|
@ -480,6 +480,10 @@ void NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!data->flag.enable_pad_input) {
|
||||
continue;
|
||||
}
|
||||
|
||||
RequestPadStateUpdate(aruid, controller.device->GetNpadIdType());
|
||||
auto& pad_state = controller.npad_pad_state;
|
||||
auto& libnx_state = controller.npad_libnx_state;
|
||||
|
@ -1316,4 +1320,13 @@ void NPad::UpdateHandheldAbstractState() {
|
|||
abstracted_pads[NpadIdTypeToIndex(Core::HID::NpadIdType::Handheld)].Update();
|
||||
}
|
||||
|
||||
void NPad::EnableAppletToGetInput(u64 aruid) {
|
||||
std::scoped_lock lock{mutex};
|
||||
std::scoped_lock shared_lock{*applet_resource_holder.shared_mutex};
|
||||
|
||||
for (auto& abstract_pad : abstracted_pads) {
|
||||
abstract_pad.EnableAppletToGetInput(aruid);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Service::HID
|
||||
|
|
|
@ -153,6 +153,8 @@ public:
|
|||
|
||||
void UpdateHandheldAbstractState();
|
||||
|
||||
void EnableAppletToGetInput(u64 aruid);
|
||||
|
||||
private:
|
||||
struct NpadControllerData {
|
||||
NpadInternalState* shared_memory = nullptr;
|
||||
|
|
Reference in New Issue