aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include/alSource.h
blob: 5edbfd1eaca4ed05f71f53f627073877c312ffb3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#ifndef _AL_SOURCE_H_
#define _AL_SOURCE_H_

#define AL_NUM_SOURCE_PARAMS    128

#include "AL/al.h"

#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

    // Index to itself
    ALuint source;

    ALint  lBytesPlayed;

    ALint  lOffset;
    ALint  lOffsetType;

    // Source Type (Static, Streaming, or Undetermined)
    ALint  lSourceType;

    struct ALsource *next;
} ALsource;

#ifdef __cplusplus
}
#endif

#endif