diff options
author | Chris Robinson <[email protected]> | 2010-01-09 06:40:50 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2010-01-09 06:40:50 -0800 |
commit | ef7df2416debb882c42124bddc07808c00a4503b (patch) | |
tree | 20e2e8a67a0a3bb8d8175994b4f006c6fcc456cd /Alc | |
parent | cb113315f7cacfef0ca1f7a08d714344a89447da (diff) |
Hide OSS and Solaris devices if their files can't be stat'd
Diffstat (limited to 'Alc')
-rw-r--r-- | Alc/oss.c | 30 | ||||
-rw-r--r-- | Alc/solaris.c | 9 |
2 files changed, 33 insertions, 6 deletions
@@ -169,7 +169,8 @@ static ALCboolean oss_open_playback(ALCdevice *device, const ALCchar *deviceName if(data->fd == -1) { free(data); - AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); + if(errno != ENOENT) + AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); return ALC_FALSE; } @@ -336,7 +337,8 @@ static ALCboolean oss_open_capture(ALCdevice *device, const ALCchar *deviceName) if(data->fd == -1) { free(data); - AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); + if(errno != ENOENT) + AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); return ALC_FALSE; } @@ -492,9 +494,27 @@ void alc_oss_deinit(void) void alc_oss_probe(int type) { if(type == DEVICE_PROBE) - AppendDeviceList(oss_device); + { +#ifdef HAVE_STAT + struct stat buf; + if(stat(GetConfigValue("oss", "device", "/dev/dsp"), &buf) == 0) +#endif + AppendDeviceList(oss_device); + } else if(type == ALL_DEVICE_PROBE) - AppendAllDeviceList(oss_device); + { +#ifdef HAVE_STAT + struct stat buf; + if(stat(GetConfigValue("oss", "device", "/dev/dsp"), &buf) == 0) +#endif + AppendAllDeviceList(oss_device); + } else if(type == CAPTURE_DEVICE_PROBE) - AppendCaptureDeviceList(oss_device_capture); + { +#ifdef HAVE_STAT + struct stat buf; + if(stat(GetConfigValue("oss", "capture", "/dev/dsp"), &buf) == 0) +#endif + AppendCaptureDeviceList(oss_device_capture); + } } diff --git a/Alc/solaris.c b/Alc/solaris.c index 4504a680..9cb4092a 100644 --- a/Alc/solaris.c +++ b/Alc/solaris.c @@ -112,7 +112,8 @@ static ALCboolean solaris_open_playback(ALCdevice *device, const ALCchar *device if(data->fd == -1) { free(data); - AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); + if(errno != ENOENT) + AL_PRINT("Could not open %s: %s\n", driver, strerror(errno)); return ALC_FALSE; } @@ -291,6 +292,12 @@ void alc_solaris_deinit(void) void alc_solaris_probe(ALCboolean capture) { +#ifdef HAVE_STAT + struct stat buf; + if(stat(GetConfigValue("solaris", "device", "/dev/audio"), &buf) != 0) + return; +#endif + if(type == DEVICE_PROBE) AppendDeviceList(solaris_device); else if(type == ALL_DEVICE_PROBE) |