service: hid: Implement GetLastActiveNpad
This commit is contained in:
		@@ -275,11 +275,14 @@ void IHidSystemServer::DisableAssigningSingleOnSlSrPress(HLERequestContext& ctx)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IHidSystemServer::GetLastActiveNpad(HLERequestContext& ctx) {
 | 
			
		||||
    LOG_DEBUG(Service_HID, "(STUBBED) called"); // Spams a lot when controller applet is running
 | 
			
		||||
    Core::HID::NpadIdType npad_id{};
 | 
			
		||||
    const Result result = GetResourceManager()->GetNpad()->GetLastActiveNpad(npad_id);
 | 
			
		||||
 | 
			
		||||
    LOG_DEBUG(Service_HID, "called, npad_id={}", npad_id);
 | 
			
		||||
 | 
			
		||||
    IPC::ResponseBuilder rb{ctx, 3};
 | 
			
		||||
    rb.Push(ResultSuccess);
 | 
			
		||||
    rb.Push(0); // Dont forget to fix this
 | 
			
		||||
    rb.Push(result);
 | 
			
		||||
    rb.PushEnum(npad_id);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void IHidSystemServer::ApplyNpadSystemCommonPolicyFull(HLERequestContext& ctx) {
 | 
			
		||||
 
 | 
			
		||||
@@ -1378,4 +1378,10 @@ Result NPad::AssigningSingleOnSlSrPress(u64 aruid, bool is_enabled) {
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Result NPad::GetLastActiveNpad(Core::HID::NpadIdType& out_npad_id) const {
 | 
			
		||||
    std::scoped_lock lock{mutex};
 | 
			
		||||
    out_npad_id = hid_core.GetLastActiveController();
 | 
			
		||||
    return ResultSuccess;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
} // namespace Service::HID
 | 
			
		||||
 
 | 
			
		||||
@@ -159,6 +159,8 @@ public:
 | 
			
		||||
 | 
			
		||||
    Result AssigningSingleOnSlSrPress(u64 aruid, bool is_enabled);
 | 
			
		||||
 | 
			
		||||
    Result GetLastActiveNpad(Core::HID::NpadIdType& out_npad_id) const;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    struct VibrationData {
 | 
			
		||||
        bool device_mounted{};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user