summaryrefslogtreecommitdiffstats
path: root/src/core/hid
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-10-21 20:56:52 +0200
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-25 03:30:25 +0100
commitb5e72de753ae4de5c5fae7087abb00dc4242451d (patch)
treeac1f2b56814bbaaa1a5432c4e1d79c12dd16296d /src/core/hid
parentservice/hid: Use ring buffer for gestures (diff)
downloadyuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar.gz
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar.bz2
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar.lz
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar.xz
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.tar.zst
yuzu-b5e72de753ae4de5c5fae7087abb00dc4242451d.zip
Diffstat (limited to 'src/core/hid')
-rw-r--r--src/core/hid/emulated_console.cpp2
-rw-r--r--src/core/hid/emulated_controller.cpp12
-rw-r--r--src/core/hid/emulated_controller.h1
-rw-r--r--src/core/hid/hid_core.cpp4
-rw-r--r--src/core/hid/hid_core.h3
5 files changed, 14 insertions, 8 deletions
diff --git a/src/core/hid/emulated_console.cpp b/src/core/hid/emulated_console.cpp
index e82cf5990..540fd107b 100644
--- a/src/core/hid/emulated_console.cpp
+++ b/src/core/hid/emulated_console.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included
-#include <fmt/format.h>
-
#include "core/hid/emulated_console.h"
#include "core/hid/input_converter.h"
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 1ff3022c5..d59758e99 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included
-#include <fmt/format.h>
-
#include "core/hid/emulated_controller.h"
#include "core/hid/input_converter.h"
@@ -635,6 +633,9 @@ void EmulatedController::SetBattery(Input::CallbackStatus callback, std::size_t
}
bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue vibration) {
+ if (device_index >= output_devices.size()) {
+ return false;
+ }
if (!output_devices[device_index]) {
return false;
}
@@ -659,6 +660,9 @@ bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue v
}
bool EmulatedController::TestVibration(std::size_t device_index) {
+ if (device_index >= output_devices.size()) {
+ return false;
+ }
if (!output_devices[device_index]) {
return false;
}
@@ -733,7 +737,9 @@ bool EmulatedController::IsConnected(bool temporary) const {
}
bool EmulatedController::IsVibrationEnabled() const {
- return is_vibration_enabled;
+ const auto player_index = NpadIdTypeToIndex(npad_id_type);
+ const auto& player = Settings::values.players.GetValue()[player_index];
+ return player.vibration_enabled;
}
NpadIdType EmulatedController::GetNpadIdType() const {
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h
index f3ee70726..50f21ccd9 100644
--- a/src/core/hid/emulated_controller.h
+++ b/src/core/hid/emulated_controller.h
@@ -337,7 +337,6 @@ private:
bool is_connected{false};
bool temporary_is_connected{false};
bool is_configuring{false};
- bool is_vibration_enabled{true};
f32 motion_sensitivity{0.01f};
ButtonParams button_params;
diff --git a/src/core/hid/hid_core.cpp b/src/core/hid/hid_core.cpp
index bd17081bd..cc1b3c295 100644
--- a/src/core/hid/hid_core.cpp
+++ b/src/core/hid/hid_core.cpp
@@ -113,7 +113,7 @@ NpadStyleTag HIDCore::GetSupportedStyleTag() const {
s8 HIDCore::GetPlayerCount() const {
s8 active_players = 0;
- for (std::size_t player_index = 0; player_index < 8; player_index++) {
+ for (std::size_t player_index = 0; player_index < available_controllers -2; player_index++) {
const auto* controller = GetEmulatedControllerByIndex(player_index);
if (controller->IsConnected()) {
active_players++;
@@ -123,7 +123,7 @@ s8 HIDCore::GetPlayerCount() const {
}
NpadIdType HIDCore::GetFirstNpadId() const {
- for (std::size_t player_index = 0; player_index < 10; player_index++) {
+ for (std::size_t player_index = 0; player_index < available_controllers; player_index++) {
const auto* controller = GetEmulatedControllerByIndex(player_index);
if (controller->IsConnected()) {
return controller->GetNpadIdType();
diff --git a/src/core/hid/hid_core.h b/src/core/hid/hid_core.h
index 196466a72..a4a66a3a4 100644
--- a/src/core/hid/hid_core.h
+++ b/src/core/hid/hid_core.h
@@ -47,6 +47,9 @@ public:
/// Removes all callbacks from input common
void UnloadInputDevices();
+ /// Number of emulated controllers
+ const std::size_t available_controllers{10};
+
private:
std::unique_ptr<EmulatedController> player_1;
std::unique_ptr<EmulatedController> player_2;