summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-10-30 19:12:52 +0200
committerNarr the Reg <juangerman-13@hotmail.com>2021-11-25 03:30:26 +0100
commit5f69fdbfccdf68ddb5bb22de32321fa352b22c0a (patch)
tree30e760b02a4be5def57075563c5bb684067538ef
parentinput_common: Fix GC adapter initialization (diff)
downloadyuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar.gz
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar.bz2
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar.lz
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar.xz
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.tar.zst
yuzu-5f69fdbfccdf68ddb5bb22de32321fa352b22c0a.zip
-rw-r--r--src/core/hid/emulated_controller.cpp38
-rw-r--r--src/core/hid/emulated_controller.h14
2 files changed, 28 insertions, 24 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 2b051ccaf..3c3fa16d6 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -88,8 +88,9 @@ void EmulatedController::ReloadFromSettings() {
ReloadInput();
}
void EmulatedController::LoadDevices() {
- const auto left_joycon = button_params[Settings::NativeButton::ZL];
- const auto right_joycon = button_params[Settings::NativeButton::ZR];
+ // TODO(german77): Use more buttons to detect the correct device
+ const auto left_joycon = button_params[Settings::NativeButton::A];
+ const auto right_joycon = button_params[Settings::NativeButton::DRight];
// Triggers for GC controllers
trigger_params[LeftIndex] = button_params[Settings::NativeButton::ZL];
@@ -142,6 +143,7 @@ void EmulatedController::LoadTASParams() {
param = common_params;
}
+ // TODO(german77): Replace this with an input profile or something better
tas_button_params[Settings::NativeButton::A].Set("button", 1 << 0);
tas_button_params[Settings::NativeButton::B].Set("button", 1 << 1);
tas_button_params[Settings::NativeButton::X].Set("button", 1 << 2);
@@ -271,24 +273,24 @@ void EmulatedController::UnloadInput() {
void EmulatedController::EnableConfiguration() {
is_configuring = true;
- temporary_is_connected = is_connected;
- temporary_npad_type = npad_type;
+ tmp_is_connected = is_connected;
+ tmp_npad_type = npad_type;
}
void EmulatedController::DisableConfiguration() {
is_configuring = false;
// Apply temporary npad type to the real controller
- if (temporary_npad_type != npad_type) {
+ if (tmp_npad_type != npad_type) {
if (is_connected) {
Disconnect();
}
- SetNpadType(temporary_npad_type);
+ SetNpadType(tmp_npad_type);
}
// Apply temporary connected status to the real controller
- if (temporary_is_connected != is_connected) {
- if (temporary_is_connected) {
+ if (tmp_is_connected != is_connected) {
+ if (tmp_is_connected) {
Connect();
return;
}
@@ -791,7 +793,7 @@ void EmulatedController::Connect() {
{
std::lock_guard lock{mutex};
if (is_configuring) {
- temporary_is_connected = true;
+ tmp_is_connected = true;
TriggerOnChange(ControllerTriggerType::Connected, false);
return;
}
@@ -808,7 +810,7 @@ void EmulatedController::Disconnect() {
{
std::lock_guard lock{mutex};
if (is_configuring) {
- temporary_is_connected = false;
+ tmp_is_connected = false;
TriggerOnChange(ControllerTriggerType::Disconnected, false);
return;
}
@@ -821,9 +823,9 @@ void EmulatedController::Disconnect() {
TriggerOnChange(ControllerTriggerType::Disconnected, true);
}
-bool EmulatedController::IsConnected(bool temporary) const {
- if (temporary) {
- return temporary_is_connected;
+bool EmulatedController::IsConnected(bool get_temporary_value) const {
+ if (get_temporary_value) {
+ return tmp_is_connected;
}
return is_connected;
}
@@ -838,9 +840,9 @@ NpadIdType EmulatedController::GetNpadIdType() const {
return npad_id_type;
}
-NpadType EmulatedController::GetNpadType(bool temporary) const {
- if (temporary) {
- return temporary_npad_type;
+NpadType EmulatedController::GetNpadType(bool get_temporary_value) const {
+ if (get_temporary_value) {
+ return tmp_npad_type;
}
return npad_type;
}
@@ -850,10 +852,10 @@ void EmulatedController::SetNpadType(NpadType npad_type_) {
std::lock_guard lock{mutex};
if (is_configuring) {
- if (temporary_npad_type == npad_type_) {
+ if (tmp_npad_type == npad_type_) {
return;
}
- temporary_npad_type = npad_type_;
+ tmp_npad_type = npad_type_;
TriggerOnChange(ControllerTriggerType::Type, false);
return;
}
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h
index eec51e34a..fea401365 100644
--- a/src/core/hid/emulated_controller.h
+++ b/src/core/hid/emulated_controller.h
@@ -149,10 +149,10 @@ public:
/**
* Gets the NpadType for this controller
- * @param Returns the temporary value if true
+ * @param If true tmp_npad_type will be returned
* @return NpadType set on the controller
*/
- NpadType GetNpadType(bool temporary = false) const;
+ NpadType GetNpadType(bool get_temporary_value = false) const;
/// Sets the connected status to true
void Connect();
@@ -162,10 +162,10 @@ public:
/**
* Is the emulated connected
- * @param Returns the temporary value if true
+ * @param If true tmp_is_connected will be returned
* @return true if the controller has the connected status
*/
- bool IsConnected(bool temporary = false) const;
+ bool IsConnected(bool get_temporary_value = false) const;
/// Returns true if vibration is enabled
bool IsVibrationEnabled() const;
@@ -346,12 +346,14 @@ private:
NpadIdType npad_id_type;
NpadType npad_type{NpadType::None};
- NpadType temporary_npad_type{NpadType::None};
bool is_connected{false};
- bool temporary_is_connected{false};
bool is_configuring{false};
f32 motion_sensitivity{0.01f};
+ // Temporary values to avoid doing changes while the controller is on configuration mode
+ NpadType tmp_npad_type{NpadType::None};
+ bool tmp_is_connected{false};
+
ButtonParams button_params;
StickParams stick_params;
ControllerMotionParams motion_params;