summaryrefslogtreecommitdiff
path: root/src/input_common
diff options
context:
space:
mode:
Diffstat (limited to 'src/input_common')
-rw-r--r--src/input_common/drivers/mouse.cpp17
-rw-r--r--src/input_common/drivers/mouse.h1
-rw-r--r--src/input_common/input_engine.cpp2
-rw-r--r--src/input_common/main.cpp3
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() {
121std::vector<Common::ParamPackage> Mouse::GetInputDevices() const { 121std::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
130AnalogMapping 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
130std::string Mouse::GetUIName(const Common::ParamPackage& params) const { 145std::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
60private: 61private:
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 }