Clean up some loading checks

This commit is contained in:
Chris Robinson 2009-12-26 08:49:11 -08:00
parent 7bc739e965
commit c6340ce12d
4 changed files with 33 additions and 35 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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);