diff options
Diffstat (limited to 'src/input_common')
| -rw-r--r-- | src/input_common/drivers/mouse.cpp | 17 | ||||
| -rw-r--r-- | src/input_common/drivers/mouse.h | 1 | ||||
| -rw-r--r-- | src/input_common/input_engine.cpp | 2 | ||||
| -rw-r--r-- | src/input_common/main.cpp | 3 |
4 files changed, 22 insertions, 1 deletions
diff --git a/src/input_common/drivers/mouse.cpp b/src/input_common/drivers/mouse.cpp index 2c2432fb7..1c32b54be 100644 --- a/src/input_common/drivers/mouse.cpp +++ b/src/input_common/drivers/mouse.cpp | |||
| @@ -121,12 +121,27 @@ void Mouse::StopPanning() { | |||
| 121 | std::vector<Common::ParamPackage> Mouse::GetInputDevices() const { | 121 | std::vector<Common::ParamPackage> Mouse::GetInputDevices() const { |
| 122 | std::vector<Common::ParamPackage> devices; | 122 | std::vector<Common::ParamPackage> devices; |
| 123 | devices.emplace_back(Common::ParamPackage{ | 123 | devices.emplace_back(Common::ParamPackage{ |
| 124 | {"engine", "keyboard"}, | 124 | {"engine", GetEngineName()}, |
| 125 | {"display", "Keyboard/Mouse"}, | 125 | {"display", "Keyboard/Mouse"}, |
| 126 | }); | 126 | }); |
| 127 | return devices; | 127 | return devices; |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | AnalogMapping Mouse::GetAnalogMappingForDevice( | ||
| 131 | [[maybe_unused]] const Common::ParamPackage& params) { | ||
| 132 | // Only overwrite different buttons from default | ||
| 133 | AnalogMapping mapping = {}; | ||
| 134 | Common::ParamPackage right_analog_params; | ||
| 135 | right_analog_params.Set("engine", GetEngineName()); | ||
| 136 | right_analog_params.Set("axis_x", 0); | ||
| 137 | right_analog_params.Set("axis_y", 1); | ||
| 138 | right_analog_params.Set("threshold", 0.5f); | ||
| 139 | right_analog_params.Set("range", 1.0f); | ||
| 140 | right_analog_params.Set("deadzone", 0.0f); | ||
| 141 | mapping.insert_or_assign(Settings::NativeAnalog::RStick, std::move(right_analog_params)); | ||
| 142 | return mapping; | ||
| 143 | } | ||
| 144 | |||
| 130 | std::string Mouse::GetUIName(const Common::ParamPackage& params) const { | 145 | std::string Mouse::GetUIName(const Common::ParamPackage& params) const { |
| 131 | if (params.Has("button")) { | 146 | if (params.Has("button")) { |
| 132 | return fmt::format("Mouse {}", params.Get("button", 0)); | 147 | return fmt::format("Mouse {}", params.Get("button", 0)); |
diff --git a/src/input_common/drivers/mouse.h b/src/input_common/drivers/mouse.h index e8355751a..d3178b1a9 100644 --- a/src/input_common/drivers/mouse.h +++ b/src/input_common/drivers/mouse.h | |||
| @@ -55,6 +55,7 @@ public: | |||
| 55 | void ReleaseAllButtons(); | 55 | void ReleaseAllButtons(); |
| 56 | 56 | ||
| 57 | std::vector<Common::ParamPackage> GetInputDevices() const override; | 57 | std::vector<Common::ParamPackage> GetInputDevices() const override; |
| 58 | AnalogMapping GetAnalogMappingForDevice(const Common::ParamPackage& params) override; | ||
| 58 | std::string GetUIName(const Common::ParamPackage& params) const override; | 59 | std::string GetUIName(const Common::ParamPackage& params) const override; |
| 59 | 60 | ||
| 60 | private: | 61 | private: |
diff --git a/src/input_common/input_engine.cpp b/src/input_common/input_engine.cpp index 1534f24b0..9cfe0f232 100644 --- a/src/input_common/input_engine.cpp +++ b/src/input_common/input_engine.cpp | |||
| @@ -202,6 +202,8 @@ void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int but | |||
| 202 | if (!configuring || !mapping_callback.on_data) { | 202 | if (!configuring || !mapping_callback.on_data) { |
| 203 | return; | 203 | return; |
| 204 | } | 204 | } |
| 205 | |||
| 206 | PreSetButton(identifier, button); | ||
| 205 | if (value == GetButton(identifier, button)) { | 207 | if (value == GetButton(identifier, button)) { |
| 206 | return; | 208 | return; |
| 207 | } | 209 | } |
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp index 8f7ce59b7..07d514ad7 100644 --- a/src/input_common/main.cpp +++ b/src/input_common/main.cpp | |||
| @@ -143,6 +143,9 @@ struct InputSubsystem::Impl { | |||
| 143 | return {}; | 143 | return {}; |
| 144 | } | 144 | } |
| 145 | const std::string engine = params.Get("engine", ""); | 145 | const std::string engine = params.Get("engine", ""); |
| 146 | if (engine == mouse->GetEngineName()) { | ||
| 147 | return mouse->GetAnalogMappingForDevice(params); | ||
| 148 | } | ||
| 146 | if (engine == gcadapter->GetEngineName()) { | 149 | if (engine == gcadapter->GetEngineName()) { |
| 147 | return gcadapter->GetAnalogMappingForDevice(params); | 150 | return gcadapter->GetAnalogMappingForDevice(params); |
| 148 | } | 151 | } |