aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/backends
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/backends')
-rw-r--r--Alc/backends/dsound.c24
-rw-r--r--Alc/backends/winmm.c56
2 files changed, 29 insertions, 51 deletions
diff --git a/Alc/backends/dsound.c b/Alc/backends/dsound.c
index e2375137..851dd9e2 100644
--- a/Alc/backends/dsound.c
+++ b/Alc/backends/dsound.c
@@ -86,7 +86,6 @@ typedef struct {
GUID guid;
} DevMap;
-static const ALCchar dsDevice[] = "DirectSound Default";
static DevMap *PlaybackDeviceList;
static ALuint NumPlaybackDevices;
static DevMap *CaptureDeviceList;
@@ -312,18 +311,21 @@ static ALCenum DSoundOpenPlayback(ALCdevice *device, const ALCchar *deviceName)
LPGUID guid = NULL;
HRESULT hr;
- if(!deviceName)
- deviceName = dsDevice;
- else if(strcmp(deviceName, dsDevice) != 0)
+ if(!PlaybackDeviceList)
{
- ALuint i;
+ hr = DirectSoundEnumerateA(DSoundEnumPlaybackDevices, NULL);
+ if(FAILED(hr))
+ ERR("Error enumerating DirectSound devices (%#x)!\n", (unsigned int)hr);
+ }
- if(!PlaybackDeviceList)
- {
- hr = DirectSoundEnumerateA(DSoundEnumPlaybackDevices, NULL);
- if(FAILED(hr))
- ERR("Error enumerating DirectSound devices (%#x)!\n", (unsigned int)hr);
- }
+ if(!deviceName && NumPlaybackDevices > 0)
+ {
+ deviceName = PlaybackDeviceList[0].name;
+ guid = &PlaybackDeviceList[0].guid;
+ }
+ else
+ {
+ ALuint i;
for(i = 0;i < NumPlaybackDevices;i++)
{
diff --git a/Alc/backends/winmm.c b/Alc/backends/winmm.c
index 994c073c..9f2c6316 100644
--- a/Alc/backends/winmm.c
+++ b/Alc/backends/winmm.c
@@ -56,8 +56,6 @@ typedef struct {
} WinMMData;
-static const ALCchar woDefault[] = "WaveOut Default";
-
static ALCchar **PlaybackDeviceList;
static ALuint NumPlaybackDevices;
static ALCchar **CaptureDeviceList;
@@ -286,26 +284,21 @@ static ALCenum WinMMOpenPlayback(ALCdevice *pDevice, const ALCchar *deviceName)
MMRESULT res;
ALuint i = 0;
+ if(!PlaybackDeviceList)
+ ProbePlaybackDevices();
+
// Find the Device ID matching the deviceName if valid
- if(!deviceName || strcmp(deviceName, woDefault) == 0)
- lDeviceID = WAVE_MAPPER;
- else
+ for(i = 0;i < NumPlaybackDevices;i++)
{
- if(!PlaybackDeviceList)
- ProbePlaybackDevices();
-
- for(i = 0;i < NumPlaybackDevices;i++)
+ if(PlaybackDeviceList[i] &&
+ (!deviceName || strcmp(deviceName, PlaybackDeviceList[i]) == 0))
{
- if(PlaybackDeviceList[i] &&
- strcmp(deviceName, PlaybackDeviceList[i]) == 0)
- {
- lDeviceID = i;
- break;
- }
+ lDeviceID = i;
+ break;
}
- if(i == NumPlaybackDevices)
- return ALC_INVALID_VALUE;
}
+ if(i == NumPlaybackDevices)
+ return ALC_INVALID_VALUE;
pData = calloc(1, sizeof(*pData));
if(!pData)
@@ -371,8 +364,7 @@ retry_open:
pData->Frequency = pDevice->Frequency;
- pDevice->szDeviceName = strdup((lDeviceID==WAVE_MAPPER) ? woDefault :
- PlaybackDeviceList[lDeviceID]);
+ pDevice->szDeviceName = strdup(PlaybackDeviceList[lDeviceID]);
return ALC_NO_ERROR;
failure:
@@ -487,27 +479,13 @@ static ALCenum WinMMOpenCapture(ALCdevice *pDevice, const ALCchar *deviceName)
ProbeCaptureDevices();
// Find the Device ID matching the deviceName if valid
- if(deviceName)
- {
- for(i = 0;i < NumCaptureDevices;i++)
- {
- if(CaptureDeviceList[i] &&
- strcmp(deviceName, CaptureDeviceList[i]) == 0)
- {
- lDeviceID = i;
- break;
- }
- }
- }
- else
+ for(i = 0;i < NumCaptureDevices;i++)
{
- for(i = 0;i < NumCaptureDevices;i++)
+ if(CaptureDeviceList[i] &&
+ (!deviceName || strcmp(deviceName, CaptureDeviceList[i]) == 0))
{
- if(CaptureDeviceList[i])
- {
- lDeviceID = i;
- break;
- }
+ lDeviceID = i;
+ break;
}
}
if(i == NumCaptureDevices)
@@ -754,8 +732,6 @@ void alcWinMMProbe(enum DevProbe type)
{
case ALL_DEVICE_PROBE:
ProbePlaybackDevices();
- if(NumPlaybackDevices > 0)
- AppendAllDeviceList(woDefault);
for(i = 0;i < NumPlaybackDevices;i++)
{
if(PlaybackDeviceList[i])