diff ext/openal-soft/OpenAL32/Include/alSource.h @ 0:4a0efb7baf70

* Datasets becomes the new trunk and retires after that :-)
author mvbarracuda@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 29 Jun 2008 18:44:17 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ext/openal-soft/OpenAL32/Include/alSource.h	Sun Jun 29 18:44:17 2008 +0000
@@ -0,0 +1,105 @@
+#ifndef _AL_SOURCE_H_
+#define _AL_SOURCE_H_
+
+#define AL_NUM_SOURCE_PARAMS    128
+
+/* This cannot be changed without working on the code! */
+#define MAX_SENDS                 1
+
+#include "alFilter.h"
+#include "AL/al.h"
+
+#define AL_DIRECT_FILTER                                   0x20005
+#define AL_AUXILIARY_SEND_FILTER                           0x20006
+#define AL_AIR_ABSORPTION_FACTOR                           0x20007
+#define AL_ROOM_ROLLOFF_FACTOR                             0x20008
+#define AL_CONE_OUTER_GAINHF                               0x20009
+#define AL_DIRECT_FILTER_GAINHF_AUTO                       0x2000A
+#define AL_AUXILIARY_SEND_FILTER_GAIN_AUTO                 0x2000B
+#define AL_AUXILIARY_SEND_FILTER_GAINHF_AUTO               0x2000C
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct ALbufferlistitem
+{
+    ALuint                   buffer;
+    ALuint                   bufferstate;
+    ALuint                   flag;
+    struct ALbufferlistitem *next;
+} ALbufferlistitem;
+
+typedef struct ALsource
+{
+    ALfloat      flPitch;
+    ALfloat      flGain;
+    ALfloat      flOuterGain;
+    ALfloat      flMinGain;
+    ALfloat      flMaxGain;
+    ALfloat      flInnerAngle;
+    ALfloat      flOuterAngle;
+    ALfloat      flRefDistance;
+    ALfloat      flMaxDistance;
+    ALfloat      flRollOffFactor;
+    ALfloat      vPosition[3];
+    ALfloat      vVelocity[3];
+    ALfloat      vOrientation[3];
+    ALboolean    bHeadRelative;
+    ALboolean    bLooping;
+
+    ALuint       ulBufferID;
+
+    ALboolean    inuse;
+    ALboolean    play;
+    ALenum       state;
+    ALuint       position;
+    ALuint       position_fraction;
+    struct ALbufferlistitem *queue; // Linked list of buffers in queue
+    ALuint       BuffersInQueue;    // Number of buffers in queue
+    ALuint       BuffersProcessed;  // Number of buffers already processed (played)
+
+    ALuint TotalBufferDataSize; // Total amount of data contained in the buffers queued for this source
+    ALuint BuffersPlayed;       // Number of buffers played on this loop
+    ALuint BufferPosition;      // Read position in audio data of current buffer
+
+    ALfilter DirectFilter;
+
+    struct {
+        struct ALeffectslot *Slot;
+        ALfilter WetFilter;
+    } Send[MAX_SENDS];
+
+    ALfloat LastDrySample;
+    ALfloat LastWetSample;
+
+    ALboolean DryGainHFAuto;
+    ALboolean WetGainAuto;
+    ALboolean WetGainHFAuto;
+    ALfloat   OuterGainHF;
+
+    ALfloat AirAbsorptionFactor;
+
+    ALfloat RoomRolloffFactor;
+
+    // Index to itself
+    ALuint source;
+
+    ALint  lBytesPlayed;
+
+    ALint  lOffset;
+    ALint  lOffsetType;
+
+    // Source Type (Static, Streaming, or Undetermined)
+    ALint  lSourceType;
+
+    struct ALsource *next;
+} ALsource;
+
+ALvoid ReleaseALSources(ALCcontext *Context);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif