Browse Source

service: hid: Implement GetLastActiveNpad

nce_cpp
german77 2 years ago
committed by Narr the Reg
parent
commit
94693e5e4b
  1. 9
      src/core/hle/service/hid/hid_system_server.cpp
  2. 6
      src/hid_core/resources/npad/npad.cpp
  3. 2
      src/hid_core/resources/npad/npad.h

9
src/core/hle/service/hid/hid_system_server.cpp

@ -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) {

6
src/hid_core/resources/npad/npad.cpp

@ -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

2
src/hid_core/resources/npad/npad.h

@ -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{};

Loading…
Cancel
Save