Commit Graph

7308 Commits

Author SHA1 Message Date
David Gow db58166e9b joystick: hidapi: Properly include <unistd.h> when inotify not available
In the extremely unlikely event that inotify is not available (and,
therefore, HAVE_INOTIFY is not #defined), SDL will no-longer build.

This is because <unistd.h> is only included when HAVE_INOTIFY is
defined, and PR #4098 adds a call to access(…, F_OK), which requires
<unistd.h>.

(Note that the F_OK symbol is the only one which actually prevented
SDL from compiling, but both access() and close() fell back to implicit
definitions, which is a bit concerning.)

Fixes: 8d43f45a7b ("Don't use udev for joystick enumeration if running in a container")
2021-02-21 12:55:01 +03:00
Amir 360740ac76 correct dynapi 2021-02-20 23:05:09 -08:00
Amir 5696582e1d add SDL_AndroidShowToast for https://developer.android.com/reference/android/widget/Toast 2021-02-20 23:05:09 -08:00
Amir 1a924bc0bb add SDL_AndroidShowToast for https://developer.android.com/reference/android/widget/Toast 2021-02-20 23:05:09 -08:00
Ludovico de Nittis 8d43f45a7b Don't use udev for joystick enumeration if running in a container
If we are running in a container, like Flatpak[1] or pressure-vessel[2],
it's likely that we are using user namespaces,
therefore udev event notification via netlink won't work reliably.
Use their filesystem API to detect them and automatically fallback to
the inotify-based enumeration.

[1] <https://flatpak.org/>
[2]
<https://gitlab.steamos.cloud/steamrt/steam-runtime-tools/-/tree/master/pressure-vessel>

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2021-02-20 23:01:38 -08:00
Ludovico de Nittis 2c3269152a Use inotify for HIDAPI joystick enumeration if not using udev
This improves SDL's ability to detect HIDAPI joystick hotplug in a
container environment because we cannot reliably receive events from
udev in a container.

For a more detailed explanation of why this issue happens with
containers, please check the previous commit
"joystick: Use inotify to detect joystick unplug if not using udev"
(b0eba1c5).

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2021-02-20 23:01:38 -08:00
Ludovico de Nittis b17242bf98 Allow libudev for HIDAPI joystick to be disabled at runtime
As already explained in the previous commit "joystick: Allow libudev to
be disabled at runtime" (13e7d1a9), libudev can fail in a container.

To make it easier to experiment with, we add a new environment variable
"SDL_HIDAPI_JOYSTICK_DISABLE_UDEV" that disables udev and let it
fallback to the device enumeration using polling.

Signed-off-by: Ludovico de Nittis <ludovico.denittis@collabora.com>
2021-02-20 23:01:38 -08:00
Jay 0052339b66 Move handleURLEvent setEventHandler to init 2021-02-20 22:59:11 -08:00
Sam Lantinga 42607909a0 Remove devices from the list after they've been disconnected due to read errors.
This fixes problems with controllers not being re-detected when a computer goes to sleep and a controller is removed and plugged back in while it's asleep.
2021-02-20 22:51:57 -08:00
Oschowa 08547adb52 pulseaudio: Add "zerocopy" playback path 2021-02-20 12:50:36 -05:00
Ozkan Sezer a29fe29296 configury: replace host checks against *-*-mingw32* with *-*-mingw* 2021-02-18 20:10:50 +03:00
Ryan C. Gordon c4b7e485af docs: README.md points to Discourse instead of the mailing list now. 2021-02-18 11:10:20 -05:00
Ryan C. Gordon abe2c0f1b1 license: Fixed references to COPYING.txt that are now LICENSE.txt.
Fixes #4108
2021-02-18 11:07:26 -05:00
Romain Roffé ef85ed9352 pulseaudio: Initialize fragsize to fix mic recording
fragsize wasn't initialized, and it is used for recording.
If the value was 0 or -1, pulseaudio configures it itself. But sometimes
we can get a random (and large) value that makes pulseaudio give us
large sample at a very low frequency.

https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/master/src/pulse/def.h#L453
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/blob/v13.0/src/pulsecore/protocol-native.c#L409
2021-02-18 09:51:35 -05:00
Cacodemon345 0a58010c0d Fix README-kmsbsd.md Markdown display 2021-02-17 13:11:00 -05:00
Erik Yuzwa ffce58a30c
license: Fixing the license file to be correctly scooped up by Github automation
Renamed COPYING.txt to LICENSE.txt, and ensured the copyright year
is the first line in the license file. This causes GitHub to correctly
identify the zlib license and report it on SDL's project page.
2021-02-17 13:08:13 -05:00
Vanfanel e4a81a98a0 [KMSDRM] Correct indentation. 2021-02-17 17:03:42 +03:00
Cameron Cawley d79bc0015e Update the .gitignore file 2021-02-17 11:55:01 +03:00
Cameron Cawley 9323cd51f0 Check for ARM SIMD in testplatform 2021-02-17 11:10:02 +03:00
Cameron Cawley 98bf79cff1 Minor improvements for CPU detection on ARM 2021-02-17 11:10:02 +03:00
Matt Borgerson 4aa2e74844 Add Xbox Controller S entry to gamecontrollerdb 2021-02-16 10:15:44 -08:00
Cacodemon345 350e0ae1fd Add documentation for KMSDRM on *BSDs 2021-02-15 15:24:52 -05:00
Ozkan Sezer f2a2d0c696 SDL_render_d3d.c: fix build with SDL_LEAN_AND_MEAN 2021-02-15 22:56:20 +03:00
Ozkan Sezer bd4277ee39 fixed make dist (VisualC.html went bye bye..) 2021-02-15 20:10:50 +03:00
Alex Szpakowski 09231c42ea Fix flags check in test code 2021-02-15 08:43:53 -08:00
Alex Szpakowski 9b9d0d484d mac/iOS: allow Metal in windows created without an explicit backend
Fixes SDL_CreateWindowAndRenderer (and similar situations) not choosing a Metal backend. See #3991.

Passing an explicit backend into CreateWindow, eg SDL_WINDOW_OPENGL or SDL_WINDOW_METAL, will still prevent the window from being used with other backend types.
2021-02-15 08:43:53 -08:00
erik yuzwa 9c1871c144 update path to visualc README 2021-02-15 08:35:13 -08:00
erik yuzwa 92506462e2 update some copy 2021-02-15 08:35:13 -08:00
erik yuzwa be17004e67 updated some notes around using a newer IDE 2021-02-15 08:35:13 -08:00
erik yuzwa 7f1b833373 initial work 2021-02-15 08:35:13 -08:00
Ozkan Sezer a2fbc452ca replace i386 checks with __i386__ 2021-02-15 03:02:32 +03:00
Cacodemon345 cf15faae68 Change "memset" to "SDL_zero" 2021-02-14 13:54:08 -05:00
Cacodemon345 c5f9e061b5 Disable FreeBSD console mouse when initializing evdev input
Enable it again after quitting evdev input.
2021-02-14 13:54:08 -05:00
Alex Szpakowski d4d32833f4 macOS: Fix Xcode project when deployment target is > 10.7
SDL_mfijoystick.m requires ARC, but the Xcode project's macOS targets weren't compiling the file with ARC enabled.
2021-02-14 13:51:34 -05:00
Ozkan Sezer b34d92bf37 further .gitignore updates 2021-02-14 11:56:40 +03:00
Ozkan Sezer 0d92507d71 regenerated configure 2021-02-14 11:55:50 +03:00
Ozkan Sezer 2faa478325 further .gitignore updates 2021-02-14 11:55:24 +03:00
Ryan C. Gordon a6388cf2ca
Add the usual "vi" comment to the end of pre-push-hook. 2021-02-13 23:02:26 -05:00
Misa 3da58b47f6 Fix errors with fallback impls of SDL_isxdigit() and SDL_ispunct()
SDL_isxdigit() should only accept A-Fa-f, not A-Za-z (it shouldn't use
SDL_isalpha()).

SDL_ispunct() shouldn't accept spaces (it should use SDL_isgraph()
instead).
2021-02-13 19:30:24 -05:00
Joshua Saxby fe6f62e6ce Add ALIAS targets to all installed SDL2 targets
This provides a linking interface that matches the one available when `find_package()` is used, by aliasing all of SDL's public targets into the SDL2:: namespace. Thus, dependees link to the same-named targets regardless of how SDL was acquired.
This approach permits the use of wrappers around CMake's FetchContent API such as https://github.com/cpm-cmake/CPM.cmake
2021-02-13 11:43:35 -08:00
Misa dfe219ec71 Add all missing "is characteristic" stdlib functions
SDL has been missing a bunch of these 'isX' functions for some time,
where X is some characteristic of a given character.

This commit adds the rest of them to the SDL stdlib, so now we have:
- SDL_isalpha()
- SDL_isalnum()
- SDL_isblank()
- SDL_iscntrl()
- SDL_isxdigit()
- SDL_ispunct()
- SDL_isprint()
- SDL_isgraph()
2021-02-13 11:42:13 -08:00
Cacodemon345 88f1c2c1b0 Replace "echo -en" with "printf" in autoconf script
Fixes summary output on FreeBSD.
2021-02-13 11:41:42 -08:00
Ozkan Sezer 67a9d6ba98 updates to .gitignore 2021-02-13 20:50:24 +03:00
erik yuzwa 3937eefcfb a draft for a pull_request template 2021-02-13 11:58:09 -05:00
Charlie Birks 1a48ca666f emscripten: Create directory recursively in GetPrefPath 2021-02-13 11:56:01 -05:00
Stephan Vedder fa367cdd5c emscripten: Fix alt key being a nav key 2021-02-13 11:56:01 -05:00
Alon Zakai 20be1d634b emscripten: Automatically resume audio contexts
This uses the mechanism added in emscripten-core/emscripten#10843
which was applied to SDL1 and OpenAL. This adds the same for SDL2.

This also reverts commit 865eaddffed50dbd13e6564c3f73902472cf74e8
which did something similar, but the new mechanism is more effective.
2021-02-13 11:56:01 -05:00
Charlie Birks edaf3f9c9c emscripten: Extend the "nav key" blacklist
Add the F keys and Ctrl/Alt+*. Consistent with other naviagtion
disabling. Also, none of these generate keypress events anyway.
2021-02-13 11:56:01 -05:00
Erik Yuzwa 82a96afa70
Update wiki.libsdl.org urls to libsdl-org/SDL/wiki (#4069) 2021-02-13 11:49:31 -05:00
erik yuzwa 5cbe62eac0 ignore vs2019 meta folder 2021-02-13 14:27:20 +03:00