diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/frontend/input.h | 7 | ||||
-rw-r--r-- | src/core/settings.h | 27 |
2 files changed, 34 insertions, 0 deletions
diff --git a/src/core/frontend/input.h b/src/core/frontend/input.h index 39bdf4e21..16fdcd376 100644 --- a/src/core/frontend/input.h +++ b/src/core/frontend/input.h @@ -132,4 +132,11 @@ using MotionDevice = InputDevice<std::tuple<Math::Vec3<float>, Math::Vec3<float> */ using TouchDevice = InputDevice<std::tuple<float, float, bool>>; +/** + * A mouse device is an input device that returns a tuple of two floats and four ints. + * The first two floats are X and Y device coordinates of the mouse (from 0-1). + * The s32s are the mouse wheel. + */ +using MouseDevice = InputDevice<std::tuple<float, float, s32, s32>>; + } // namespace Input diff --git a/src/core/settings.h b/src/core/settings.h index e424479f2..d9aa14cd2 100644 --- a/src/core/settings.h +++ b/src/core/settings.h @@ -111,6 +111,30 @@ static const std::array<const char*, NumAnalogs> mapping = {{ }}; } // namespace NativeAnalog +namespace NativeMouseButton { +enum Values { + Left, + Right, + Middle, + Forward, + Back, + + NumMouseButtons, +}; + +constexpr int MOUSE_HID_BEGIN = Left; +constexpr int MOUSE_HID_END = NumMouseButtons; +constexpr int NUM_MOUSE_HID = NumMouseButtons; + +static const std::array<const char*, NumMouseButtons> mapping = {{ + "left", + "right", + "middle", + "forward", + "back", +}}; +} // namespace NativeMouseButton + struct Values { // System bool use_docked_mode; @@ -122,6 +146,9 @@ struct Values { // Controls std::array<std::string, NativeButton::NumButtons> buttons; std::array<std::string, NativeAnalog::NumAnalogs> analogs; + bool mouse_enabled; + std::string mouse_device; + MouseButtonsRaw mouse_buttons; std::string motion_device; std::string touch_device; std::atomic_bool is_device_reload_pending{true}; |