aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Alc/ALc.c13
-rw-r--r--OpenAL32/Include/alMain.h5
2 files changed, 15 insertions, 3 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 4d60278f..be6b4227 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -687,7 +687,7 @@ static const ALCchar alcNoDeviceExtList[] =
static const ALCchar alcExtensionList[] =
"ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE "
"ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX "
- "ALC_EXT_thread_local_context ALC_SOFT_loopback";
+ "ALC_EXT_thread_local_context ALC_SOFTX_HRTF ALC_SOFT_loopback";
static const ALCint alcMajorVersion = 1;
static const ALCint alcMinorVersion = 1;
@@ -2304,11 +2304,11 @@ ALC_API ALCvoid ALC_APIENTRY alcGetIntegerv(ALCdevice *device,ALCenum param,ALsi
break;
case ALC_ATTRIBUTES_SIZE:
- *data = 13;
+ *data = 15;
break;
case ALC_ALL_ATTRIBUTES:
- if(size < 13)
+ if(size < 15)
alcSetError(device, ALC_INVALID_VALUE);
else
{
@@ -2343,6 +2343,9 @@ ALC_API ALCvoid ALC_APIENTRY alcGetIntegerv(ALCdevice *device,ALCenum param,ALsi
data[i++] = ALC_MAX_AUXILIARY_SENDS;
data[i++] = device->NumAuxSends;
+ data[i++] = ALC_HRTF_SOFT;
+ data[i++] = (device->Hrtf ? ALC_TRUE : ALC_FALSE);
+
data[i++] = 0;
}
break;
@@ -2395,6 +2398,10 @@ ALC_API ALCvoid ALC_APIENTRY alcGetIntegerv(ALCdevice *device,ALCenum param,ALsi
*data = device->Connected;
break;
+ case ALC_HRTF_SOFT:
+ *data = (device->Hrtf ? ALC_TRUE : ALC_FALSE);
+ break;
+
default:
alcSetError(device, ALC_INVALID_ENUM);
break;
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 9bf10903..d5e59321 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -26,6 +26,11 @@ AL_API ALvoid AL_APIENTRY alProcessUpdatesSOFT(void);
#endif
#endif
+#ifndef ALC_SOFT_HRTF
+#define ALC_SOFT_HRTF 1
+#define ALC_HRTF_SOFT 0x1992
+#endif
+
#if defined(HAVE_STDINT_H)
#include <stdint.h>