diff options
-rw-r--r-- | Alc/ALc.c | 13 | ||||
-rw-r--r-- | Alc/hrtf.c | 3 | ||||
-rw-r--r-- | OpenAL32/Include/alMain.h | 2 |
3 files changed, 10 insertions, 8 deletions
@@ -1803,12 +1803,13 @@ static ALCenum UpdateDeviceParams(ALCdevice *device, const ALCint *attrList) { enum DevFmtChannels chans; ALCuint freq; - - FindHrtfFormat(device, &chans, &freq); - device->Frequency = freq; - device->FmtChans = chans; - device->Flags |= DEVICE_CHANNELS_REQUEST | - DEVICE_FREQUENCY_REQUEST; + if(FindHrtfFormat(device, &chans, &freq)) + { + device->Frequency = freq; + device->FmtChans = chans; + device->Flags |= DEVICE_CHANNELS_REQUEST | + DEVICE_FREQUENCY_REQUEST; + } } if(V0(device->Backend,reset)() == ALC_FALSE) @@ -908,7 +908,7 @@ const struct Hrtf *GetHrtf(ALCdevice *device) return NULL; } -void FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate) +ALCboolean FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate) { const struct Hrtf *hrtf = &DefaultHrtf; @@ -930,6 +930,7 @@ void FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *chans = DevFmtStereo; *srate = hrtf->sampleRate; + return ALC_TRUE; } void FreeHrtfs(void) diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index 934a4e0f..0331a879 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -799,7 +799,7 @@ const ALCchar *DevFmtChannelsString(enum DevFmtChannels chans); #define HRTFDELAY_FRACONE (1<<HRTFDELAY_BITS) #define HRTFDELAY_MASK (HRTFDELAY_FRACONE-1) const struct Hrtf *GetHrtf(ALCdevice *device); -void FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate); +ALCboolean FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate); void FreeHrtfs(void); ALuint GetHrtfIrSize(const struct Hrtf *Hrtf); ALfloat CalcHrtfDelta(ALfloat oldGain, ALfloat newGain, const ALfloat olddir[3], const ALfloat newdir[3]); |