core/hid: Explain better what a temporary value does
This commit is contained in:
		| @@ -88,8 +88,9 @@ void EmulatedController::ReloadFromSettings() { | |||||||
|     ReloadInput(); |     ReloadInput(); | ||||||
| } | } | ||||||
| void EmulatedController::LoadDevices() { | void EmulatedController::LoadDevices() { | ||||||
|     const auto left_joycon = button_params[Settings::NativeButton::ZL]; |     // TODO(german77): Use more buttons to detect the correct device | ||||||
|     const auto right_joycon = button_params[Settings::NativeButton::ZR]; |     const auto left_joycon = button_params[Settings::NativeButton::A]; | ||||||
|  |     const auto right_joycon = button_params[Settings::NativeButton::DRight]; | ||||||
|  |  | ||||||
|     // Triggers for GC controllers |     // Triggers for GC controllers | ||||||
|     trigger_params[LeftIndex] = button_params[Settings::NativeButton::ZL]; |     trigger_params[LeftIndex] = button_params[Settings::NativeButton::ZL]; | ||||||
| @@ -142,6 +143,7 @@ void EmulatedController::LoadTASParams() { | |||||||
|         param = common_params; |         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::A].Set("button", 1 << 0); | ||||||
|     tas_button_params[Settings::NativeButton::B].Set("button", 1 << 1); |     tas_button_params[Settings::NativeButton::B].Set("button", 1 << 1); | ||||||
|     tas_button_params[Settings::NativeButton::X].Set("button", 1 << 2); |     tas_button_params[Settings::NativeButton::X].Set("button", 1 << 2); | ||||||
| @@ -271,24 +273,24 @@ void EmulatedController::UnloadInput() { | |||||||
|  |  | ||||||
| void EmulatedController::EnableConfiguration() { | void EmulatedController::EnableConfiguration() { | ||||||
|     is_configuring = true; |     is_configuring = true; | ||||||
|     temporary_is_connected = is_connected; |     tmp_is_connected = is_connected; | ||||||
|     temporary_npad_type = npad_type; |     tmp_npad_type = npad_type; | ||||||
| } | } | ||||||
|  |  | ||||||
| void EmulatedController::DisableConfiguration() { | void EmulatedController::DisableConfiguration() { | ||||||
|     is_configuring = false; |     is_configuring = false; | ||||||
|  |  | ||||||
|     // Apply temporary npad type to the real controller |     // Apply temporary npad type to the real controller | ||||||
|     if (temporary_npad_type != npad_type) { |     if (tmp_npad_type != npad_type) { | ||||||
|         if (is_connected) { |         if (is_connected) { | ||||||
|             Disconnect(); |             Disconnect(); | ||||||
|         } |         } | ||||||
|         SetNpadType(temporary_npad_type); |         SetNpadType(tmp_npad_type); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // Apply temporary connected status to the real controller |     // Apply temporary connected status to the real controller | ||||||
|     if (temporary_is_connected != is_connected) { |     if (tmp_is_connected != is_connected) { | ||||||
|         if (temporary_is_connected) { |         if (tmp_is_connected) { | ||||||
|             Connect(); |             Connect(); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| @@ -791,7 +793,7 @@ void EmulatedController::Connect() { | |||||||
|     { |     { | ||||||
|         std::lock_guard lock{mutex}; |         std::lock_guard lock{mutex}; | ||||||
|         if (is_configuring) { |         if (is_configuring) { | ||||||
|             temporary_is_connected = true; |             tmp_is_connected = true; | ||||||
|             TriggerOnChange(ControllerTriggerType::Connected, false); |             TriggerOnChange(ControllerTriggerType::Connected, false); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| @@ -808,7 +810,7 @@ void EmulatedController::Disconnect() { | |||||||
|     { |     { | ||||||
|         std::lock_guard lock{mutex}; |         std::lock_guard lock{mutex}; | ||||||
|         if (is_configuring) { |         if (is_configuring) { | ||||||
|             temporary_is_connected = false; |             tmp_is_connected = false; | ||||||
|             TriggerOnChange(ControllerTriggerType::Disconnected, false); |             TriggerOnChange(ControllerTriggerType::Disconnected, false); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| @@ -821,9 +823,9 @@ void EmulatedController::Disconnect() { | |||||||
|     TriggerOnChange(ControllerTriggerType::Disconnected, true); |     TriggerOnChange(ControllerTriggerType::Disconnected, true); | ||||||
| } | } | ||||||
|  |  | ||||||
| bool EmulatedController::IsConnected(bool temporary) const { | bool EmulatedController::IsConnected(bool get_temporary_value) const { | ||||||
|     if (temporary) { |     if (get_temporary_value) { | ||||||
|         return temporary_is_connected; |         return tmp_is_connected; | ||||||
|     } |     } | ||||||
|     return is_connected; |     return is_connected; | ||||||
| } | } | ||||||
| @@ -838,9 +840,9 @@ NpadIdType EmulatedController::GetNpadIdType() const { | |||||||
|     return npad_id_type; |     return npad_id_type; | ||||||
| } | } | ||||||
|  |  | ||||||
| NpadType EmulatedController::GetNpadType(bool temporary) const { | NpadType EmulatedController::GetNpadType(bool get_temporary_value) const { | ||||||
|     if (temporary) { |     if (get_temporary_value) { | ||||||
|         return temporary_npad_type; |         return tmp_npad_type; | ||||||
|     } |     } | ||||||
|     return npad_type; |     return npad_type; | ||||||
| } | } | ||||||
| @@ -850,10 +852,10 @@ void EmulatedController::SetNpadType(NpadType npad_type_) { | |||||||
|         std::lock_guard lock{mutex}; |         std::lock_guard lock{mutex}; | ||||||
|  |  | ||||||
|         if (is_configuring) { |         if (is_configuring) { | ||||||
|             if (temporary_npad_type == npad_type_) { |             if (tmp_npad_type == npad_type_) { | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             temporary_npad_type = npad_type_; |             tmp_npad_type = npad_type_; | ||||||
|             TriggerOnChange(ControllerTriggerType::Type, false); |             TriggerOnChange(ControllerTriggerType::Type, false); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -149,10 +149,10 @@ public: | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Gets the NpadType for this controller |      * 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 |      * @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 |     /// Sets the connected status to true | ||||||
|     void Connect(); |     void Connect(); | ||||||
| @@ -162,10 +162,10 @@ public: | |||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * Is the emulated connected |      * 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 |      * @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 |     /// Returns true if vibration is enabled | ||||||
|     bool IsVibrationEnabled() const; |     bool IsVibrationEnabled() const; | ||||||
| @@ -346,12 +346,14 @@ private: | |||||||
|  |  | ||||||
|     NpadIdType npad_id_type; |     NpadIdType npad_id_type; | ||||||
|     NpadType npad_type{NpadType::None}; |     NpadType npad_type{NpadType::None}; | ||||||
|     NpadType temporary_npad_type{NpadType::None}; |  | ||||||
|     bool is_connected{false}; |     bool is_connected{false}; | ||||||
|     bool temporary_is_connected{false}; |  | ||||||
|     bool is_configuring{false}; |     bool is_configuring{false}; | ||||||
|     f32 motion_sensitivity{0.01f}; |     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; |     ButtonParams button_params; | ||||||
|     StickParams stick_params; |     StickParams stick_params; | ||||||
|     ControllerMotionParams motion_params; |     ControllerMotionParams motion_params; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user