Ryan C. Gordon
c39fd5777d
jack: Move jack_client_t into the audio device instead a global variable.
2017-06-09 00:14:50 -04:00
Ryan C. Gordon
b65e0777ce
jack: Remove BROKEN_MULTI_DEVICE code.
2017-06-08 22:20:49 -04:00
Ryan C. Gordon
d9039f2396
jack: Initial shot at a JACK audio target.
...
http://jackaudio.org/
Fixes Bugzilla #2163 .
(with several more commits following to improve this code.)
2017-06-08 13:27:58 -04:00
Philipp Wiesemann
871d43a839
Removed unused hint includes.
2017-06-08 22:40:09 +02:00
Ryan C. Gordon
9288983682
Merged Eric Wing's overscan patch.
...
Fixes Bugzilla #2799 .
2017-06-06 14:06:40 -04:00
Olli Kallioinen
11289b766f
Android cmake build fixed to work with the official android gradle plugin
2017-06-04 21:25:57 +03:00
Ryan C. Gordon
6d661cab7b
windows: Change the default on SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING.
...
It's easier for Visual Studio users that want this information to turn it on
or live without it, than it is to explain why every debugger that isn't Visual
Studio crashes out here. Eventually SetThreadDescription() will be the thing
everyone uses anyhow.
Fixes Bugzilla #3645 .
(and several others).
2017-06-06 13:12:43 -04:00
Ryan C. Gordon
d844487799
windows: Fix compiling of XInput code on newer MinGW installs.
...
Fixes Bugzilla #3609 .
2017-06-06 12:35:35 -04:00
Ryan C. Gordon
599d9ba198
emscripten: listen for pointerlockchange events on the #document specifically.
2017-06-05 21:30:25 -04:00
Philipp Wiesemann
4b47fa38c3
Removed duplicate includes.
2017-06-04 23:15:47 +02:00
Philipp Wiesemann
52b7d0eb23
android: Fixed missing error message for SDL_GetBasePath().
2017-06-04 23:15:27 +02:00
Philipp Wiesemann
248410dded
Fixed SDL_GL_SetSwapInterval() returning success on two unsupported platforms.
2017-06-04 23:15:13 +02:00
Philipp Wiesemann
2113208d98
haiku: Fixed missing title bar for windows with decorations.
...
B_BORDERED_WINDOW_LOOK has a border but no title bar.
2017-06-03 23:00:50 +02:00
Philipp Wiesemann
fc436a3a9d
android: Moved internal function to new position.
...
It was grouped with functions for the public system header.
2017-06-03 23:00:40 +02:00
Philipp Wiesemann
63b3e06f75
Corrected names of header file guards.
2017-06-03 23:00:15 +02:00
Philipp Wiesemann
07b0df0a22
haiku: Changed internal variable to be static.
2017-06-02 22:15:37 +02:00
Philipp Wiesemann
00394996eb
Fixed crash if calling SDL_CreateShapedWindow() on unsupported platforms.
2017-06-02 22:15:12 +02:00
Bastien Bouclet
545fba7886
x11: Don't send duplicate events when reconciling the keyboard state
...
Failing to check if a key was known to be pressed by SDL was causing
SDL_SendKeyboardKey to send duplicate key pressed events with the repeat
property set to true.
Fixes Bugzilla #3637 .
2017-04-22 19:53:52 +02:00
Ryan C. Gordon
b135557df9
linux: Don't crash if fcitx support is requested but unavailable.
...
Fixes Bugzilla #3642 .
2017-05-29 02:48:51 -04:00
Ryan C. Gordon
29a047df39
Fixed whitespace code style.
2017-05-29 00:51:38 -04:00
Ryan C. Gordon
1c5f483a8a
linux: removed IBus_utf8_strlen(), use SDL_utf8strlen() instead.
2017-05-29 00:51:02 -04:00
Ryan C. Gordon
a1faea980c
fcitx: removed incompatibly-licensed code.
2017-05-29 00:54:08 -04:00
Ryan C. Gordon
d4086e4a70
stdlib: added SDL_utf8strlen().
2017-05-29 03:01:05 -04:00
Philipp Wiesemann
fc510bd798
nacl: Fixed crash if allocating memory for audio device failed.
2017-05-28 21:50:47 +02:00
Philipp Wiesemann
7c5078d8bd
qnx: Removed unnecessary check for available audio devices.
2017-05-28 21:50:37 +02:00
Philipp Wiesemann
1e60ea76db
qnx: Removed unnecessary call to SDL_zerop() after SDL_calloc().
2017-05-28 21:50:27 +02:00
Philipp Wiesemann
1b9dc59918
haiku: Fixed SDL_SetClipboardText() putting random data in clipboard.
2017-05-28 21:50:11 +02:00
Ryan C. Gordon
de52dc2948
haiku: Correctly set keyboard focus (thanks, Kai!).
...
The message sent upon the window being activated or deactivated, to trigger
the call to SDL_SetKeyboardFocus was missing a mandatory parameter. So
keyboard focus was never properly set.
Fixes Bugzilla #3658 .
2017-05-28 15:36:09 -04:00
Ryan C. Gordon
643f1cb73d
power: Add Linux org.freedesktop.UPower D-Bus implementation.
...
Fixes Bugzilla #3485 .
(I think.)
2017-05-28 07:14:11 -04:00
Ryan C. Gordon
b3f94acbf9
linux: Simplify D-Bus interface, remove lots of boilerplate.
2017-05-28 07:11:52 -04:00
Ryan C. Gordon
191f578b57
linux: Make system D-Bus connection available (in addition to session).
2017-05-28 07:08:10 -04:00
Ryan C. Gordon
e5918acf46
wasapi: properly report init failure if on pre-Vista version of Windows.
...
We really should change the Init interface to return 0 on success and -1 on
error, like everything else, to avoid this sort of confusion.
2017-05-28 00:41:55 -04:00
Philipp Wiesemann
604a4b1b30
haiku: Fixed SDL_SetClipboardText() allocating too much memory and cutting text.
...
It allocated pointers instead of chars and passed a wrong size to SDL_strlcpy().
2017-05-27 23:30:21 +02:00
Philipp Wiesemann
3639895eac
Removed unused errno includes.
2017-05-27 23:30:07 +02:00
Ryan C. Gordon
6fbde875e2
code style: wrap a single-statement if in braces.
2017-05-27 00:33:26 -04:00
Ryan C. Gordon
3fbd21ce40
windows: msgboxes should specify a parent HWND if possible (thanks, Ismael!).
...
This lets them be properly modal.
Fixes Bugzilla #3650 .
2017-05-27 00:30:06 -04:00
Philipp Wiesemann
90ed3daa3e
Changed messages about not recognized keys to include discourse link.
2017-05-26 22:45:52 +02:00
Philipp Wiesemann
759319729c
emscripten: Fixed compiling on C89 compilers.
2017-05-26 22:45:40 +02:00
Philipp Wiesemann
1e13d93fea
directfb: Changed internal function to be static.
2017-05-25 23:01:34 +02:00
Philipp Wiesemann
189b5851b7
android: Fixed parameter list in function definitions.
2017-05-25 23:01:16 +02:00
Philipp Wiesemann
6c0aea4270
wayland: Fixed freeing memory of SDL_malloc() with plain free().
2017-05-25 23:00:58 +02:00
Philipp Wiesemann
c66f0471e1
Removed unused internal window shape functions.
2017-05-25 23:00:43 +02:00
Ryan C. Gordon
a7fc2822d4
audio: rename bsd target to netbsd.
...
Apparently this is no longer a generic BSD audio target, and hasn't been for
years, so rename it for NetBSD.
2017-05-24 19:56:59 -04:00
Ryan C. Gordon
6844d92c23
coreaudio: we don't need to track number of allocated audio buffers anymore.
...
CoreAudio takes care of iterating through the buffers and freeing them now,
so we don't have to manage this ourselves.
2017-05-24 13:28:13 -04:00
Ryan C. Gordon
fc4402e5ff
coreaudio: Better handling of audio buffer queue management.
...
We don't fill buffers just to throw them away during shutdown now, we let the
AudioQueue free its own buffers during disposal (which fixes possible warnings
getting printed to stderr by CoreAudio), and we stop the queue after running
any queued audio during shutdown, which prevents dropping the end of the
audio playback if you opened the device with an enormous sample buffer.
Fixes Bugzilla #3555 .
2017-05-24 13:25:31 -04:00
Charlie Birks
126e5a1dbf
Emscripten: Prevent default on arrow keys
2017-05-24 14:04:39 +01:00
Patrick Monaghan
f839b209b9
Emscripten: fixed incorrect conversion of touch motion events to mouse motion events
2017-05-24 14:04:25 +01:00
Ryan C. Gordon
3fd35f6bb0
coreaudio: looks like we need more like a 10ms buffer minimum, not 50ms.
2017-05-24 01:28:03 -04:00
Ryan C. Gordon
793c788b1c
coreaudio: dynamically allocate AudioQueueBuffers.
...
We need more than two buffers to flip between if they are small, or CoreAudio
won't make any sound; apparently it needs X milliseconds of audio queued when
it needs to play more or it drops any queued buffers. We are currently
guessing 50 milliseconds as a minimum, but there's probably a more proper
way to get the minimum time period from the system.
Fixes Bugzilla #3656 .
2017-05-24 00:12:22 -04:00
Philipp Wiesemann
bf8ccf08bb
Removed redundant mouse clean up on quit for some platforms.
...
SDL_MouseQuit() already frees cursors and sets fields to NULL.
2017-05-19 23:30:59 +02:00
Ryan C. Gordon
e889757bb3
assert: Better Emscripten support.
...
(Better than nothing, that is.)
Fixes Bugzilla #3459 .
2017-05-19 14:51:03 -04:00
Ryan C. Gordon
8917f8634d
assert: allow assertions to work on platforms without threads.
...
Partially fixes Bugzilla #3459 .
2017-05-19 12:54:17 -04:00
Ryan C. Gordon
91e6054b03
wasapi: don't mark capture devices as failed for AUDCLNT_S_BUFFER_EMPTY.
...
Fixes Bugzilla #3633 .
2017-05-19 12:40:55 -04:00
Ryan C. Gordon
02773811b3
render: GL_DestroyRender() should activate first.
...
Otherwise, we might destroy a different GL context's resources.
2017-05-18 21:00:11 -04:00
Ryan C. Gordon
cff9e5a876
test: info now reports usable display bounds and DPI (thanks, Eric!).
...
Fixes Bugzilla #3652 .
2017-05-18 16:29:10 -04:00
Ryan C. Gordon
81ab6c98fd
Patched to compile on Windows.
2017-05-18 16:27:36 -04:00
Ryan C. Gordon
13b6d9959a
wasapi: Replace tabs with strings in source code.
2017-05-18 15:46:06 -04:00
Ryan C. Gordon
adabc38439
wasapi: Deal with AUDCLNT_S_BUFFER_EMPTY when flushing audio device.
2017-05-18 15:43:51 -04:00
Ryan C. Gordon
4073a6694f
audio: One more callbackspec fix (thanks, Simon!).
2017-05-18 15:33:17 -04:00
Sam Lantinga
772407627b
Fixed restoring a window that was maximized then minimized, then restored.
2017-05-16 17:48:57 -07:00
Sam Lantinga
ccf0566ca4
SDL - add SDL_WINDOW_VULKAN and make Android_CreateWindow only create an EGLSurface when SDL_WINDOW_VULKAN is not present. This makes it so the ANativeWindow* can be used with vkCreateAndroidSurfaceKHR, otherwise it will fail because having both an EGLSurface and VkSurfaceKHR attached to a window is not allowed according to the Vulkan spec:
...
"In particular, only one VkSurfaceKHR can exist at a time for a given window. Similarly, a native window cannot be used by both a VkSurfaceKHR and EGLSurface simultaneously"
CR: SamL
2017-05-16 06:30:39 -07:00
Philipp Wiesemann
df4cf79d42
directfb: Fixed compiler warnings about undefined functions.
2017-05-13 23:00:53 +02:00
Philipp Wiesemann
29222db7f6
emscripten: Fixed not removing pointer lock event callback.
2017-05-13 23:00:35 +02:00
Philipp Wiesemann
cc5b4f450a
emscripten: Changed internal functions to be static.
2017-05-12 23:01:17 +02:00
Philipp Wiesemann
ce01128adf
Fixed warnings about shadowed global variable.
...
Found by buildbot.
2017-05-12 23:01:04 +02:00
Philipp Wiesemann
87e0d812dd
directfb: Removed duplicate comment.
2017-05-12 23:00:40 +02:00
Philipp Wiesemann
61c326e12b
directfb: Fixed typo in log message.
2017-05-11 23:00:39 +02:00
Philipp Wiesemann
75c0d1ef6d
directfb: Fixed compiler warnings about unused variables.
2017-05-11 23:00:21 +02:00
Ryan C. Gordon
c878b59bbe
audio: fixed more "spec" references that should have been "callbackspec".
...
This should catch all the ones for audio targets that have provided their
own audio threads.
2017-05-10 16:18:43 -04:00
Sam Lantinga
8b7ae35356
Fixed build error on Linux
2017-05-09 03:19:58 -07:00
Sam Lantinga
9ac3bb7011
Added support for mixing Qt and SDL on iOS
...
You should call SDL_SetMainReady(), and then customize the QIOSApplicationDelegate like this, in your application code:
/* Additional support for applications mixing Qt and SDL */
@interface QIOSApplicationDelegate : UIResponder <UIApplicationDelegate>
@end
extern "C"
{
void SDL_OnApplicationWillResignActive();
void SDL_OnApplicationDidEnterBackground();
void SDL_OnApplicationWillEnterForeground();
void SDL_OnApplicationDidBecomeActive();
}
@interface QIOSApplicationDelegate (SDL)
- (void)applicationWillResignActive:(UIApplication*)application;
- (void)applicationDidEnterBackground:(UIApplication*)application;
- (void)applicationWillEnterForeground:(UIApplication*)application;
- (void)applicationDidBecomeActive:(UIApplication*)application;
@end
@implementation QIOSApplicationDelegate (SDL)
- (void)applicationWillResignActive:(UIApplication*)application
{
SDL_OnApplicationWillResignActive();
}
- (void)applicationDidEnterBackground:(UIApplication*)application
{
SDL_OnApplicationDidEnterBackground();
}
- (void)applicationWillEnterForeground:(UIApplication*)application
{
SDL_OnApplicationWillEnterForeground();
}
- (void)applicationDidBecomeActive:(UIApplication*)application
{
SDL_OnApplicationDidBecomeActive();
}
@end // QIOSApplicationDelegate
2017-05-09 10:10:42 -07:00
Philipp Wiesemann
60f2848421
haiku: Fixed crash on quit if max number of joysticks was connected.
2017-05-07 21:02:46 +02:00
Philipp Wiesemann
b7b919078f
haiku: Changed internal function to be static.
2017-05-07 21:02:31 +02:00
Philipp Wiesemann
3ed2f0ca10
haiku: Fixed unlocking clipboard twice.
2017-05-07 21:02:16 +02:00
Philipp Wiesemann
4466b93141
haiku: Fixed comment.
2017-05-06 21:46:11 +02:00
Philipp Wiesemann
34747107fe
mir: Fixed memory leak if system cursor id is unknown.
2017-05-06 21:46:00 +02:00
Philipp Wiesemann
34d9c5213c
emscripten: Fixed return type in event callback declaration.
2017-05-06 21:45:43 +02:00
Alex Szpakowski
75fb07a6d2
iOS: Only mark interrupted audio devices as non-interrupted if AudioQueueStart is successful.
2017-05-03 18:05:29 -03:00
Ryan C. Gordon
ce2998b8b9
cocoa: Don't crash on messagebox keypress without a successful SDL_Init().
2017-05-02 21:46:28 -04:00
Ryan C. Gordon
619ab7a22d
haiku: Various fixes from haikuports.
...
Based on patch here:
https://github.com/haikuports/haikuports/blob/master/media-libs/libsdl2/patches/libsdl2-2.0.5.patchset
2017-05-01 18:39:05 -04:00
Philipp Wiesemann
444c47a1b8
windows: Changed six internal functions to be static.
2017-04-29 22:50:35 +02:00
Sam Lantinga
d7cd653737
Added Steam Controller mappings for Linux and iOS
2017-04-27 15:52:37 -07:00
Ryan C. Gordon
226541cb5b
audio: another wrong struct that causes NULL pointer crash (thanks, Simon!).
...
Fixes Bugzilla #3632 .
2017-04-26 01:43:40 -04:00
Joshua Granick
1286a7d23e
windows: Add SDL_WINDOW_ALWAYS_ON_TOP support.
2017-04-20 21:31:44 -04:00
Juha Kuikka
7382cebb41
audio: Fix audio queue functions to use new spec structure.
...
Using the old spec structure causes the audio queueing functions to fail
due to bad callback pointers being checked.
2017-04-20 21:25:29 -04:00
Ryan C. Gordon
93a6191cdc
emscripten: keep track of pointer lock losses and maybe regrab pointer later.
...
If an Emscripten app is in relative mouse mode and the user presses Escape
(or whatever is appropriate), then the pointer lock is broken by the browser.
This keeps track of those losses, and next time the user presses a mouse
button down on the canvas, if the app is still meant to be in relative mouse
mode, we will attempt to regrab the pointer.
This makes it much more seamless for things like first-person shooters, and
the app doesn't need any manual intervention.
2017-04-20 13:00:54 -04:00
Sam Lantinga
d20d426c3a
Fix crash in SDL audio thread, by Juha Kuikka
...
Wrong audio spec structure was populated with the internal callback, causing the audio thread to call a NULL pointer.
2017-04-18 22:17:40 -07:00
Ryan C. Gordon
1d1a0d7f03
atomic: Patched to compile on Android.
2017-04-13 15:28:56 -04:00
Ryan C. Gordon
1c9c7633d9
atomic: favor compiler intrinsics for compare-and-swap over macOS APIs.
...
The OSAtomicCompareAndSwap* APIs are deprecated as of macOS 10.12.
2017-04-13 13:28:52 -04:00
Ryan C. Gordon
8c00de57f6
atomic: let Clang always use atomic_load_n if available.
...
(Apple's Clang reports itself as GCC 4.2.1 in preprocessor macros--the final
GNU C compiler Apple shipped--as of the macOS 10.12 SDK.)
2017-04-13 13:22:23 -04:00
Philipp Wiesemann
2bf79c2e0e
mir: Fixed typo in error messages.
2017-04-09 23:00:54 +02:00
Philipp Wiesemann
f6eb23a617
linux: Changed two variables to be static.
2017-04-09 23:00:42 +02:00
Sam Lantinga
27023ed2b3
Added support for the Cyborg V.3 Rumble Pad and the Mad Catz FightPad PRO
2017-04-07 03:39:43 -07:00
Sam Lantinga
1eb92f6342
Implemented Linux joystick blacklist
...
Based on https://raw.githubusercontent.com/denilsonsa/udev-joystick-blacklist/master/generate_rules.py
This fixes a few devices that are not actually joysticks showing up as such in SDL
2017-04-06 06:30:43 -07:00
Drew Bliss
a4dbf56574
Fix divide-by-zero when videodata->ime_candpgsize is zero. We're seeing this happen in Dota in the wild.
2017-04-06 13:27:51 -07:00
Drew Bliss
66555f6115
SDL - attempt to fix https://github.com/ValveSoftware/Dota-2/issues/1199 of mouse not locking in Dota. This fix is proposed by Ryan Gordon (increase timeout in X11_SetWindowGrab from 250ms to 5000ms). I'm going to integrate to source2 and ship it to dota customers. If it works, SamL will upsteam it to SDL.
2017-04-06 13:27:48 -07:00
Sam Lantinga
53f3786bc0
Added support for a number of game controllers, including the Nintendo Switch Pro Controller
2017-04-04 08:43:44 -07:00
Sam Lantinga
5789da67cf
Fixed bug 1859 - No SDL_VIDEORESIZE event generated when the window manager sets the window size.
...
Samuel Hopkins
Just confirming that the patch from Andreas (attachment 1715 [details]) works for me under SDL 2.0.3 with xmonad.
Stas Sergeev
Confirming that the patch in this ticket fixes the full-screen switching for dosemu2 on ubuntu-16.04. Note that I am not using xmonad, so this bug appears to be generic.
2017-04-03 13:32:53 -07:00
Philipp Wiesemann
1517ba7285
PSP: Fixed error messages.
2017-04-02 21:33:54 +02:00
Philipp Wiesemann
f96cdca4e7
Mir: Changed two internal functions to be static.
2017-04-02 21:33:42 +02:00
Ryan C. Gordon
c57fe6d78a
Backing out broken change from previous commit.
2017-04-01 00:46:42 -04:00
Ryan C. Gordon
ed7f16e227
Intentionally breaking buildbot to test email server change.
2017-04-01 00:46:15 -04:00
Sam Lantinga
7891e72dca
__atomic_load_n() appears to be available in GCC 5 but not GCC 4
2017-03-30 06:52:34 -07:00
Ryan C. Gordon
028716e79f
wasapi: deal with default device changes, and more robust failure recovery.
2017-03-30 16:33:47 -04:00
Ryan C. Gordon
c85c57a05d
wasapi: Handle lost audio device endpoints.
...
This gracefully recovers when a device format is changed, and will switch
to the new default device if the current one is unplugged, etc.
This does not handle when a new default device is added; it only notices
if the current default goes away. That will be fixed by implementing the
stubbed-out MMNotificationClient_OnDefaultDeviceChanged() function.
2017-03-29 14:23:39 -04:00
Ryan C. Gordon
f2179944cc
Patched to compile on some platforms.
2017-03-29 12:04:17 -04:00
James Legg
1dc9ae5c1e
Use GCC's atomic loads in SDL_AtomicGet and SDL_AtomicGetPtr
...
This fixes errors reported by address sanitizer, and generates simpler
code on x86 architectures.
2017-03-29 15:48:22 +01:00
Philipp Wiesemann
266816b4aa
Removed newlines from error messages.
2017-03-26 21:00:19 +02:00
Sam Lantinga
00da0824f5
Updated axis/button mapping for Dualshock 3, for upcoming Sony driver changes
2017-03-23 13:53:09 -07:00
Brandon Schaefer
c35f46d03c
mir: Set the max/min w/h vs just setting the window w/h
2017-03-18 13:57:57 -07:00
Sam Lantinga
22161480ee
Compile fix for android.
...
"ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]"
Moving some variable declarations to the top of Android_SetScreenResolution()
2017-03-14 07:22:08 -07:00
Sam Lantinga
6814f5dbc0
ALSA driver improvements:
...
* alsa hotplug thread is low priority
* give a chance for other threads to catch up when audio playback is not progressing
* use nonblocking for alsa audio capture
There is a bug with SDL hanging when an audio capture USB device is removed, because poll never returns
2017-03-14 07:20:14 -07:00
Sam Lantinga
c4d54504fa
differentiate between capture / playback audio thread names
2017-03-14 07:16:56 -07:00
Sam Lantinga
763e138903
Added an API to get the joystick instance ID before opening the device: SDL_JoystickGetDeviceInstanceID()
2017-03-09 16:09:16 -08:00
Sam Lantinga
c1802ef646
Fixed compile error with gcc -std=c99
2017-03-06 21:25:06 -08:00
Philipp Wiesemann
72fdf62980
Mir: Fixed crash if creating default cursor failed.
...
Found by Cppcheck.
2017-03-04 23:05:32 +01:00
Philipp Wiesemann
42d02890f4
Linux: Fixed error message.
2017-03-04 23:05:11 +01:00
Ryan C. Gordon
6aa17426a6
video: Don't compile isAtLeastGL3() if we don't have OpenGL support _at all_.
2017-03-03 16:38:45 -05:00
Ryan C. Gordon
ca0bf151d5
Fix some more compiler warnings on armcc.
2017-03-03 16:38:17 -05:00
Ryan C. Gordon
d526b8a1e9
Some patches to make SDL compile with armcc (ARM's C compiler).
2017-03-02 13:33:04 -05:00
Brandon Schaefer
94a69443c7
mistake: Revert the files that I did not mean to commit
2017-03-01 15:05:54 -08:00
Brandon Schaefer
7bbb13ea59
* Some refactoring and bug fixes. Thanks Micha? Kuchta!
2017-03-01 14:50:59 -08:00
Ryan C. Gordon
bc8778854e
raspberrypi: RPI_Destroy() should free the SDL_VideoDevice and its driverdata.
2017-02-28 19:48:52 -05:00
Brandon Schaefer
5a47ee0365
mir: Get ready for Mir 1.0, clean up deprecations. Thanks Micha? Kuchta!
2017-02-27 12:20:16 -08:00
Philipp Wiesemann
e5d9b25d8c
Fixed comment style.
2017-02-26 21:20:39 +01:00
Ryan C. Gordon
a4249b48ee
Patched to compile on C89 compilers.
2017-02-26 00:56:13 -05:00
Ryan C. Gordon
3b9e4d0a6c
audio: Try to keep callbacks firing at normal pace when device is lost.
2017-02-26 00:39:22 -05:00
Ryan C. Gordon
07519a6b95
Removed a bunch of unnecessary #ifdefs.
2017-02-26 00:40:04 -05:00
Ryan C. Gordon
a366c35f37
audio: run the audio callback even if device was lost.
...
We will throw away the data anyhow, but some apps depend on the callback
firing to make progress; testmultiaudio.c, if nothing else, is an example
of this.
Capture also will now fire the callback in these conditions, offering nothing
but silence.
Apps can check SDL_GetAudioDeviceStatus() or listen for the
SDL_AUDIODEVICEREMOVED event if they want to gracefully deal with
an opened audio device that has been unexpectedly lost.
2017-02-26 00:12:33 -05:00
Ryan C. Gordon
5728cb2025
audio: Make sure the disk and dummy targets are the last ones we try to init.
2017-02-26 00:10:02 -05:00
David Ludwig
b13c443cd8
WinRT: removed buildbot debug code, pending further research
2017-02-24 20:49:14 -05:00
David Ludwig
f7bfa3b79e
WinRT: more buildbot debug code
2017-02-24 20:19:28 -05:00
David Ludwig
ecb1eb823e
WinRT: added code to help debug a buildbot error
2017-02-24 19:59:57 -05:00
Sam Lantinga
71a4e8ed13
Stop CoreAudio from doing expensive audio rate conversion
2017-02-23 12:10:02 -08:00
Sam Lantinga
a9762551cd
Added config for the Razer Wildcat on Mac OS X
2017-02-20 11:02:35 -08:00
Philipp Wiesemann
cfcec57f42
Fixed comment.
2017-02-19 21:05:09 +01:00
Sam Lantinga
9428ff19a9
Added support for the Razer Wildcat on Linux
2017-02-17 17:46:58 -08:00
Charlie Birks
0d647d35b0
Emscripten: implement custom cursors
2017-02-17 10:13:17 +00:00
Charlie Birks
33bddcfda2
Emscripten: refactor cursor handling
2017-02-17 10:13:12 +00:00
Charlie Birks
613955b4f2
Emscripten: only update pixel ratio if HiDPI is enabled
2017-02-17 10:13:07 +00:00
Ryan C. Gordon
e8677a1bd2
audio: Added basic WAVE_FORMAT_EXTENSIBLE support to .wav loader.
...
This is just enough to get you through a file that just used the extended
header for float or int data. It doesn't handle all the other things that
you expect from this header, like 24-bit samples inside a 32-bit container
or speaker masks.
2017-02-17 02:25:37 -05:00
Ryan C. Gordon
1ed41d6d0d
Patched to compile on Windows.
2017-02-14 03:12:09 -05:00
Ryan C. Gordon
6046fd4cb0
wasapi: Initial WASAPI support, for Windows Vista and later.
...
This should remain binary compatible with Windows XP, as we dynamically
load anything we need and fall back to DirectSound/WinMM/XAudio2 if not
available.
2017-02-14 03:03:27 -05:00
Ryan C. Gordon
c93bca489d
stdlib: Fixed crash on SDL_snprintf("%s", NULL).
...
Like other C runtimes, it should probably produce the string "(null)".
This bug probably only affected Windows, as most platforms use their standard
C runtime's snprintf().
2017-02-14 02:49:08 -05:00
Ryan C. Gordon
d1eb2d190d
thread: Don't use SetThreadDescription on WinRT right now.
...
Can't LoadLibrary for it, but not sure if it's actually available there yet.
2017-02-13 17:05:14 -05:00
Ryan C. Gordon
70c0400b12
windows: Try to unify all the GUID comparison code into a core helper function.
...
There are likely several more I missed.
2017-02-13 17:00:46 -05:00
Ryan C. Gordon
e5fc93baca
audio: Don't wrap bootstrap declarations in preprocessor macros.
...
They are harmless and ignored if we don't actually link against them. The
preprocessor checks elsewhere if they're actually used.
2017-02-13 16:59:02 -05:00
Ryan C. Gordon
ad9c702f6a
audio: SDL_AudioStream's *_sample_frame_size should be in bytes, not bits.
...
Fixes failures where SDL_AudioStreamGet() incorrectly thinks it got a partial
sample frame request.
2017-02-13 16:56:41 -05:00
Ryan C. Gordon
175f1e8f4a
audio: Added a ThreadDeinit() method to match ThreadInit.
...
Not used by any targets at the moment, but will be shortly!
2017-02-13 16:55:00 -05:00
Sam Lantinga
886736a2c8
Fixed bug 3584 - Small stack size for audio callback thread
...
Walter van Niftrik
We have found that since SDL 2.0.5 the audio callback thread is created with a very small stack size. In our application this is leading to stack overflows.
We believe there is a bug at http://hg.libsdl.org/SDL/file/391fd532f79e/src/audio/SDL_audio.c#l1132 , where the is_internal_thread flag appears to be inverted.
2017-02-11 16:38:16 -08:00
Sam Lantinga
cf31ea1478
Fixed bug 3583 - X11 touch device can be permanently lost
...
Volumetric
In X11 the SDL error "Unknown touch device" can occur after which the application stops recognizing touch events. For a kiosk-type application this results in a hang as far as the user is concerned. This is reproducible on HP Z220/Z230/Z240 workstations by swapping USB cables for a while and it also occurs with no physical changes, probably due to USB device power management. A workaround is to make SDL re-enumerate the touch devices like it does at startup. A patch is attached.
2017-02-11 11:14:48 -08:00
Sam Lantinga
06ccb71bcd
Make sure the memory barrier functions are always available, and now they are implemented on Android __ARM_ARCH_5TE__
2017-02-10 11:21:15 -08:00
Sam Lantinga
9171f71dbe
Fixed warning in Android build
2017-02-10 09:41:16 -08:00
Sam Lantinga
107c19daad
Log the error returned by XAudio2Create()
2017-02-09 06:01:14 -08:00
Philipp Wiesemann
8eee82cd84
Windows: Fixed warning about unused variable.
...
Found by buildbot.
2017-02-03 23:30:43 +01:00
Philipp Wiesemann
33ff5bd148
Fixed typo in log message.
2017-02-03 23:30:29 +01:00
Sam Lantinga
8f78f5bb94
Fixed build on Apple TV
2017-02-02 16:56:02 -08:00
Sam Lantinga
710ae62a79
Remember XInput controllers that we've already seen, so when the raw device list changes we don't assign the old device to the new XInput userid.
...
This isn't perfect, but at least we won't report the same device twice.
2017-02-02 17:33:40 -08:00
Sam Lantinga
da30992d47
Fixed bug 3577 - Can't set minimal size (message box appears instead) if maximal size wasn't declared (i.e. unlimited)
2017-02-02 00:41:58 -08:00
Sam Lantinga
be28d7c88c
Added support for the Saitek Pro Flight X-56 Rhino
2017-01-31 12:30:55 -08:00
Sam Lantinga
6717a3d38d
Added support for the HOTAS Warthog throttle
2017-01-31 12:23:29 -08:00
Sam Lantinga
a156b0d994
Added the HOTAS Warthog as a flight stick
2017-01-31 10:20:09 -08:00
Sam Lantinga
800a72eb17
Switch stderr output to SDL_Log() so it shows up on Windows and mobile devices
2017-01-31 10:19:56 -08:00
Sam Lantinga
52e9c42df9
Fixed Windows build
2017-01-28 14:35:35 -08:00
Sam Lantinga
869b7fe314
Fixed bug 3550 - No mouse move messages send while over the titlebar and windows edges
...
Matthew
Its possible to set SDL_CaptureMouse() so you continue receiving mouse input while the mouse is outside your window. This works however There is then a gap where no messages send, which is when the mouse is hovering the title bar and the window edges.
2017-01-28 11:17:10 -08:00
R?mi Verschelde
c3eea703ee
Use a stronger X font definition for X11_MessageBox on UTF-8
...
X11 seemed to be confused by the broad definition, so WEIGHT_NAME,
SLANT and SETWIDTH_NAME were defined, thus fixing the font lookup
on some systems (tested on Mageia 6 with X11 1.19.1).
Fixes bug 3571.
2017-01-28 10:54:12 +01:00
Sam Lantinga
13433c4a61
Fixed bug 3569 - GL_UpdateViewport leaves PROJECTION matrix selected
...
Tom Seddon
GL_ActivateRenderer may call GL_UpdateViewport, which leaves the GL_PROJECTION matrix selected. But after GL_ResetState, the GL_MODELVIEW matrix is selected, suggesting that's the intended default state.
It seems at least like these should be consistent. Presumably GL_UpdateViewport should be doing a glMatrixMode(GL_MODELVIEW) before it finishes.
2017-01-27 21:23:27 -08:00
Sam Lantinga
0090a33805
Return an error if trying to set a window minimum size larger than the maximum size, or vice versa
2017-01-27 21:16:38 -08:00
Sam Lantinga
d02473682e
Sorted controller entries
2017-01-27 18:06:50 -08:00
Jessica Stokes
aa90b730b8
Add a mapping for Xbox Wireless Controllers running old firmware
...
Also updates the naming of these Xbox Wireless Controllers connected via USB (and thus the third-party Xbox Controller Driver) to match.
The Xbox Wireless Controller entries are now listed, in order, via USB, bia Bluetooh (with older firmware) and via Bluetooth (with firmware 3.1.1221.0).
2017-01-26 21:25:05 -08:00
Ryan C. Gordon
8fa9b57f75
windows: first shot at naming threads with SetThreadDescription().
...
This is a bleeding edge API, added to Windows 10 Anniversary Edition (build
1607, specifically).
https://msdn.microsoft.com/en-us/library/windows/desktop/mt774976(v=vs.85).aspx
Nothing supports this yet, including WinDbg, Visual Studio, minidumps, etc,
so we still need to also use the RaiseException hack. But presumably tools
will use this API as a more robust and universal way to get thread names
sooner or later, so we'll start broadcasting to it now.
2017-01-27 20:50:30 -05:00
Sam Lantinga
95ab9dc73c
Added Thrustmaster Wheel FFB entry to the list of wheels
2017-01-27 06:05:50 -08:00
Sam Lantinga
3c90a52aa7
Added an API to get the type of a connected joystick
2017-01-27 05:59:58 -08:00
Misty De Meo
ae5e9a319b
Add gamecontrollerdb mapping for Xbox One S on Mac
...
This is valid for firmware version 3.1.1221.0; earlier versions of the
firmware need a different mapping (and have different GUIDs).
2017-01-25 22:24:54 -08:00
Misty De Meo
ca89d9b593
Darwin: fix detection of Xbox One S controller
...
Firmware revision 3.1.1221.0 changes the mapping of the Xbox One S
controller in Bluetooth mode. Aside from changing the layout of
other buttons, this revision also changes the triggers to act as
Accelerator and Brake axes from the simulation controls page.
The Darwin sysjoystick code didn't previously map anything at these
axes, making it impossible to detect input on these two buttons.
2017-01-25 22:22:05 -08:00
Sam Lantinga
ede5c73484
Generalized the audio resampling hint for other resampling methods in the future
2017-01-24 19:38:01 -08:00
Ryan C. Gordon
47e2f4e950
audio: libsamplerate can't resample in-place; make space for a copy if needed.
2017-01-24 20:30:48 -05:00
Ryan C. Gordon
c7f9dcb6fc
audio: Offer a hint for libsamplerate quality/speed tradeoff.
...
This defaults to the internal SDL resampler, since that's the likely default
without a system-wide install of libsamplerate, but those that need more can
tweak this.
2017-01-24 15:52:22 -05:00
Ryan C. Gordon
1da3a33773
audio: Fix static analysis concerns about a dead assignment.
2017-01-24 10:09:29 -05:00
Ryan C. Gordon
8f627c1cd8
audio: Make sure SDL_AudioStream's work buffer is 16-byte aligned, for SIMD.
...
Note the giantic FIXME, though!
2017-01-24 00:51:33 -05:00
Ryan C. Gordon
17dcee20c1
audio: Streams now resample in-place. Removed second allocated buffer.
2017-01-24 00:17:40 -05:00
Ryan C. Gordon
b5eeab779f
audio: allow stereo Sint16 resampling fast path in SDL_AudioStream.
...
This currently favors libsamplerate over the fast path (quality over speed),
but I'm not sure that's the correct approach, as there may be surprising
changes in performance metrics depending on what packages are available on
a user's system. That being said, currently, the only thing with access to
SDL_AudioStream is an SDL audio device's thread, and it might be mostly idle
otherwise, so maybe this is generally good.
2017-01-24 00:08:24 -05:00
Ryan C. Gordon
a80cb672e3
audio: Fixed off-by-one error in upsampling.
2017-01-24 00:03:36 -05:00
Ryan C. Gordon
dad07f960b
audio: Resampler now special-cases stereo and mono processing.
...
Turns out that iterating from 0 to channels-1 was a serious performance hit!
These cases now tend to match or beat the original audio resampler's speed!
2017-01-23 16:45:50 -05:00
Ryan C. Gordon
8ce6ddf125
audio: Fixed incorrect pointer in SDL_ResampleCVT_si16_c2().
...
Forgot to update this when we changed this to process in-place. Whoops!
2017-01-23 16:42:47 -05:00
Ryan C. Gordon
ecdc6c1207
audio: Fixed copy/paste bug in float32->sint16/SSE2 scalar leftover code.
2017-01-23 12:14:28 -05:00
Ryan C. Gordon
4b8f354668
audio: Fix same bug as last commit, but for _mm_bslli_si128 vs _mm_slli_si128.
2017-01-23 12:06:10 -05:00
Ryan C. Gordon
fab4501811
audio: use _mm_srli_si128 instead of _mm_bsrli_si128.
...
They're the same thing (one is generally a #define of the other), but some
toolchains don't offer the 'b' version.
2017-01-23 12:02:02 -05:00
Ryan C. Gordon
3594bf8eeb
audio: Wired up new SSE code to build system.
2017-01-23 01:05:44 -05:00
Ryan C. Gordon
202ab30c16
audio: Special case for resampling stereo AUDIO_S16SYS audio data.
...
This is a fairly common case, so we avoid the conversion to/from float here.
2017-01-22 20:27:48 -05:00
Ryan C. Gordon
8855daac66
audio: Make the simple resampler operate in-place.
...
This allows us to avoid an extra copy, allocate less memory and reduce cache
pressure. On the downside: we have to do a lot of tapdancing to resample the
buffer in reverse when the output is growing.
2017-01-22 23:48:15 -05:00
Ryan C. Gordon
64056e81cd
audio: Added SSE3 implementation of SDL_ConvertStereoToMono().
2017-01-23 00:57:19 -05:00
Ryan C. Gordon
a7f86f2fd2
audio: don't cast to double in SDL_ConvertStereoToMono().
...
It's expensive and (hopefully) unnecessary. If this becomes an overflow
problem, we could multiply both values by 0.5f before adding them, but let's
see if we can get by without the extra multiplication first.
2017-01-22 20:18:59 -05:00
Ryan C. Gordon
83454c821f
audio: removed conditional from simple resampler's inner loop.
...
We never seem to overflow the source buffer now; this might have been a
leftover from a bug that was covered by Vitaly's fixes?
Removing this conditional makes the resampler 10-20% faster. Left an
assert in there for debug builds, in case this still happens.
2017-01-20 16:26:24 -05:00
Philipp Wiesemann
4f981df37f
Haiku: Fixed memory leak if creating framebuffer failed.
2017-01-22 22:15:36 +01:00
Philipp Wiesemann
63e83a3127
Haiku: Removed unused variable.
...
Found by Cppcheck.
2017-01-21 22:01:17 +01:00
Philipp Wiesemann
800a9e84f4
Fixed compiler warning about returning a value in a void function.
2017-01-21 22:00:56 +01:00
Sam Lantinga
8fa0b0889d
Added support for the 8Bitdo Zero GamePad
2017-01-20 08:13:23 -08:00
Sam Lantinga
9b99265a5e
Fixed mingw64 32-bit build, which does have the correct structure definitions
2017-01-19 20:19:37 -08:00
Sam Lantinga
f354024266
Removed unused variable
2017-01-18 12:19:57 -08:00