Commit graph

10676 commits

Author SHA1 Message Date
Sam Lantinga 70dfd6dd1a Added mapping for Xbox Series X controller
Fixes https://github.com/libsdl-org/SDL/issues/6296
2022-10-16 09:06:02 -07:00
Frank Praznik ed412c1385 wayland: Cleanup event source comments, headers, and error reporting
Replace instances of fprintf(stderr, ...) with SDL_SetError(), replace C++ comments with C style, use a uniform format for multi-line comments, and remove unused headers as poll and select aren't used in this file (the SDL function which calls them is used instead).
2022-10-16 08:40:50 -07:00
Daniel Bomar 22461383c6 SDL_audiocvt: Respct the SDL_HINT_AUDIO_RESAMPLING_MODE hint
This implements using libsamplerate for the SDL_AudioCVT API.
This library was already being used for audio streams when this hint is
set.
2022-10-15 14:31:00 -07:00
Sam Lantinga e8fdb861ef Removed redundant masking when loading the IMU calibration 2022-10-15 10:02:39 -07:00
happyharryh a6573f94ab Fix bugs in IMU calibration loading for Nintendo Controllers 2022-10-15 10:01:22 -07:00
Frank Praznik 6204768653 wayland: Don't block on libdecor_dispatch()
libdecor_dispatch() needs to be called, as libdecor plugins might do some required internal processing within, however care must be taken to avoid double-blocking in the case of a timeout, which can occur if libdecor_dispatch() and the SDL event processing both work on the main Wayland queue. Additionally, assumptions that libdecor will always dispatch the main queue or not process zero-length queues (can occur if a wait is interrupted by the application queueing an event) should not be made, as this behavior is outside the control of SDL and can change.

SDL handles polling for Wayland events and then calls libdecor to do its internal processing and dispatch. If libdecor operates on the main queue, it will dispatch the queued events and the additional wl_display_dispatch_pending() call will be a NOP. If a libdecor plugin uses its own, separate queue, then the wl_display_dispatch_pending() call will ensure that the main queue is always dispatched.
2022-10-15 09:33:37 -07:00
Frank Praznik e89389ba0e wayland: Use MAP_PRIVATE when mapping the keyboard keymap file descriptor
Per the Wayland spec, this must be mapped with MAP_PRIVATE in version 7 of the protocol and higher.
2022-10-15 09:30:06 -07:00
Sam Lantinga 5129a07707 Steam Controller support defaults off, as documented in SDL_hints.h 2022-10-14 14:35:52 -07:00
Sam Lantinga 6af17369ca Added mapping for Qanba Drone on Linux without HIDAPI 2022-10-14 10:36:24 -07:00
Sam Lantinga 93b7196763 Only update the battery level if we're on Bluetooth
Fixes battery level dropping to empty with the Qanba Drone Arcade Stick.

It looks like we might also be able to skip the check for all third party controllers, but I think this is the right thing to do for Sony controllers as well.
2022-10-14 10:32:03 -07:00
Sam Lantinga 120a957d07 Added support for the Qanba Drone Arcade Stick 2022-10-14 09:57:02 -07:00
Sam Lantinga 6bb0c2a5c2 Added documentation for some scancodes 2022-10-14 06:33:38 -07:00
Sam Lantinga 91ff88451b Disable "The key you just pressed is not recognized by SDL." message by default 2022-10-13 23:56:17 -07:00
Sam Lantinga 139192140c Fixed reported cases of "Keyboard layout unknown" messages
In all cases they were using SDL_SCANCODE_TABLE_XFREE86_2 with some keycodes remapped or fewer than expected keycodes. This adds a sanity check that catches all of them and gives them the right scancode table.
2022-10-13 23:23:55 -07:00
Sam Lantinga 2c1923859a Don't remove entries from an existing scancode keymap
If we can't find the X11 keysym, it's likely that either the keysym is NoSymbol, in which case we won't hit it anyway, or it's been mapped to a character, in which case the existing mapping is correct for the scancode and the character will be reflected in the keycode mapping.
2022-10-13 22:50:57 -07:00
Sam Lantinga 99f2a50394 X11 scancode mapping cleanup
* Consolidated scancode mapping tables into a single location for all backends
* Verified that the xfree86_scancode_table2 is largely identical to the Linux scancode table
* Updated the Linux scancode table with the latest kernel keycodes (still unmapped)
* Route X11 keysym -> scancode mapping through the linux scancode table (which a few hand-written exceptions), which will allow mappings to automatically get picked up as they are added in the Linux scancode table
* Disabled verbose reporting of missing keysym mappings, we have enough data for now
2022-10-13 22:41:47 -07:00
Cameron Gutman f5afb7d11a directfb: Fix return type of DirectFB_RenderPresent() 2022-10-13 18:44:15 -05:00
Sam Lantinga fc73386f45 Fixed the mapping from raw joystick values to the expected [SDL_JOYSTICK_AXIS_MIN, SDL_JOYSTICK_AXIS_MAX] range. (thanks Tas!)
The original code mapped incorrectly from [min, max] to [-32768, 32512], the upper bound being SDL_JOYSTICK_AXIS_MAX - 255 instead of SDL_JOYSTICK_AXIS_MAX.
2022-10-12 21:44:50 -07:00
Pierre Wendling eea9f638e2 CI: Update to actions/checkout@v3. 2022-10-12 16:31:02 -07:00
Simon McVittie 7d230af51d testevdev: Explain why the test data is encoded the way it is
Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-10-12 19:20:40 +03:00
Simon McVittie 81dee31949 testevdev: Add a static assertion for supported sizeof(long)
If this assertion fails on some platform (unlikely), we will need a
third implementation for SwapLongLE().

Signed-off-by: Simon McVittie <smcv@collabora.com>
2022-10-12 19:20:40 +03:00
Pierre Wendling 5b9608e08c Remove D3D9 workarounds for Watcom.
The linked PRs have been merged since May.
2022-10-12 17:55:37 +03:00
Ryan C. Gordon 2d7816e358
dynapi: Disable support for API call logging by default.
We can manually enable it if necessary, but it bloats the library to
leave it on just in case.

Fixes #6381.
2022-10-12 09:59:31 -04:00
Sylvain f69e004d01
Android default to dynamic API disabled (see #6381) 2022-10-12 13:58:41 +02:00
Sylvain f6ff87788a
Android default to dynamic API disabled (see #6381) 2022-10-12 13:55:14 +02:00
Desour 6836273d14 Use XIWarpPointer if compiled with xinput2
Co-authored-by: Andrei E <andreien@proton.me>
2022-10-11 16:43:24 -07:00
Helge Deller fb32effd15 testevdev: Fix detection of word size
The check for whether to use a 32- or 64-bit swap for an array of long
values always took the 64-bit path, because <limits.h> wasn't included
and therefore ULONG_MAX wasn't defined. Turn this into a runtime check,
which a reasonable compiler will optimize into a constant.

This fixes testevdev failures on 32-bit big-endian platforms such as hppa
and older powerpc. Little-endian and/or 64-bit platforms are unaffected.

[smcv: Added commit message]
Bug-Debian: https://bugs.debian.org/1021310
Co-authored-by: Simon McVittie <smcv@collabora.com>
2022-10-11 14:33:34 -07:00
Pierre Wendling e710440f58 Vita: Fix typo in CI CMake command. 2022-10-11 18:49:38 +02:00
Ethan Lee be2cb00066 wayland: Check for the input handle before checking the keyboard handle 2022-10-11 11:16:52 -04:00
Sam Lantinga df1bd07dee d3d12: actually execute the pending commands before processing resize
This makes sure all the resources are in the expected state

Fix the D3D12 case in https://github.com/libsdl-org/SDL/issues/6376
2022-10-11 07:25:27 -07:00
Frank Praznik 0b88e609bc wayland: Raise wl_seat maximum version to 8
Version 8 is required for supporting axis_value120 high-resolution scroll events.
2022-10-11 09:15:21 -04:00
zhailiangliang 41c718edca Fix memory leak in PSP_CreateTexture 2022-10-10 22:36:55 -07:00
happyharryh 6f224e4d9f Made timestamp_us of sensor events increase monotonically for Nintendo controllers 2022-10-10 22:33:19 -07:00
Pierre Wendling 4227a0b4f3 Vita: Turn on SDL_WERROR in CI. 2022-10-10 22:31:16 -07:00
Pierre Wendling e99b05d6c4 Vita: Install bash in CI.
The wrapper `arm-vita-eabi-pkg-config` fails without it with the error:
`env: can't execute 'bash': No such file or directory`
2022-10-10 22:31:16 -07:00
Pierre Wendling fefd48eb9e PS2: Turn on SDL_WERROR in CI. 2022-10-10 22:31:16 -07:00
Pierre Wendling 8117bfe5d1 PS2: Ignore warnings from toolchain headers.
The `gsInline.h` header creates `Wdeclaration-after-statement` warnings.
2022-10-10 22:31:16 -07:00
Pierre Wendling 0472794609 PSP: Turn on SDL_WERROR in CI. 2022-10-10 22:31:16 -07:00
Pierre Wendling 5ddac7e026 PSP: Fix type mismatch warnings. 2022-10-10 22:31:16 -07:00
Pierre Wendling c1317175b4 PSP: Fix Wformat warnings. 2022-10-10 22:31:16 -07:00
Pierre Wendling 669532d529 PSP: Remove dead code.
Fixes unused variable warning.
2022-10-10 22:31:16 -07:00
Ryan C. Gordon 17322e2be6
dynapi: Optionally log every call into the SDL API.
This will only log things going through dynapi, which means it won't
do anything if dynapi is disabled for a given build, but also things
that call the `*_REAL` version of an API won't log either (which is
to say, if an internal piece of SDL calls a public API, it won't log
it, but if an application calls that same entry point, it will).

Since this just inserts a different function pointer, unless you
explicitly request this at runtime, it won't add any overhead, and,
of course, the entire thing can be turned off with a single #define
so it doesn't even add extra unused code to the shared library if
the kill switch is flipped.
2022-10-10 13:17:07 -04:00
Sam Lantinga 4507083503 Fixed build 2022-10-10 09:39:55 -07:00
Sam Lantinga 680d0f043a Added support for undefined or centered position for shaped windows
Fixes https://github.com/libsdl-org/SDL/issues/6359
2022-10-10 09:27:26 -07:00
Pierre Wendling b737833d3c N3DS: Turn on SDL_WERROR in CI. 2022-10-10 08:50:59 -07:00
Pierre Wendling 6784d84c9d N3DS: Fix -Wformat warnings in tests.
All warnings were about invalid specifiers. Since U/Sint32 is a long,
using `%d` emits a -Wformat warning.
2022-10-10 08:50:59 -07:00
Pierre Wendling 43a2b0b1e5 N3DS: Use macro to correct axis.
Using `(value * SDL max) / 3DS max` allows for marginally better
accuracy compared to `value * (SDL max / 3DS max)`.
2022-10-10 08:50:59 -07:00
Pierre Wendling 49c25b1daf N3DS: Fix PrivateSensorUpdate call.
A new timestamp parameter was added in 2c51874.
2022-10-10 08:50:59 -07:00
Pierre Wendling cb1972b3ba N3DS: ZL and ZR should be considered as triggers.
Previously they were considered as clicking stick.
2022-10-10 08:50:59 -07:00
Pierre Wendling 86a8714fea N3DS: Refactor joystick module to avoid globals. 2022-10-10 08:50:59 -07:00