76 Commits

Author SHA1 Message Date
zoltanvb
fe1575bc54
Input sanitization, wayland enhancement and overlay (#17308)
Adapt the sanitized pointer handling, discussed at #17196 :

Overlay "driver" specific changes:

- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- enable pointer offscreen query
- report -0x8000 for lightgun if pointer is at the edge
- align lightgun offscreen reporting and button ID conversion with other drivers

Android driver specific changes:

- make sure pointer position is always within [-0x7fff,0x7fff] by using the confined wrapper
- remove extra "inside" checks, general simplification
- enable pointer offscreen reporting
- report same value for all ports when querying mouse and lightgun
- fill missing lightgun support, with fixed button map

Udev and X11 driver specific changes:

- simulate max. 3 touches instead of 1 using different mouse buttons

Wayland driver specific changes:

- integrate touch input better to the overall handling (enabling overlay usage with mouse)
- simulate max. 3 touches instead of 1 using different mouse buttons
2024-12-29 18:57:27 +01:00
zoltanvb
072d949346
Pointer handling sanitization - wayland and libretro.h changes (#17277)
Adapt the sanitized pointer handling, discussed at #17196:

Wayland driver specific changes:
- make sure pointer position is always within [-0x7fff,0x7fff]
  by using the confined wrapper
- enable lightgun to report -0x8000 if pointer is really offscreen
- remove extra "inside" checks
- report same pointer/lightgun coordinates for all ports
- simplify pointer and lightgun handling

Other changes:
- unify "offscreen" condition through input_driver.c
- slight tuning of pointer conversion in video_driver.c
- update libretro.h with explanation and pointer offscreen value
- small fixes on remote retropad test screen
2024-12-21 13:28:27 -08:00
zoltanvb
d5dd3689fc
Support for lightgun in Wayland input driver (#17152) 2024-11-03 18:14:41 -06:00
zoltanvb
3b21273858 [Wayland] Support for mouse buttons 4&5 and horizontal wheel 2024-06-19 18:40:15 -05:00
sonninnos
6e6a4d8b6d
RETROK_UNKNOWN fixes and cleanups (#16250) 2024-02-18 08:23:05 -08:00
Grisly Glee
4202f8650d
Fix trivial signedness warnings (#15377)
* Fix trivial signedness warnings

* Followup on trivial signedness warnings
2023-06-14 04:43:11 +02:00
Colin Kinloch
e8ec3031a8
(Wayland) wp_viewporter + scaling fix (#15176)
* Use wp_viewporter
* Set buffer scale to highest of displays the window is touching
* Fixes fullscreen issue mentioned in #15168
* Simplify process of adding new wayland protocols
2023-04-10 06:29:41 +01:00
Colin Kinloch
2101400bf4
(Wayland) Check for pointer before locking it (#15130)
Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-24 22:40:38 +01:00
Colin Kinloch
eeda1f6141
(Wayland) Don't relock the pointer (#15128) 2023-03-24 05:07:48 +01:00
Colin Kinloch
d2c40b48ab
(Wayland) Mouse grab cleanup (#15114) 2023-03-21 14:36:24 +01:00
Manuel Alfayate Corchete
aaa53da148
[Wayland] Add mouse grab/lock functionality. (#15103)
* [Wayland] Add mouse grab functionality.

Co-authored-by: Colin Kinloch <colin@kinlo.ch>
2023-03-20 11:30:04 +01:00
libretroadmin
1581ece9ea Cleanups 2023-03-17 00:03:23 +01:00
libretroadmin
0de147971a (Wayland) Cleanups 2023-03-16 18:40:17 +01:00
libretroadmin
7ebab640d7 Cleanups/style nits 2023-02-23 13:15:14 +01:00
libretroadmin
4d305bf3e8 Buildfixes for Android and Wayland 2023-02-19 10:09:50 +01:00
libretroadmin
963bb92f95 (Input) Style nits/code simplifications 2023-02-19 06:30:14 +01:00
neil4
b98c53ddb7
Improve haptic feedback for input overlays (#14517)
Repurpose vibrate_on_keypress to enable device's standard keypress feedback on overlay key/button state changes

- Add keypress_vibrate function ptr to input_driver_t (only implemented on Android for now)
- (Android) Remove APP_CMD_VIBRATE_KEYPRESS
- (Android) Add doHapticFeedback, called directly to avoid latency
2022-10-16 09:58:09 +02:00
LibretroAdmin
d0c6dfee0b Cleanup bitmask setting 2022-10-05 18:43:58 +02:00
LibretroAdmin
da13fb0f48 Don't include errno.h in files that don't justify its use 2022-08-25 05:19:30 +02:00
Keith Bowes
38e74ee3cf
Restores mouse-grab toggling in Wayland. (#13537)
* Fixes mouse-grab toggling in Wayland.

Fixes #13536

* Indicate that input_wl_grab_mouse is a necessary function.

It might prevent it from being removed again in future cleanups.
2022-01-24 16:22:21 +01:00
twinaphex
393e42a497 (Wayland) Buildfix 2021-12-24 05:25:30 +01:00
Colin Kinloch
c48d533950
(Wayland) Add scroll wheel support (#13398) 2021-12-24 03:42:33 +01:00
gblues
1ef78d3e3d
Any pad can control the menu (#13173)
* Any pad can control the menu

== DETAILS
I am not sure I've quite got it so that any pad can *open* the
menu, but I do have it so any pad can control it.

- split out the input processing into a separate method
- track down and squish some hairy bugs that boiled down to
  bad pointer math
- it looks like `menu_driver.c` has a mix of line endings, so I
  ran it through `dos2unix` so it has consistent line endings
  again.
- verified that this change did not impact actual cores

* optimize out cumulative_bits

* Incorporate PR feedback

Many thanks to @jdgleaver for providing these optimizations.

* apply one more optimization
2021-11-03 16:32:15 +01:00
Kirby Kevinson
177d05144a
Fix keyboard input on Wayland (#13102)
Fixes #13036
2021-10-11 13:20:41 +02:00
Mark W. Kidd
109f4fafec wayland input driver fixups 2021-08-02 18:05:24 -04:00
twinaphex
1c5f4e1dee Start cutting down on input_state - move all joypad driver code up to
higher-level retroarch.c
2020-09-02 15:26:03 +02:00
twinaphex
2fde8c21a9 Remove set_rumble function from input driver 2020-09-02 00:38:11 +02:00
twinaphex
acc0f2143f Change input_key_pressed so we no longer need to pass joypad
to the poll function callback
2020-09-01 21:43:39 +02:00
twinaphex
1d67ae3c63 Fix Android error 2020-09-01 17:41:05 +02:00
twinaphex
a82bff2055 (Wayland) Fix serious warnings - input struct pointer was being passed
to function that requires gfx struct pointer
2020-08-31 19:56:03 +02:00
Autechre
fe81f0ad4e
Update wayland_input.c 2020-08-31 19:27:37 +02:00
Autechre
0e5cceb443
Update wayland_input.c 2020-08-31 14:08:41 +02:00
twinaphex
6f92c56ca3 Simplify input drivers 2020-08-31 02:07:43 +02:00
twinaphex
d4d8b6934a Put keyboard_mapping_blocked into p_rarch / rarch struct
instead
2020-08-30 18:47:29 +02:00
twinaphex
035efa5136 Inline pressed_analog functions into input_state function itself 2020-08-30 16:57:04 +02:00
twinaphex
e119d3c98e Further cleanups/standardizations to analog_pressed 2020-08-30 16:38:53 +02:00
twinaphex
97319d4f98 Standardize pressed_analog functions 2020-08-30 16:19:11 +02:00
twinaphex
5f08605680 Refactor joypad drivers 2020-08-30 05:29:32 +02:00
twinaphex
b3744c3126 Put input_jpyad_init_driver last in 'input' callback function 2020-08-29 20:46:42 +02:00
twinaphex
d97e590aaf Reimplement multi button state functions 2020-07-19 03:18:12 +02:00
twinaphex
646d627a6c Move more Wayland code 2020-07-14 16:04:10 +02:00
twinaphex
88f742894d Move wayland header to input/common 2020-07-14 14:32:37 +02:00
twinaphex
689ac432d6 MOve input_joypad_analog call to inside retroarch.c instead of the
input driver itself, and make function static
2020-06-23 18:31:40 +02:00
twinaphex
35c55c4b50 Potential fix for #10884 2020-06-22 20:34:40 +02:00
twinaphex
c7cd327b5b Rearrange input state input drivers for ANALOG - do joypad
processing first, then keyboard second
2020-06-13 05:25:10 +02:00
twinaphex
d998f86f1f Cleanups 2020-06-12 18:41:09 +02:00
twinaphex
cd01e0a048 Standardize input lightgun code 2020-06-11 16:58:49 +02:00
twinaphex
a7a03984f1 (input drivers) Cleanups 2020-06-10 04:00:40 +02:00
twinaphex
26b3ccf2e5 Don't pass joypad_info by value 2020-02-27 07:33:14 +01:00
twinaphex
65b4c2595e Update set keyboard mapping code for input driver 2019-07-27 02:21:24 +02:00