aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2009-08-16 00:54:08 -0700
committerChris Robinson <[email protected]>2009-08-16 00:54:08 -0700
commit0b7eb9f118a259f4bc666140093b6be7dcf01158 (patch)
tree808f71536e3df4b38d0b9e9eae76e25a372ef33d /OpenAL32/Include
parentdc26261065a7ff78657ac79accc993c78069deca (diff)
Add in-progress working extension AL_EXTX_sample_buffer_object
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alDatabuffer.h55
-rw-r--r--OpenAL32/Include/alMain.h7
2 files changed, 62 insertions, 0 deletions
diff --git a/OpenAL32/Include/alDatabuffer.h b/OpenAL32/Include/alDatabuffer.h
new file mode 100644
index 00000000..f50450f0
--- /dev/null
+++ b/OpenAL32/Include/alDatabuffer.h
@@ -0,0 +1,55 @@
+#ifndef _AL_DATABUFFER_H_
+#define _AL_DATABUFFER_H_
+
+#include "AL/al.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define UNMAPPED 0
+#define MAPPED 1
+
+typedef struct ALdatabuffer
+{
+ ALubyte *data;
+ ALuint size;
+ ALenum state;
+
+ ALenum usage;
+
+ /* Index to self */
+ ALuint databuffer;
+
+ struct ALdatabuffer *next;
+} ALdatabuffer;
+
+ALvoid ALAPIENTRY alGenDatabuffersEXT(ALsizei n,ALuint *puiBuffers);
+ALvoid ALAPIENTRY alDeleteDatabuffersEXT(ALsizei n, const ALuint *puiBuffers);
+ALboolean ALAPIENTRY alIsDatabufferEXT(ALuint uiBuffer);
+
+ALvoid ALAPIENTRY alDatabufferDataEXT(ALuint buffer,const ALvoid *data,ALsizei size,ALenum usage);
+ALvoid ALAPIENTRY alDatabufferSubDataEXT(ALuint buffer, ALuint start, ALsizei length, const ALvoid *data);
+ALvoid ALAPIENTRY alGetDatabufferSubDataEXT(ALuint buffer, ALuint start, ALsizei length, ALvoid *data);
+
+ALvoid ALAPIENTRY alDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat flValue);
+ALvoid ALAPIENTRY alDatabufferfvEXT(ALuint buffer, ALenum eParam, const ALfloat* flValues);
+ALvoid ALAPIENTRY alDatabufferiEXT(ALuint buffer, ALenum eParam, ALint lValue);
+ALvoid ALAPIENTRY alDatabufferivEXT(ALuint buffer, ALenum eParam, const ALint* plValues);
+ALvoid ALAPIENTRY alGetDatabufferfEXT(ALuint buffer, ALenum eParam, ALfloat *pflValue);
+ALvoid ALAPIENTRY alGetDatabufferfvEXT(ALuint buffer, ALenum eParam, ALfloat* pflValues);
+ALvoid ALAPIENTRY alGetDatabufferiEXT(ALuint buffer, ALenum eParam, ALint *plValue);
+ALvoid ALAPIENTRY alGetDatabufferivEXT(ALuint buffer, ALenum eParam, ALint* plValues);
+
+ALvoid ALAPIENTRY alSelectDatabufferEXT(ALenum target, ALuint uiBuffer);
+
+ALvoid* ALAPIENTRY alMapDatabufferEXT(ALuint uiBuffer, ALuint start, ALsizei length, ALenum access);
+ALvoid ALAPIENTRY alUnmapDatabufferEXT(ALuint uiBuffer);
+
+ALvoid ReleaseALDatabuffers(ALCdevice *device);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 78128c90..a375f6d1 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -201,6 +201,10 @@ struct ALCdevice_struct
struct ALfilter *FilterList;
ALuint FilterCount;
+ // Linked List of Databuffers for this device
+ struct ALdatabuffer *Databuffers;
+ ALuint DatabufferCount;
+
// Context created on this device
ALCcontext *Context;
@@ -231,6 +235,9 @@ struct ALCcontext_struct
struct ALeffectslot *AuxiliaryEffectSlot;
ALuint AuxiliaryEffectSlotCount;
+ struct ALdatabuffer *SampleSource;
+ struct ALdatabuffer *SampleSink;
+
ALenum LastError;
ALboolean InUse;