summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2010-07-30 20:23:55 -0700
committerChris Robinson <[email protected]>2010-07-30 20:23:55 -0700
commitf1f2941511dd6bc51ea23ea46401bd75f70ac72e (patch)
tree77c87a024a119bb5b3b5b72db343c8ca9eea6824
parentd886fb118b7eac1c60597f6c915b5a3495c512b0 (diff)
Add experimental device attributes for apps to query
These will be part of the ALC_EXT_device_time extension. Behavior, values, etc, are all subject to change.
-rw-r--r--Alc/ALc.c25
-rw-r--r--OpenAL32/Include/alMain.h6
2 files changed, 31 insertions, 0 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 30fe037c..66fb6890 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -1356,6 +1356,31 @@ ALC_API ALCvoid ALC_APIENTRY alcGetIntegerv(ALCdevice *device,ALCenum param,ALsi
*data = device->Connected;
break;
+ case ALC_GET_TIME_EXT:
+ if(!IsDevice(device))
+ alcSetError(device, ALC_INVALID_DEVICE);
+ else if(size < 2)
+ alcSetError(device, ALC_INVALID_VALUE);
+ else
+ {
+ ALuint64 t = ALCdevice_GetTime(device);
+ data[0] = t&0xffffffff;
+ data[1] = t>>32;
+ }
+ break;
+
+ case ALC_GET_TIME_RES_EXT:
+ if(!IsDevice(device))
+ alcSetError(device, ALC_INVALID_DEVICE);
+ else if(size < 2)
+ alcSetError(device, ALC_INVALID_VALUE);
+ else
+ {
+ data[0] = device->TimeRes&0xffffffff;
+ data[1] = device->TimeRes>>32;
+ }
+ break;
+
default:
alcSetError(device, ALC_INVALID_ENUM);
break;
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 4957b942..202133a1 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -84,6 +84,12 @@ AL_API ALvoid AL_APIENTRY alUnmapDatabufferEXT(ALuint uiBuffer);
#define AL_LOOP_POINTS 0x2015
#endif
+#ifndef ALC_EXT_device_time
+#define ALC_EXT_device_time 1
+#define ALC_GET_TIME_EXT 0x314
+#define ALC_GET_TIME_RES_EXT 0x315
+#endif
+
#if defined(HAVE_STDINT_H)
#include <stdint.h>
typedef int64_t ALint64;