Commit Graph

436 Commits

Author SHA1 Message Date
Sam Lantinga
753aae78fc Christoph Mallon: Remove pointless if (x) before SDL_free(x) 2013-08-29 08:29:21 -07:00
Ryan C. Gordon
4db9e1c7a1 XAudio2/DirectSound: Use the usual Windows string convert (thanks, Norfanin!). 2013-08-22 13:32:27 -04:00
Gabriel Jacobo
8515791f86 OCD fixes: Adds a space after /* (glory to regular expressions!) 2013-08-21 09:47:10 -03:00
Gabriel Jacobo
871473e032 OCD fixes: Adds a space before */ 2013-08-21 09:43:09 -03:00
Gabriel Jacobo
f93c78450b More non C89 compliant comments 2013-08-20 20:34:40 -03:00
Sam Lantinga
35d8faed5d Removed unneeded Android audio code 2013-08-08 21:16:29 -07:00
Gabriel Jacobo
d0ac9f02aa Start Android Audio Thread after audio buffer and AudioTrack are ready.
Also, it starts the Audio Thread from the native side, putting the code in line
with other backends.
2013-08-08 21:25:09 -03:00
Ryan C. Gordon
a164f89158 Workaround older libpulse that fails in pa_context_new() with a NULL appname.
Newer libpulses do sane defaults if you pass a NULL there. In lieu of a
proper way to specify this in SDL at the moment, this will do.

Fixes Bugzilla #1119.
2013-07-30 01:32:26 -04:00
Ryan C. Gordon
ff56141020 These should be __inline__, not inline. 2013-07-30 01:30:32 -04:00
Sam Lantinga
a89e64a94e Fixed crash and garbled output when converting from F32 to S16 audio. 2013-07-25 18:11:09 -07:00
Jørgen P. Tjernø
e1bbdec6b8 Mac: Codify SDK and OS requirements, and clean up.
This #errors if you're using an SDK or deployment target that is less
than 10.6 and 10.5, respectively, and cleans up uses of
MAC_OS_X_VERSION_MIN_REQUIRED and MAC_OS_X_VERSION_MAX_ALLOWED according
to those requirements.
2013-07-23 17:38:59 -07:00
Ryan C. Gordon
83c211c2bc Make winmm and directsound audio targets robust against unsupported formats.
It now tries to make sure the hardware can support a given format, and if it
 can't, it carries on to the next best format instead of failing completely.
2013-07-14 21:30:16 -04:00
Ryan C. Gordon
26b21dc5ff Implement float32 support for winmm and directsound targets (Thanks, John!).
Fixes Bugzilla #1657.
2013-07-14 13:27:54 -04:00
Ryan C. Gordon
f6250318c6 Protect SDL_PauseAudio*() with the audio callback lock.
Otherwise, you can pause audio and still have the callback running, or run
 one more time. This makes sure the callback is definitely stopped by the
 time you return from SDL_PauseAudio().
2013-07-14 12:42:12 -04:00
Ryan C. Gordon
10513105ac Fixed off-by-one error in SDL_AudioQuit() (thanks, Rainer!).
Audio Devices IDs are offset by one.

Fixes Bugzilla #1971.
2013-07-14 11:28:18 -04:00
Ryan C. Gordon
81d61485aa Fixed off-by-one error in SDL_ConvertStereo().
Fixes Bugzilla #561.
2013-07-12 01:26:43 -04:00
Ryan C. Gordon
0d20116ec9 Whoops, missed a part of that last commit.
Actually fixes Bugzilla #1857.
2013-07-11 23:59:09 -04:00
Ryan C. Gordon
0cbdae6cb5 Explicitly write silence to the audio device while it is paused.
This is what SDL 1.2 did; we'll do this properly (add a method for the target
 driver to pause) when I rewrite all this code after the official 2.0 release.

Fixes Bugzilla #1857.
2013-07-11 23:53:00 -04:00
Sam Lantinga
b635831bba Fixed compile 2013-07-10 22:06:11 -07:00
Sam Lantinga
1dfa68f250 Fixed bug 1949 - Pulseaudio 32 bit audio formats support
Matt Scheirer

Pulse has supported (since version 0.8, at least) 32 bit audio formats that are now becoming available in SDL2. This patch adds those format conversions to the switch clause in the pulseaudio backend.
2013-07-10 22:01:24 -07:00
Ryan C. Gordon
26b9082a9a sndio dynamic loading fix. 2013-07-07 20:06:08 -04:00
Ryan C. Gordon
6174013522 Added an SDL2 OpenBSD sndio(7) audio target. 2013-07-07 02:03:07 -04:00
Ryan C. Gordon
69f525600a Disk audio target was using this->hidden->mixlen before we set it. 2013-07-07 02:04:19 -04:00
Ryan C. Gordon
b4e38d394c Minor ALSA tweaks (include-once macro name, len for memset() more clear). 2013-07-07 02:03:50 -04:00
Ryan C. Gordon
962e55a308 Patched to compile on pre-C99 compilers. 2013-07-05 01:31:02 -04:00
Ryan C. Gordon
6ca14bb9d2 Don't crash if SDL_AudioQuit() is called twice in a row.
Fixes Bugzilla #1396.
2013-07-05 00:54:00 -04:00
Ryan C. Gordon
79d7ea0d5d Don't close already-closed audio devices during SDL_Quit().
Otherwise, we spam a bunch of unnecessary SDL_SetError() calls.

Fixes Bugzilla #1791.
2013-07-05 00:30:23 -04:00
Sam Lantinga
cee64ab8c3 Merged 2013-06-28 20:46:11 -07:00
Sam Lantinga
d6084c5b7a Fixed bug 1913 - state->index may get negative in SDL_wave.c file.
Nitz

In function:
static Sint32
IMA_ADPCM_nibble(struct IMA_ADPCM_decodestate *state, Uint8 nybble)
{
 const Sint32 max_audioval = ((1 << (16 - 1)) - 1);
    const Sint32 min_audioval = -(1 << (16 - 1));
    const int index_table[16] = {
        -1, -1, -1, -1,
        2, 4, 6, 8,
        -1, -1, -1, -1,
        2, 4, 6, 8
    };
    const Sint32 step_table[89] = {
        7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31,
        34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130,
        143, 157, 173, 190, 209, 230, 253, 279, 307, 337, 371, 408,
        449, 494, 544, 598, 658, 724, 796, 876, 963, 1060, 1166, 1282,
        1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024, 3327,
        3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630,
        9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350,
        22385, 24623, 27086, 29794, 32767
    };
    Sint32 delta, step;

    /* Compute difference and new sample value */
    step = step_table[state->index];
    // Some Code
}

Here step_table array have the state->index, which might be negative, so it is unsafe to assign this index to step_table array directly.
There would be a check before that to confirm its value.
2013-06-18 00:50:35 -07:00
Sam Lantinga
6993e59213 Fixed some Visual Studio analyze warnings 2013-06-15 02:46:32 -07:00
Sam Lantinga
767c1395d9 Fixed compiling XAudio2 code with mingw64 2013-05-26 12:20:23 -07:00
Philipp Wiesemann
41b30114d5 Changed three similar error messages to contain more context. 2013-05-26 11:54:17 +02:00
Sam Lantinga
0d9b661db8 File style cleanup for the SDL 2.0 release 2013-05-18 14:17:52 -07:00
Philipp Wiesemann
f307a3299f Removed unused variables from C source files. 2013-04-29 23:54:22 +02:00
Ryan C. Gordon
d619a9a9ee Changed audio subsystem's OpenDevice interface to return -1 on error.
This lets us 'return SDL_SetError("whatever");' on one line.

 Fixes Bugzilla #1778.
2013-03-31 13:05:40 -04:00
Ryan C. Gordon
16cdc59bab Make SDL_SetError and friends unconditionally return -1.
This lets us change things like this...

    if (Failed) {
        SDL_SetError("We failed");
        return -1;
    }

...into this...

    if (Failed) {
        return SDL_SetError("We failed");
    }


 Fixes Bugzilla #1778.
2013-03-31 12:48:50 -04:00
Sam Lantinga
f0af9a3e70 Removed Nintendo DS support since nobody has volunteered to maintain it for over a year. 2013-03-17 09:44:58 -07:00
Captain Lex
a18bccd5f3 Add PSP support 2013-03-17 20:07:02 +08:00
Sam Lantinga
2952d9bf48 Changed the name of SDL_mutexP() SDL_mutexV() 2013-03-07 20:12:40 -08:00
Shawn Walker
fbe3360f9c Fix pulseaudio dynamic linking for Solaris builds.
Fix Solaris Studio compilation errors.
Fix sunaudio backend for SDL2.
2013-02-25 22:46:21 +00:00
Sam Lantinga
dcda50dd51 Unload the PulseAudio library if the pulseaudio connection isn't available. 2013-02-26 23:26:00 -08:00
Sam Lantinga
6bb6decd41 Check to make sure we can connect to PulseAudio before we use it. 2013-02-26 16:31:52 -08:00
Ryan C. Gordon
5c01139fce Backed out changeset 9fea506e48ab
Sam beat me to this on a different branch, apparently.
2013-02-20 14:49:30 -05:00
Ryan C. Gordon
dbf83c45a4 Allow SDL_AUDIODRIVER="pulse" to do the right thing.
(We renamed this audio target at some point; the Internet didn't get the memo.)
2013-02-20 13:25:38 -05:00
Sam Lantinga
b5744978af Allow abbreviated strings to be used for driver names.
This allows people to use "pulse" with both SDL 1.2 and 2.0
2013-02-18 20:14:24 -08:00
Sam Lantinga
019c60c1e8 Happy New Year! 2013-02-15 08:47:44 -08:00
Sam Lantinga
64ffa4ad74 Fixed bug 1679 - Error in buffer size setting in Haiku/BeOS audio driver
PulkoMandy

Just like in SDL, audio buffer sizes for BeOS and Haiku BSoundPlayer are sized
in bytes, not frames. SDL was feeding the wrong value, leading to buffers
smaller than expected and weird behaviour in some unsuspecting programs
(noticed it in HivelyTracker but others are likely affected as well. The fix is
fortunately very simple
2013-02-11 20:56:34 -08:00
Andreas Schiffler
0dfee1f016 Add additional input validation to SDL_BuildAudioCVT; add additional tests to automation (audio, rwops) 2013-01-21 09:16:27 -08:00
Sam Lantinga
e1031e342b Fixed permissions for code generation scripts 2012-12-11 12:01:04 -08:00
Sam Lantinga
619c1d8cd0 Fixed bug 1632 - iOS CoreAudio doesn't close
C.W. Betts 2012-10-28 19:42:01 PDT

I noticed when looking through the CoreAudio code of SDL 2.0 that there was a
fix me wondering how iOS closed the audio system. While working on my own audio
code on PlayerPRO, I discovered that Carbon's component code was replaced in
the audio subsystem with Audio Component Services.
2012-11-02 09:28:40 -07:00