forked from eden-emu/eden
		
	service: hid: Implement EnableAppletForInput
This commit is contained in:
		
							parent
							
								
									93a3342841
								
							
						
					
					
						commit
						1b984738ab
					
				
					 3 changed files with 17 additions and 2 deletions
				
			
		|  | @ -533,7 +533,7 @@ void IHidSystemServer::EnableAppletToGetInput(HLERequestContext& ctx) { | ||||||
|              parameters.is_enabled, parameters.applet_resource_user_id); |              parameters.is_enabled, parameters.applet_resource_user_id); | ||||||
| 
 | 
 | ||||||
|     GetResourceManager()->EnableInput(parameters.applet_resource_user_id, parameters.is_enabled); |     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}; |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|     rb.Push(ResultSuccess); |     rb.Push(ResultSuccess); | ||||||
|  | @ -596,7 +596,7 @@ void IHidSystemServer::EnableAppletToGetPadInput(HLERequestContext& ctx) { | ||||||
|              parameters.is_enabled, parameters.applet_resource_user_id); |              parameters.is_enabled, parameters.applet_resource_user_id); | ||||||
| 
 | 
 | ||||||
|     GetResourceManager()->EnablePadInput(parameters.applet_resource_user_id, parameters.is_enabled); |     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}; |     IPC::ResponseBuilder rb{ctx, 2}; | ||||||
|     rb.Push(ResultSuccess); |     rb.Push(ResultSuccess); | ||||||
|  |  | ||||||
|  | @ -480,6 +480,10 @@ void NPad::OnUpdate(const Core::Timing::CoreTiming& core_timing) { | ||||||
|                 continue; |                 continue; | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             if (!data->flag.enable_pad_input) { | ||||||
|  |                 continue; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|             RequestPadStateUpdate(aruid, controller.device->GetNpadIdType()); |             RequestPadStateUpdate(aruid, controller.device->GetNpadIdType()); | ||||||
|             auto& pad_state = controller.npad_pad_state; |             auto& pad_state = controller.npad_pad_state; | ||||||
|             auto& libnx_state = controller.npad_libnx_state; |             auto& libnx_state = controller.npad_libnx_state; | ||||||
|  | @ -1316,4 +1320,13 @@ void NPad::UpdateHandheldAbstractState() { | ||||||
|     abstracted_pads[NpadIdTypeToIndex(Core::HID::NpadIdType::Handheld)].Update(); |     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
 | } // namespace Service::HID
 | ||||||
|  |  | ||||||
|  | @ -153,6 +153,8 @@ public: | ||||||
| 
 | 
 | ||||||
|     void UpdateHandheldAbstractState(); |     void UpdateHandheldAbstractState(); | ||||||
| 
 | 
 | ||||||
|  |     void EnableAppletToGetInput(u64 aruid); | ||||||
|  | 
 | ||||||
| private: | private: | ||||||
|     struct NpadControllerData { |     struct NpadControllerData { | ||||||
|         NpadInternalState* shared_memory = nullptr; |         NpadInternalState* shared_memory = nullptr; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Narr the Reg
						Narr the Reg