diff options
| author | 2023-02-26 14:39:13 -0600 | |
|---|---|---|
| committer | 2023-02-26 14:39:13 -0600 | |
| commit | ff11fdb07e7264f21b45e23b852bc1c51c870f5c (patch) | |
| tree | 0be3e8dfec5f9df92c38e3bba7b632751ad57379 /src/core/hid | |
| parent | Merge pull request #9849 from ameerj/async-astc (diff) | |
| download | yuzu-ff11fdb07e7264f21b45e23b852bc1c51c870f5c.tar.gz yuzu-ff11fdb07e7264f21b45e23b852bc1c51c870f5c.tar.xz yuzu-ff11fdb07e7264f21b45e23b852bc1c51c870f5c.zip | |
Revert "yuzu: config: Remove player 8 and 9 from config file"
Diffstat (limited to 'src/core/hid')
| -rw-r--r-- | src/core/hid/emulated_controller.cpp | 78 | ||||
| -rw-r--r-- | src/core/hid/emulated_controller.h | 7 | ||||
| -rw-r--r-- | src/core/hid/hid_types.h | 26 |
3 files changed, 13 insertions, 98 deletions
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp index 9f0ceca49..a29c9a6f8 100644 --- a/src/core/hid/emulated_controller.cpp +++ b/src/core/hid/emulated_controller.cpp | |||
| @@ -82,12 +82,7 @@ Settings::ControllerType EmulatedController::MapNPadToSettingsType(NpadStyleInde | |||
| 82 | } | 82 | } |
| 83 | 83 | ||
| 84 | void EmulatedController::ReloadFromSettings() { | 84 | void EmulatedController::ReloadFromSettings() { |
| 85 | if (npad_id_type == NpadIdType::Other) { | 85 | const auto player_index = NpadIdTypeToIndex(npad_id_type); |
| 86 | ReloadDebugPadFromSettings(); | ||
| 87 | return; | ||
| 88 | } | ||
| 89 | |||
| 90 | const auto player_index = NpadIdTypeToConfigIndex(npad_id_type); | ||
| 91 | const auto& player = Settings::values.players.GetValue()[player_index]; | 86 | const auto& player = Settings::values.players.GetValue()[player_index]; |
| 92 | 87 | ||
| 93 | for (std::size_t index = 0; index < player.buttons.size(); ++index) { | 88 | for (std::size_t index = 0; index < player.buttons.size(); ++index) { |
| @@ -116,21 +111,13 @@ void EmulatedController::ReloadFromSettings() { | |||
| 116 | 111 | ||
| 117 | ring_params[0] = Common::ParamPackage(Settings::values.ringcon_analogs); | 112 | ring_params[0] = Common::ParamPackage(Settings::values.ringcon_analogs); |
| 118 | 113 | ||
| 119 | SetNpadStyleIndex(MapSettingsTypeToNPad(player.controller_type)); | 114 | // Other or debug controller should always be a pro controller |
| 120 | original_npad_type = npad_type; | 115 | if (npad_id_type != NpadIdType::Other) { |
| 121 | 116 | SetNpadStyleIndex(MapSettingsTypeToNPad(player.controller_type)); | |
| 122 | // Player 1 shares config with handheld. Disable controller when handheld is selected | 117 | original_npad_type = npad_type; |
| 123 | if (npad_id_type == NpadIdType::Player1 && npad_type == NpadStyleIndex::Handheld) { | 118 | } else { |
| 124 | Disconnect(); | 119 | SetNpadStyleIndex(NpadStyleIndex::ProController); |
| 125 | ReloadInput(); | 120 | original_npad_type = npad_type; |
| 126 | return; | ||
| 127 | } | ||
| 128 | |||
| 129 | // Handheld shares config with player 1. Disable controller when handheld isn't selected | ||
| 130 | if (npad_id_type == NpadIdType::Handheld && npad_type != NpadStyleIndex::Handheld) { | ||
| 131 | Disconnect(); | ||
| 132 | ReloadInput(); | ||
| 133 | return; | ||
| 134 | } | 121 | } |
| 135 | 122 | ||
| 136 | Disconnect(); | 123 | Disconnect(); |
| @@ -141,33 +128,6 @@ void EmulatedController::ReloadFromSettings() { | |||
| 141 | ReloadInput(); | 128 | ReloadInput(); |
| 142 | } | 129 | } |
| 143 | 130 | ||
| 144 | void EmulatedController::ReloadDebugPadFromSettings() { | ||
| 145 | for (std::size_t index = 0; index < Settings::values.debug_pad_buttons.size(); ++index) { | ||
| 146 | button_params[index] = Common::ParamPackage(Settings::values.debug_pad_buttons[index]); | ||
| 147 | } | ||
| 148 | for (std::size_t index = 0; index < Settings::values.debug_pad_analogs.size(); ++index) { | ||
| 149 | stick_params[index] = Common::ParamPackage(Settings::values.debug_pad_analogs[index]); | ||
| 150 | } | ||
| 151 | for (std::size_t index = 0; index < motion_params.size(); ++index) { | ||
| 152 | motion_params[index] = {}; | ||
| 153 | } | ||
| 154 | |||
| 155 | controller.color_values = {}; | ||
| 156 | controller.colors_state.fullkey = {}; | ||
| 157 | controller.colors_state.left = {}; | ||
| 158 | controller.colors_state.right = {}; | ||
| 159 | ring_params[0] = {}; | ||
| 160 | SetNpadStyleIndex(NpadStyleIndex::ProController); | ||
| 161 | original_npad_type = npad_type; | ||
| 162 | |||
| 163 | Disconnect(); | ||
| 164 | if (Settings::values.debug_pad_enabled) { | ||
| 165 | Connect(); | ||
| 166 | } | ||
| 167 | |||
| 168 | ReloadInput(); | ||
| 169 | } | ||
| 170 | |||
| 171 | void EmulatedController::LoadDevices() { | 131 | void EmulatedController::LoadDevices() { |
| 172 | // TODO(german77): Use more buttons to detect the correct device | 132 | // TODO(german77): Use more buttons to detect the correct device |
| 173 | const auto left_joycon = button_params[Settings::NativeButton::DRight]; | 133 | const auto left_joycon = button_params[Settings::NativeButton::DRight]; |
| @@ -600,23 +560,9 @@ bool EmulatedController::IsConfiguring() const { | |||
| 600 | } | 560 | } |
| 601 | 561 | ||
| 602 | void EmulatedController::SaveCurrentConfig() { | 562 | void EmulatedController::SaveCurrentConfig() { |
| 603 | // Other can't alter the config from here | 563 | const auto player_index = NpadIdTypeToIndex(npad_id_type); |
| 604 | if (npad_id_type == NpadIdType::Other) { | ||
| 605 | return; | ||
| 606 | } | ||
| 607 | |||
| 608 | const auto player_index = NpadIdTypeToConfigIndex(npad_id_type); | ||
| 609 | auto& player = Settings::values.players.GetValue()[player_index]; | 564 | auto& player = Settings::values.players.GetValue()[player_index]; |
| 610 | 565 | player.connected = is_connected; | |
| 611 | // Only save the connected status when handheld is connected | ||
| 612 | if (npad_id_type == NpadIdType::Handheld && npad_type == NpadStyleIndex::Handheld) { | ||
| 613 | player.connected = is_connected; | ||
| 614 | } | ||
| 615 | |||
| 616 | if (npad_id_type != NpadIdType::Handheld && npad_type != NpadStyleIndex::Handheld) { | ||
| 617 | player.connected = is_connected; | ||
| 618 | } | ||
| 619 | |||
| 620 | player.controller_type = MapNPadToSettingsType(npad_type); | 566 | player.controller_type = MapNPadToSettingsType(npad_type); |
| 621 | for (std::size_t index = 0; index < player.buttons.size(); ++index) { | 567 | for (std::size_t index = 0; index < player.buttons.size(); ++index) { |
| 622 | player.buttons[index] = button_params[index].Serialize(); | 568 | player.buttons[index] = button_params[index].Serialize(); |
| @@ -1206,7 +1152,7 @@ bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue v | |||
| 1206 | if (!output_devices[device_index]) { | 1152 | if (!output_devices[device_index]) { |
| 1207 | return false; | 1153 | return false; |
| 1208 | } | 1154 | } |
| 1209 | const auto player_index = NpadIdTypeToConfigIndex(npad_id_type); | 1155 | const auto player_index = NpadIdTypeToIndex(npad_id_type); |
| 1210 | const auto& player = Settings::values.players.GetValue()[player_index]; | 1156 | const auto& player = Settings::values.players.GetValue()[player_index]; |
| 1211 | const f32 strength = static_cast<f32>(player.vibration_strength) / 100.0f; | 1157 | const f32 strength = static_cast<f32>(player.vibration_strength) / 100.0f; |
| 1212 | 1158 | ||
| @@ -1232,7 +1178,7 @@ bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue v | |||
| 1232 | } | 1178 | } |
| 1233 | 1179 | ||
| 1234 | bool EmulatedController::IsVibrationEnabled(std::size_t device_index) { | 1180 | bool EmulatedController::IsVibrationEnabled(std::size_t device_index) { |
| 1235 | const auto player_index = NpadIdTypeToConfigIndex(npad_id_type); | 1181 | const auto player_index = NpadIdTypeToIndex(npad_id_type); |
| 1236 | const auto& player = Settings::values.players.GetValue()[player_index]; | 1182 | const auto& player = Settings::values.players.GetValue()[player_index]; |
| 1237 | 1183 | ||
| 1238 | if (!player.vibration_enabled) { | 1184 | if (!player.vibration_enabled) { |
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h index 99572b3bd..a9da465a2 100644 --- a/src/core/hid/emulated_controller.h +++ b/src/core/hid/emulated_controller.h | |||
| @@ -250,14 +250,9 @@ public: | |||
| 250 | /// Reload all input devices | 250 | /// Reload all input devices |
| 251 | void ReloadInput(); | 251 | void ReloadInput(); |
| 252 | 252 | ||
| 253 | /// Overrides current mapped devices with the stored configuration and reloads all input | 253 | /// Overrides current mapped devices with the stored configuration and reloads all input devices |
| 254 | /// callbacks | ||
| 255 | void ReloadFromSettings(); | 254 | void ReloadFromSettings(); |
| 256 | 255 | ||
| 257 | /// Overrides current mapped debug pad with the stored configuration and reloads all input | ||
| 258 | /// callbacks | ||
| 259 | void ReloadDebugPadFromSettings(); | ||
| 260 | |||
| 261 | /// Saves the current mapped configuration | 256 | /// Saves the current mapped configuration |
| 262 | void SaveCurrentConfig(); | 257 | void SaveCurrentConfig(); |
| 263 | 258 | ||
diff --git a/src/core/hid/hid_types.h b/src/core/hid/hid_types.h index 983f0addd..6b35f448c 100644 --- a/src/core/hid/hid_types.h +++ b/src/core/hid/hid_types.h | |||
| @@ -690,32 +690,6 @@ constexpr size_t NpadIdTypeToIndex(NpadIdType npad_id_type) { | |||
| 690 | } | 690 | } |
| 691 | } | 691 | } |
| 692 | 692 | ||
| 693 | /// Converts a NpadIdType to a config array index. | ||
| 694 | constexpr size_t NpadIdTypeToConfigIndex(NpadIdType npad_id_type) { | ||
| 695 | switch (npad_id_type) { | ||
| 696 | case NpadIdType::Player1: | ||
| 697 | return 0; | ||
| 698 | case NpadIdType::Player2: | ||
| 699 | return 1; | ||
| 700 | case NpadIdType::Player3: | ||
| 701 | return 2; | ||
| 702 | case NpadIdType::Player4: | ||
| 703 | return 3; | ||
| 704 | case NpadIdType::Player5: | ||
| 705 | return 4; | ||
| 706 | case NpadIdType::Player6: | ||
| 707 | return 5; | ||
| 708 | case NpadIdType::Player7: | ||
| 709 | return 6; | ||
| 710 | case NpadIdType::Player8: | ||
| 711 | return 7; | ||
| 712 | case NpadIdType::Other: | ||
| 713 | case NpadIdType::Handheld: | ||
| 714 | default: | ||
| 715 | return 0; | ||
| 716 | } | ||
| 717 | } | ||
| 718 | |||
| 719 | /// Converts an array index to a NpadIdType | 693 | /// Converts an array index to a NpadIdType |
| 720 | constexpr NpadIdType IndexToNpadIdType(size_t index) { | 694 | constexpr NpadIdType IndexToNpadIdType(size_t index) { |
| 721 | switch (index) { | 695 | switch (index) { |