aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/hid/controllers/npad.cpp
diff options
context:
space:
mode:
authorNarr the Reg <juangerman-13@hotmail.com>2023-01-13 13:39:33 -0600
committerNarr the Reg <juangerman-13@hotmail.com>2023-01-19 18:05:23 -0600
commit000a5852ee4014eae0b1c2f34bab84a474db4756 (patch)
treec104ff9a8a48cf29fd3dc67c84f5af71224744f7 /src/core/hle/service/hid/controllers/npad.cpp
parent21a62d47522b7f58ec4644cdb73456f113daff1f (diff)
core: hid: Only set the polling mode to the correct side
Diffstat (limited to 'src/core/hle/service/hid/controllers/npad.cpp')
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index fe5bf94d27..5713f12888 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -337,7 +337,19 @@ void Controller_NPad::InitNewlyAddedController(Core::HID::NpadIdType npad_id) {
controller.is_connected = true;
controller.device->Connect();
controller.device->SetLedPattern();
- controller.device->SetPollingMode(Common::Input::PollingMode::Active);
+ if (controller_type == Core::HID::NpadStyleIndex::JoyconDual) {
+ if (controller.is_dual_left_connected) {
+ controller.device->SetPollingMode(Core::HID::EmulatedDeviceIndex::LeftIndex,
+ Common::Input::PollingMode::Active);
+ }
+ if (controller.is_dual_right_connected) {
+ controller.device->SetPollingMode(Core::HID::EmulatedDeviceIndex::RightIndex,
+ Common::Input::PollingMode::Active);
+ }
+ } else {
+ controller.device->SetPollingMode(Core::HID::EmulatedDeviceIndex::AllDevices,
+ Common::Input::PollingMode::Active);
+ }
SignalStyleSetChangedEvent(npad_id);
WriteEmptyEntry(controller.shared_memory);
}