Commit Graph

4404 Commits

Author SHA1 Message Date
libretroadmin 0a96f9595c Explicit typecasts to bools for flags 2023-08-16 04:18:55 +02:00
libretroadmin f51b49f213 More explicit typecasts to bools 2023-08-16 03:22:02 +02:00
libretroadmin bd7a0f7f0a Explicit typecast to bool for some flag to bool conversions 2023-08-16 00:16:03 +02:00
Max Kupriianov abcd42777f
refactor: rewrite input handling to better support AINPUT_SOURCE_STYLUS (#15597)
Resolves issues with S-Pen on Samsung devices, also adds support for S-Pen button
that is handled as r-mouse click now.
2023-08-15 11:13:53 -07:00
libretroadmin c8e6506687 Fix --disable-menu errors 2023-08-14 23:36:19 +02:00
sonninnos d8f9310100
(DINPUT) Mouse flag cleanup (#15575) 2023-08-11 07:17:07 -07:00
neil4 fbd8498686
Overlays: Apply range_mod only for the touch inputs that trigger it (#15534) 2023-07-30 09:49:59 +02:00
Colin Kinloch 2cb787c5bf (Wayland) Apply output scale to touch inputs 2023-07-21 22:31:51 +02:00
Eric Warmenhoven 286ce51277 iOS: use haptic engine instead of feedback generator for device rumble 2023-07-19 22:13:35 +02:00
sonninnos c798cbaf3f Enable overlay by default only on mobile + winraw overlay fix 2023-07-18 21:26:23 +02:00
libretroadmin aeff636a0f Minor cleanups to config_file.c 2023-07-17 09:45:52 +02:00
libretroadmin 98ee9a753c Cut down on some implicit strlens 2023-07-15 09:10:16 +02:00
sonninnos ab4debec01 All Users Control Menu fixes 2023-07-15 06:28:51 +02:00
Eric Warmenhoven e943ea71e7 Fix #15459 - add HAVE_STDIN_CMD to macos 2023-07-09 09:31:08 +02:00
nfore bf0de45ec4 Build fix 2023-07-09 09:30:48 +02:00
nfore 9ca5c5e623 Revive/rewrite Keyboard Overlay and OSK Toggle
Add keyboard overlay preset, keyboard submenu, and osk_toggle hotkey. Use overlay caching for osk_toggle.

For now, keyboard menu has only preset path, auto-scale toggle, and opacity.

Related fixes:
- input_keyboard_event: Don't check hotkey binds when device is RETRO_DEVICE_POINTER
- Add input_keymaps_translate_rk_to_ascii() for correct character input to input_keyboard_event
- input_overlay_poll: Delay clearing INPUT_OVERLAY_BLOCKED flag until there is no overlay input (Avoids stray input after osk_toggle)
- Send keyboard events for modifiers before other keys (for correct modifier+key input if hitboxes overlap)
2023-07-09 04:42:49 +02:00
nfore 8a81d39437 Overlay Caching
Adds overlay_cache_ptr to keep a disabled overlay in memory when it's expected to be shown again.

Most input_overlay_deinit calls are replaced with input_overlay_unload, which caches the overlay unless initing/deiniting core or disabling overlays.

Loading a cached overlay is done as a swap, intended for osk_toggle.

Related updates:
- Fewer parameters for the overlay loading task. Use current settings when enabling an overlay
- Add input_overlay_check_mouse_cursor() to preserve show/hide mouse behavior
- Don't apply input_overlay_show_mouse_cursor in windowed mode (controlled by mouse grab only)
- Remove some dead code
2023-07-09 04:42:49 +02:00
Eric Warmenhoven 280dcb32f9 Fix several warnings 2023-07-02 05:46:45 +02:00
sonninnos 7922e45607 Combo hold + 'enable_hotkey' correction 2023-07-01 20:12:13 +02:00
Eric Warmenhoven ce49bd6dcc Enable option to rumble iOS device instead of controller (#14734). 2023-07-01 19:24:40 +02:00
libretroadmin 22dc6aff5a Rework some snprintf/strlcat calls 2023-06-21 09:25:04 +02:00
libretroadmin bdc398d79f - Safer code - use strlcpy where possible instead of manual character
assignments for strings longer than 2 chars
- Use strlcpy concatenation instead of strlcat
- Make sure that what remains of iteration of the '_len' variable
for manual char assignment
is done in a safer way so mistakes are less possible
2023-06-20 16:33:55 +02:00
libretroadmin 31d8f4fd51 Cut down on more strlcat calls 2023-06-18 22:53:13 +02:00
sonninnos b92540b24d (udev) Log mouse devices in info level 2023-06-18 19:43:38 +02:00
libretroadmin 97deec44f4 Remove unused variable warning 2023-06-18 13:55:39 +02:00
sonninnos 8a862bf20e
Keyboard mapping bit fix (#15392) 2023-06-18 08:09:34 +02:00
libretroadmin fc06e2f84f Simplify core_serialize_size and core_serialize_size_special 2023-06-16 17:20:27 +02:00
libretroadmin 410242c164 (input_driver.c) Don't keep regrabbing the same pointers in input_state_internal function 2023-06-15 14:26:41 +02:00
libretroadmin 426ba5382c C89 buildfix and other small cleanup 2023-06-15 01:58:23 +02:00
libretroadmin 975d613fbb (input_driver.c) Small cleanups - input_driver_state_internal
return type is int16_t so don't use float value for analog_x/analog_y
variables
2023-06-15 01:52:24 +02:00
Grisly Glee de0c6d5cd1
Trivial warnings fixes (#15383)
* Trivial graphics context drivers fix

* Assorted minor warnings fixes
2023-06-14 23:46:27 +02:00
libretroadmin 246cceeb27 Silence more signedness warnings 2023-06-14 19:51:31 +02:00
sonninnos c4f43ff28b
Linux input driver fix 8+ joypads (#15374) 2023-06-14 04:43:45 +02: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
jiangxiaogang 44142ceeb8 Fixed android gamepad binds 2023-06-06 01:52:39 +02:00
Eric Warmenhoven 6c831b25a6 Restore "macOS Cocoa: fix mouse grab in windowed mode."
This reverts commit 269c902429, with a
build fix.
2023-06-06 01:52:13 +02:00
libretroadmin 269c902429 revert 2023-06-04 16:28:59 +02:00
libretroadmin 63bf68d616 Cover both HAVE_COCOA and HAVE_COCOA_METAL for now 2023-06-04 16:09:49 +02:00
libretroadmin 794b430bac cocoa_input_grab_mouse - compile it in only for regular Cocoa, not CocoaTouch 2023-06-04 16:08:24 +02:00
libretroadmin 1352036133 (cocoa_input.m) Cleanups 2023-06-04 16:03:55 +02:00
libretroadmin cd6aec70ac Buildfix for iOS/tvOS 2023-06-04 15:51:02 +02:00
Alexander Kozharsky 167c52ec77 macOS Cocoa: fix mouse grab in windowed mode. 2023-06-04 14:51:04 +02:00
libretroadmin 31751a3945 Cleanups 2023-06-01 22:52:05 +02:00
libretroadmin f66a8dc538 Cleanup unused variable warnings 2023-06-01 22:34:16 +02:00
Bernhard Schelling 189542ea5f Prevent the android quick tap mouse click emulation while pressing a button on the on-screen overlay 2023-06-01 18:34:37 +02:00
anaximan bd59d35498 Fixed the corner tapping toggle 2023-06-01 15:56:09 +02:00
anaximan d7a4ee6918 Added clarification for the trackball and auto reloading to VMouse options. 2023-06-01 15:56:09 +02:00
anaximan e301ddf29f Compilation fixes when UDEV_TOUCH_SUPPORT is undefined 2023-06-01 15:56:09 +02:00
anaximan 516de17de0 Added touch-related options to RetroArch Input settings menu. Added trackball mode. 2023-06-01 15:56:09 +02:00
anaximan 59651914cd Fixed some typos, code cleanup, and C89 compatibility 2023-06-01 15:56:09 +02:00
anaximan 42c0c7ee2b First working version of udev driver with touchscreen support and gestures. 2023-06-01 15:56:09 +02:00
libretroadmin 3737b99b05 Cleanups 2023-05-30 22:10:03 +02:00
libretroadmin 37190f8036 Header uniformity cleanups 2023-05-30 21:21:05 +02:00
libretroadmin c0ba738f0d Header uniformity - enums on top, then structs, then public declarations 2023-05-30 21:03:36 +02:00
libretroadmin c09fb6d95d Cleanups 2023-05-30 12:19:53 +02:00
Colin Kinloch 402b381c9b Revert "(Wayland) Remove splash screen (#15178)"
This reverts commit f19def349f.
2023-05-29 19:16:21 +02:00
libretroadmin c24744eae5 Remove video_driver_show_mouse/hide_mouse 2023-05-29 18:58:23 +02:00
Eric Warmenhoven ed448a3f0f Haptic feedback for overlay on iOS 2023-05-29 09:29:41 +02:00
vanfanel 155d2c9ada [Wayland+GL] Add frame callback after egl_swap_buffers to improve latency when max_swapchain<=2. 2023-05-28 23:19:13 +02:00
Eric Warmenhoven b1503c6fc0 Add accelerometer and gyroscope sensors to iOS 2023-05-21 23:18:34 +02:00
Rob Loach b6dc368827 Fix linuxraw_joypad snprintf warning 2023-05-16 12:55:52 +02:00
Rob Loach 39fa89b214 Fix parport_joypad snprintf warning 2023-05-16 12:55:40 +02:00
Eric Warmenhoven d5a86e2363 iOS needs to targets 13 due to some keyboard emulation, but tvOS does not 2023-05-12 04:42:20 +02:00
libretroadmin 07cb5f4e98 Remove MENU_ENTRIES_CTL_SET_REFRESH 2023-05-11 01:58:30 +02:00
Eric Warmenhoven dda7776252 tvOS Siri remote handling
It's not really usable as a game controller, but it is good for going
through the menu as a simple LRUD.

This also adds better support for names of mFI controllers, as well as
being able to do the expected tvOS behavior of "backing out" of the app.
2023-05-10 08:41:09 +02:00
sonninnos 47d71646c9 Add menu scroll home+end actions 2023-05-08 15:25:51 +02:00
libretroadmin 099f33e0b3 (Menu) Simplifications 2023-05-06 22:10:55 +02:00
Carlo Refice 3f9a85d997
Fix rumble on PS4/PS5 controllers connected via bluetooth (#15244) 2023-05-01 23:37:26 +02:00
libretroadmin e7e647d181 (Joypad drivers) Simplifications - put char string outside loop 2023-05-01 20:33:38 +02:00
libretroadmin c087b044c2 * Add TODO/FIXME localize notes
* More snprintf optimizations
2023-04-30 19:30:07 +02:00
sonninnos ad079538a4
Fix menu toggle combo hold with same 'enable_hotkey' (#15226) 2023-04-26 01:54:44 +02:00
libretroadmin 07eddd7229 Cleanups 2023-04-23 16:09:24 +02:00
libretroadmin 238f887931 Get rid of initial for loop C89 noncompliance
* uwp_main.c - code style cleanups
2023-04-23 10:47:09 +02:00
Colin Kinloch f19def349f
(Wayland) Remove splash screen (#15178) 2023-04-10 16:37:48 +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
warmenhoven 54055558f1
Fix several warnings (#15153) 2023-04-04 15:06:34 +01:00
Valentin b0b5a40d44
add overlay parameter to control x/y separation in auto-scale mode (#15106) 2023-03-31 01:33:39 +01:00
zoltanvb c996fe7070
Add wayland to input driver list. (#15133)
Wayland input driver was not selectable from menu. It could still be enforced by
context driver, or enabled in config file, but I saw no reason why it would be
better to skip it from here.
2023-03-25 22:42:03 +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 2902d11b1a Rewinding code should not be a forced built-in dependency 2023-03-17 16:08:41 +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
sonninnos 92dfc80327
Check for 'enable_hotkey' also from autoconf binds (#15095) 2023-03-14 18:16:53 +01:00
libretroadmin 5c51232731 Style nit 2023-03-13 02:23:52 +01:00
libretroadmin 60dc768f78 (Replay/BSV) Fix issue #15083, and some other style nits 2023-03-13 01:34:27 +01:00
Joe Osborn be5b198692
Replay rewind fix (#15079)
* Rewind during recording isn't visibly busted anymore but it doesn't rewind the replay properly during playback or record, inputs get clobbered; check frame pos/ptr stuff.

* Fix rewinding during movie recording and playback?
2023-03-11 18:37:48 +01:00
Joe Osborn 81b3e128ac
Add checkpointing feature for replay recordings. (#15072)
If cores are not deterministic, or if they only have bounded
determinism, we can obtain less drift if replay files also contain
periodic checkpoint states.  These are configured by the new retroarch
stting replay_checkpoint_interval (measured in seconds).  States are
inserted into the replay file in between frames.

This patch also fixes the settings display for the replay
autoincrement max keep setting.
2023-03-09 23:14:02 +01:00
Colin Kinloch e31b7fe6c2
(Wayland) Fix resize check (#15065)
* (Wayland) Fix resize check

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland/GL) Correct scaling on resize

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

* (Wayland) Fix fullscreen buffers being initially double scaled

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>

---------

Signed-off-by: Colin Kinloch <colin.kinloch@collabora.com>
2023-03-08 20:08:31 +01:00
Joe Osborn 807640fed3
Associate states with replays (#15070)
* change bsv file suffix to replay, update strings

* add trivial RPLY block to save states

* WIP rerecording support, doesn't load states properly yet--issue with checking identifiers?

* Fixed a type error to get time identifiers working right, ready for testing

* handle case where state without replay data is loaded during replay

* cleanups

* whitespace cleanup

* Cleanups, change replay file format magic, fix logic around future states

* Remove failed future message

* Add play-replay-from-slot command, fix load-state-from-slot to use given slot

* build fixes

* Fix race conditions in emscripten build and incorrect replay state incrementing

* Style fix for single line if

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-08 00:10:59 +01:00
Joe Osborn 4d81f70f00
Replay nomenclature (#15054)
* change bsv file suffix to replay, update strings

* Fix bsv cli args

* Fix help whitespace

* Fix another message

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-03 23:16:48 +01:00
Joe Osborn 2125770236
Replay UI support (#15048)
* Add bsv replay controls (not yet fully implemented), remove toggle

see notes in task_movie.c, make sure command.c calls the right
functions, check retroarch.c and other todos.

bsv files are also now stored with states, not saves.

* Compilation fixes

* Added command impls for play and record replay, and some code in load state to do the right thing there

* Guard some parts of the new code with HAVE_BSV_MOVIE

* wip, menu fixes

* more menu fixes, osd for movie errors, halt recording properly

* Menu and label fixes

* move bsvs to own file suffix series under savestates, fix recording and playback command validity checks

* Fix replay autoincrement

* fix endif placement, whoops

---------

Co-authored-by: Joseph C. Osborn <jcoa2018@pomona.edu>
2023-03-03 00:52:22 +01:00
Nicolas Adenis-Lamarre 7e2e87ad4a
fix udev guns input when id_mouse is not id_joystick (#15026)
the commit cfe9d60f51
introduces an issues on guns inputs for drivers udev, dinput, winraw and x11.
A local variable called "port" is redefining the function argument variable and
is causing bad calls in subsequent function calls.

In short, functionnally, if you have only 1 gun and 1 pad on your system, all works.
As soon as you use several pads or several guns, you may have issues,
because subsequent calls use the joystick port instead of the device port as argument.

IMPORTANT NOTE : this fix was done originally for the batocera project which uses only the udev driver,
this is why it is focused on udev only.
The same thing must be done and tested for dinput, winraw and x11.
I've not the ability to test them.

Signed-off-by: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com>
2023-02-26 15:52:20 +01:00
libretroadmin 3f485de88c i(dinput/winraw/x11) Fix issue pointed out in PR #15026 2023-02-26 15:51:37 +01:00
libretroadmin c7f2e6e163 Buildfix 2023-02-23 19:06:55 +01:00
libretroadmin 8507c4ba20 (input/connect) Cleanups 2023-02-23 18:53:17 +01:00
libretroadmin 32962dfc99 Fix function declaration movie_stop_playback 2023-02-23 17:05:31 +01:00
libretroadmin 7ebab640d7 Cleanups/style nits 2023-02-23 13:15:14 +01:00