Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Check to make sure we can connect to PulseAudio before we use it.
- Loading branch information
Showing
with
25 additions
and
1 deletion.
-
+25
−1
src/audio/pulseaudio/SDL_pulseaudio.c
|
@@ -205,6 +205,27 @@ load_pulseaudio_syms(void) |
|
|
} |
|
|
|
|
|
|
|
|
/* Check to see if we can connect to PulseAudio */ |
|
|
static SDL_bool |
|
|
CheckPulseAudioAvailable() |
|
|
{ |
|
|
pa_simple *s; |
|
|
pa_sample_spec ss; |
|
|
|
|
|
ss.format = PA_SAMPLE_S16NE; |
|
|
ss.channels = 1; |
|
|
ss.rate = 22050; |
|
|
|
|
|
s = PULSEAUDIO_pa_simple_new(NULL, "SDL", PA_STREAM_PLAYBACK, NULL, |
|
|
"Test", &ss, NULL, NULL, NULL); |
|
|
if (s) { |
|
|
PULSEAUDIO_pa_simple_free(s); |
|
|
return SDL_TRUE; |
|
|
} else { |
|
|
return SDL_FALSE; |
|
|
} |
|
|
} |
|
|
|
|
|
/* This function waits until it is possible to write a full sound buffer */ |
|
|
static void |
|
|
PULSEAUDIO_WaitDevice(_THIS) |
|
@@ -476,14 +497,17 @@ PULSEAUDIO_Deinitialize(void) |
|
|
UnloadPulseAudioLibrary(); |
|
|
} |
|
|
|
|
|
|
|
|
static int |
|
|
PULSEAUDIO_Init(SDL_AudioDriverImpl * impl) |
|
|
{ |
|
|
if (LoadPulseAudioLibrary() < 0) { |
|
|
return 0; |
|
|
} |
|
|
|
|
|
if (!CheckPulseAudioAvailable()) { |
|
|
return 0; |
|
|
} |
|
|
|
|
|
/* Set the function pointers */ |
|
|
impl->OpenDevice = PULSEAUDIO_OpenDevice; |
|
|
impl->PlayDevice = PULSEAUDIO_PlayDevice; |
|
|