Mercurial > fife-parpg
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