summaryrefslogtreecommitdiffstats
path: root/src/hid_core/frontend/emulated_controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hid_core/frontend/emulated_controller.cpp')
-rw-r--r--src/hid_core/frontend/emulated_controller.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/hid_core/frontend/emulated_controller.cpp b/src/hid_core/frontend/emulated_controller.cpp
index 819460eb5..d9d278fa3 100644
--- a/src/hid_core/frontend/emulated_controller.cpp
+++ b/src/hid_core/frontend/emulated_controller.cpp
@@ -174,18 +174,25 @@ void EmulatedController::LoadDevices() {
// Only map virtual devices to the first controller
if (npad_id_type == NpadIdType::Player1 || npad_id_type == NpadIdType::Handheld) {
camera_params[1] = Common::ParamPackage{"engine:camera,camera:1"};
- ring_params[1] = Common::ParamPackage{"engine:joycon,axis_x:100,axis_y:101"};
nfc_params[0] = Common::ParamPackage{"engine:virtual_amiibo,nfc:1"};
+#ifdef HAVE_LIBUSB
+ ring_params[1] = Common::ParamPackage{"engine:joycon,axis_x:100,axis_y:101"};
+#endif
+#ifdef ANDROID
+ android_params = Common::ParamPackage{"engine:android,port:100"};
+#endif
}
output_params[LeftIndex] = left_joycon;
output_params[RightIndex] = right_joycon;
output_params[2] = camera_params[1];
output_params[3] = nfc_params[0];
+ output_params[4] = android_params;
output_params[LeftIndex].Set("output", true);
output_params[RightIndex].Set("output", true);
output_params[2].Set("output", true);
output_params[3].Set("output", true);
+ output_params[4].Set("output", true);
LoadTASParams();
LoadVirtualGamepadParams();
@@ -578,6 +585,9 @@ void EmulatedController::DisableConfiguration() {
// Get Joycon colors before turning on the controller
for (const auto& color_device : color_devices) {
+ if (color_device == nullptr) {
+ continue;
+ }
color_device->ForceUpdate();
}
@@ -1277,6 +1287,10 @@ bool EmulatedController::SetVibration(DeviceIndex device_index, const VibrationV
.high_frequency = vibration.high_frequency,
.type = type,
};
+
+ // Send vibrations to Android's input overlay
+ output_devices[4]->SetVibration(status);
+
return output_devices[index]->SetVibration(status) == Common::Input::DriverResult::Success;
}