aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
Diffstat (limited to 'Alc')
-rw-r--r--Alc/alsa.c18
-rw-r--r--Alc/dsound.c14
-rw-r--r--Alc/portaudio.c17
-rw-r--r--Alc/pulseaudio.c19
4 files changed, 33 insertions, 35 deletions
diff --git a/Alc/alsa.c b/Alc/alsa.c
index 50a0bd04..460a1cd9 100644
--- a/Alc/alsa.c
+++ b/Alc/alsa.c
@@ -118,7 +118,7 @@ static ALuint numCaptureDevNames;
static volatile ALuint load_count;
-void alsa_load(void)
+void *alsa_load(void)
{
if(load_count == 0)
{
@@ -127,7 +127,7 @@ void alsa_load(void)
#ifdef HAVE_DLFCN_H
alsa_handle = dlopen("libasound.so.2", RTLD_NOW);
if(!alsa_handle)
- return;
+ return NULL;
dlerror();
#define LOAD_FUNC(f) do { \
@@ -137,7 +137,7 @@ void alsa_load(void)
dlclose(alsa_handle); \
alsa_handle = NULL; \
AL_PRINT("Could not load %s from libasound.so.2: %s\n", #f, str); \
- return; \
+ return NULL; \
} \
} while(0)
#else
@@ -205,6 +205,8 @@ LOAD_FUNC(snd_card_next);
#undef LOAD_FUNC
}
++load_count;
+
+ return alsa_handle;
}
void alsa_unload(void)
@@ -468,8 +470,7 @@ static ALCboolean alsa_open_playback(ALCdevice *device, const ALCchar *deviceNam
return ALC_FALSE;
}
- alsa_load();
- if(!alsa_handle)
+ if(!alsa_load())
return ALC_FALSE;
data = (alsa_data*)calloc(1, sizeof(alsa_data));
@@ -757,8 +758,7 @@ static ALCboolean alsa_open_capture(ALCdevice *pDevice, const ALCchar *deviceNam
return ALC_FALSE;
}
- alsa_load();
- if(!alsa_handle)
+ if(!alsa_load())
return ALC_FALSE;
data = (alsa_data*)calloc(1, sizeof(alsa_data));
@@ -970,8 +970,8 @@ void alc_alsa_probe(int type)
char name[128];
ALuint i;
- alsa_load();
- if(!alsa_handle) return;
+ if(!alsa_load())
+ return;
psnd_ctl_card_info_malloc(&info);
psnd_pcm_info_malloc(&pcminfo);
diff --git a/Alc/dsound.c b/Alc/dsound.c
index 966b6236..63047824 100644
--- a/Alc/dsound.c
+++ b/Alc/dsound.c
@@ -74,7 +74,7 @@ static ALuint NumDevices;
static volatile ALuint load_count;
-void DSoundLoad(void)
+void *DSoundLoad(void)
{
if(load_count == 0)
{
@@ -83,7 +83,7 @@ void DSoundLoad(void)
if(ds_handle == NULL)
{
AL_PRINT("Failed to load dsound.dll\n");
- return;
+ return NULL;
}
#define LOAD_FUNC(f) do { \
@@ -93,7 +93,7 @@ void DSoundLoad(void)
FreeLibrary(ds_handle); \
ds_handle = NULL; \
AL_PRINT("Could not load %s from dsound.dll\n", #f); \
- return; \
+ return NULL; \
} \
} while(0)
#else
@@ -106,6 +106,8 @@ LOAD_FUNC(DirectSoundEnumerateA);
#undef LOAD_FUNC
}
++load_count;
+
+ return ds_handle;
}
void DSoundUnload(void)
@@ -223,8 +225,7 @@ static ALCboolean DSoundOpenPlayback(ALCdevice *device, const ALCchar *deviceNam
return ALC_FALSE;
}
- DSoundLoad();
- if(ds_handle == NULL)
+ if(!DSoundLoad())
return ALC_FALSE;
//Initialise requested device
@@ -550,8 +551,7 @@ void alcDSoundDeinit(void)
void alcDSoundProbe(int type)
{
- DSoundLoad();
- if(!ds_handle) return;
+ if(!DSoundLoad()) return;
if(type == DEVICE_PROBE)
AppendDeviceList(dsDevice);
diff --git a/Alc/portaudio.c b/Alc/portaudio.c
index a190bea8..5d403f29 100644
--- a/Alc/portaudio.c
+++ b/Alc/portaudio.c
@@ -50,7 +50,7 @@ static const ALCchar pa_device[] = "PortAudio Software";
static volatile ALuint load_count;
-void pa_load(void)
+void *pa_load(void)
{
const char *str;
PaError err;
@@ -65,7 +65,7 @@ void pa_load(void)
#endif
pa_handle = dlopen(PALIB, RTLD_NOW);
if(!pa_handle)
- return;
+ return NULL;
dlerror();
#define LOAD_FUNC(f) do { \
@@ -75,7 +75,7 @@ void pa_load(void)
dlclose(pa_handle); \
pa_handle = NULL; \
AL_PRINT("Could not load %s from "PALIB": %s\n", #f, str); \
- return; \
+ return NULL; \
} \
} while(0)
#else
@@ -103,11 +103,12 @@ LOAD_FUNC(Pa_GetStreamInfo);
dlclose(pa_handle);
#endif
pa_handle = NULL;
- return;
+ return NULL;
}
}
-
++load_count;
+
+ return pa_handle;
}
void pa_unload(void)
@@ -155,8 +156,7 @@ static ALCboolean pa_open_playback(ALCdevice *device, const ALCchar *deviceName)
else if(strcmp(deviceName, pa_device) != 0)
return ALC_FALSE;
- pa_load();
- if(pa_handle == NULL)
+ if(!pa_load())
return ALC_FALSE;
data = (pa_data*)calloc(1, sizeof(pa_data));
@@ -287,8 +287,7 @@ void alc_pa_deinit(void)
void alc_pa_probe(int type)
{
- pa_load();
- if(!pa_handle) return;
+ if(!pa_load()) return;
if(type == DEVICE_PROBE)
AppendDeviceList(pa_device);
diff --git a/Alc/pulseaudio.c b/Alc/pulseaudio.c
index 621079f0..e4f53f4c 100644
--- a/Alc/pulseaudio.c
+++ b/Alc/pulseaudio.c
@@ -134,7 +134,7 @@ static const ALCchar pulse_capture_device[] = "PulseAudio Capture";
static volatile ALuint load_count;
-void pulse_load(void) //{{{
+void *pulse_load(void) //{{{
{
if(load_count == 0)
{
@@ -146,7 +146,7 @@ void pulse_load(void) //{{{
AL_PRINT("Could not load %s from libpulse-0.dll\n", #x); \
FreeLibrary(pa_handle); \
pa_handle = NULL; \
- return; \
+ return NULL; \
} \
} while(0)
#define LOAD_OPTIONAL_FUNC(x) do { \
@@ -169,7 +169,7 @@ void pulse_load(void) //{{{
AL_PRINT("Could not load %s from libpulse: %s\n", #x, err); \
dlclose(pa_handle); \
pa_handle = NULL; \
- return; \
+ return NULL; \
} \
} while(0)
#define LOAD_OPTIONAL_FUNC(x) do { \
@@ -187,7 +187,7 @@ void pulse_load(void) //{{{
#endif
if(!pa_handle)
- return;
+ return NULL;
LOAD_FUNC(pa_context_unref);
LOAD_FUNC(pa_sample_spec_valid);
@@ -245,6 +245,8 @@ LOAD_OPTIONAL_FUNC(pa_stream_begin_write);
#undef LOAD_FUNC
}
++load_count;
+
+ return pa_handle;
} //}}}
void pulse_unload(void) //{{{
@@ -489,8 +491,7 @@ static ALCboolean pulse_open_playback(ALCdevice *device, const ALCchar *device_n
else if(strcmp(device_name, pulse_device) != 0)
return ALC_FALSE;
- pulse_load();
- if(!pa_handle)
+ if(!pulse_load())
return ALC_FALSE;
if(pulse_open(device, device_name) != ALC_FALSE)
@@ -660,8 +661,7 @@ static ALCboolean pulse_open_capture(ALCdevice *device, const ALCchar *device_na
else if(strcmp(device_name, pulse_capture_device) != 0)
return ALC_FALSE;
- pulse_load();
- if(!pa_handle)
+ if(!pulse_load())
return ALC_FALSE;
if(pulse_open(device, device_name) == ALC_FALSE)
@@ -904,8 +904,7 @@ void alc_pulse_deinit(void) //{{{
void alc_pulse_probe(int type) //{{{
{
- pulse_load();
- if(!pa_handle) return;
+ if(!pulse_load()) return;
if(type == DEVICE_PROBE)
AppendDeviceList(pulse_device);