This repository was archived by the owner on Oct 26, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathal_h.lua
More file actions
253 lines (219 loc) · 12.1 KB
/
al_h.lua
File metadata and controls
253 lines (219 loc) · 12.1 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
local ffi = require("ffi")
ffi.cdef [[\
/** 8-bit boolean */
typedef char ALboolean;
/** character */
typedef char ALchar;
/** signed 8-bit integer */
typedef signed char ALbyte;
/** unsigned 8-bit integer */
typedef unsigned char ALubyte;
/** signed 16-bit integer */
typedef short ALshort;
/** unsigned 16-bit integer */
typedef unsigned short ALushort;
/** signed 32-bit integer */
typedef int ALint;
/** unsigned 32-bit integer */
typedef unsigned int ALuint;
/** non-negative 32-bit integer size */
typedef int ALsizei;
/** 32-bit enumeration value */
typedef int ALenum;
/** 32-bit IEEE-754 floating-point */
typedef float ALfloat;
/** 64-bit IEEE-754 floating-point */
typedef double ALdouble;
/** void type (opaque pointers only) */
typedef void ALvoid;
/* Renderer State management. */
void alEnable(ALenum capability);
void alDisable(ALenum capability);
ALboolean alIsEnabled(ALenum capability);
/* Context state setting. */
void alDopplerFactor(ALfloat value);
void alDopplerVelocity(ALfloat value);
void alSpeedOfSound(ALfloat value);
void alDistanceModel(ALenum distanceModel);
/* Context state retrieval. */
const ALchar* alGetString(ALenum param);
void alGetBooleanv(ALenum param, ALboolean *values);
void alGetIntegerv(ALenum param, ALint *values);
void alGetFloatv(ALenum param, ALfloat *values);
void alGetDoublev(ALenum param, ALdouble *values);
ALboolean alGetBoolean(ALenum param);
ALint alGetInteger(ALenum param);
ALfloat alGetFloat(ALenum param);
ALdouble alGetDouble(ALenum param);
/**
* Obtain the first error generated in the AL context since the last call to
* this function.
*/
ALenum alGetError(void);
/** Query for the presence of an extension on the AL context. */
ALboolean alIsExtensionPresent(const ALchar *extname);
/**
* Retrieve the address of a function. The returned function may be context-
* specific.
*/
void* alGetProcAddress(const ALchar *fname);
/**
* Retrieve the value of an enum. The returned value may be context-specific.
*/
ALenum alGetEnumValue(const ALchar *ename);
/* Set listener parameters. */
void alListenerf(ALenum param, ALfloat value);
void alListener3f(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
void alListenerfv(ALenum param, const ALfloat *values);
void alListeneri(ALenum param, ALint value);
void alListener3i(ALenum param, ALint value1, ALint value2, ALint value3);
void alListeneriv(ALenum param, const ALint *values);
/* Get listener parameters. */
void alGetListenerf(ALenum param, ALfloat *value);
void alGetListener3f(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
void alGetListenerfv(ALenum param, ALfloat *values);
void alGetListeneri(ALenum param, ALint *value);
void alGetListener3i(ALenum param, ALint *value1, ALint *value2, ALint *value3);
void alGetListeneriv(ALenum param, ALint *values);
/** Create source objects. */
void alGenSources(ALsizei n, ALuint *sources);
/** Delete source objects. */
void alDeleteSources(ALsizei n, const ALuint *sources);
/** Verify an ID is for a valid source. */
ALboolean alIsSource(ALuint source);
/* Set source parameters. */
void alSourcef(ALuint source, ALenum param, ALfloat value);
void alSource3f(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
void alSourcefv(ALuint source, ALenum param, const ALfloat *values);
void alSourcei(ALuint source, ALenum param, ALint value);
void alSource3i(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3);
void alSourceiv(ALuint source, ALenum param, const ALint *values);
/* Get source parameters. */
void alGetSourcef(ALuint source, ALenum param, ALfloat *value);
void alGetSource3f(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
void alGetSourcefv(ALuint source, ALenum param, ALfloat *values);
void alGetSourcei(ALuint source, ALenum param, ALint *value);
void alGetSource3i(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3);
void alGetSourceiv(ALuint source, ALenum param, ALint *values);
/** Play, restart, or resume a source, setting its state to AL_PLAYING. */
void alSourcePlay(ALuint source);
/** Stop a source, setting its state to AL_STOPPED if playing or paused. */
void alSourceStop(ALuint source);
/** Rewind a source, setting its state to AL_INITIAL. */
void alSourceRewind(ALuint source);
/** Pause a source, setting its state to AL_PAUSED if playing. */
void alSourcePause(ALuint source);
/** Play, restart, or resume a list of sources atomically. */
void alSourcePlayv(ALsizei n, const ALuint *sources);
/** Stop a list of sources atomically. */
void alSourceStopv(ALsizei n, const ALuint *sources);
/** Rewind a list of sources atomically. */
void alSourceRewindv(ALsizei n, const ALuint *sources);
/** Pause a list of sources atomically. */
void alSourcePausev(ALsizei n, const ALuint *sources);
/** Queue buffers onto a source */
void alSourceQueueBuffers(ALuint source, ALsizei nb, const ALuint *buffers);
/** Unqueue processed buffers from a source */
void alSourceUnqueueBuffers(ALuint source, ALsizei nb, ALuint *buffers);
/** Create buffer objects */
void alGenBuffers(ALsizei n, ALuint *buffers);
/** Delete buffer objects */
void alDeleteBuffers(ALsizei n, const ALuint *buffers);
/** Verify an ID is a valid buffer (including the NULL buffer) */
ALboolean alIsBuffer(ALuint buffer);
/**
* Copies data into the buffer, interpreting it using the specified format and
* samplerate.
*/
void alBufferData(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei samplerate);
/* Set buffer parameters. */
void alBufferf(ALuint buffer, ALenum param, ALfloat value);
void alBuffer3f(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
void alBufferfv(ALuint buffer, ALenum param, const ALfloat *values);
void alBufferi(ALuint buffer, ALenum param, ALint value);
void alBuffer3i(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3);
void alBufferiv(ALuint buffer, ALenum param, const ALint *values);
/* Get buffer parameters. */
void alGetBufferf(ALuint buffer, ALenum param, ALfloat *value);
void alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
void alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values);
void alGetBufferi(ALuint buffer, ALenum param, ALint *value);
void alGetBuffer3i(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3);
void alGetBufferiv(ALuint buffer, ALenum param, ALint *values);
/* Pointer-to-function types, useful for storing dynamically loaded AL entry
* points.
*/
typedef void (*LPALENABLE)(ALenum capability);
typedef void (*LPALDISABLE)(ALenum capability);
typedef ALboolean (*LPALISENABLED)(ALenum capability);
typedef const ALchar* (*LPALGETSTRING)(ALenum param);
typedef void (*LPALGETBOOLEANV)(ALenum param, ALboolean *values);
typedef void (*LPALGETINTEGERV)(ALenum param, ALint *values);
typedef void (*LPALGETFLOATV)(ALenum param, ALfloat *values);
typedef void (*LPALGETDOUBLEV)(ALenum param, ALdouble *values);
typedef ALboolean (*LPALGETBOOLEAN)(ALenum param);
typedef ALint (*LPALGETINTEGER)(ALenum param);
typedef ALfloat (*LPALGETFLOAT)(ALenum param);
typedef ALdouble (*LPALGETDOUBLE)(ALenum param);
typedef ALenum (*LPALGETERROR)(void);
typedef ALboolean (*LPALISEXTENSIONPRESENT)(const ALchar *extname);
typedef void* (*LPALGETPROCADDRESS)(const ALchar *fname);
typedef ALenum (*LPALGETENUMVALUE)(const ALchar *ename);
typedef void (*LPALLISTENERF)(ALenum param, ALfloat value);
typedef void (*LPALLISTENER3F)(ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void (*LPALLISTENERFV)(ALenum param, const ALfloat *values);
typedef void (*LPALLISTENERI)(ALenum param, ALint value);
typedef void (*LPALLISTENER3I)(ALenum param, ALint value1, ALint value2, ALint value3);
typedef void (*LPALLISTENERIV)(ALenum param, const ALint *values);
typedef void (*LPALGETLISTENERF)(ALenum param, ALfloat *value);
typedef void (*LPALGETLISTENER3F)(ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void (*LPALGETLISTENERFV)(ALenum param, ALfloat *values);
typedef void (*LPALGETLISTENERI)(ALenum param, ALint *value);
typedef void (*LPALGETLISTENER3I)(ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void (*LPALGETLISTENERIV)(ALenum param, ALint *values);
typedef void (*LPALGENSOURCES)(ALsizei n, ALuint *sources);
typedef void (*LPALDELETESOURCES)(ALsizei n, const ALuint *sources);
typedef ALboolean (*LPALISSOURCE)(ALuint source);
typedef void (*LPALSOURCEF)(ALuint source, ALenum param, ALfloat value);
typedef void (*LPALSOURCE3F)(ALuint source, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void (*LPALSOURCEFV)(ALuint source, ALenum param, const ALfloat *values);
typedef void (*LPALSOURCEI)(ALuint source, ALenum param, ALint value);
typedef void (*LPALSOURCE3I)(ALuint source, ALenum param, ALint value1, ALint value2, ALint value3);
typedef void (*LPALSOURCEIV)(ALuint source, ALenum param, const ALint *values);
typedef void (*LPALGETSOURCEF)(ALuint source, ALenum param, ALfloat *value);
typedef void (*LPALGETSOURCE3F)(ALuint source, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void (*LPALGETSOURCEFV)(ALuint source, ALenum param, ALfloat *values);
typedef void (*LPALGETSOURCEI)(ALuint source, ALenum param, ALint *value);
typedef void (*LPALGETSOURCE3I)(ALuint source, ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void (*LPALGETSOURCEIV)(ALuint source, ALenum param, ALint *values);
typedef void (*LPALSOURCEPLAYV)(ALsizei n, const ALuint *sources);
typedef void (*LPALSOURCESTOPV)(ALsizei n, const ALuint *sources);
typedef void (*LPALSOURCEREWINDV)(ALsizei n, const ALuint *sources);
typedef void (*LPALSOURCEPAUSEV)(ALsizei n, const ALuint *sources);
typedef void (*LPALSOURCEPLAY)(ALuint source);
typedef void (*LPALSOURCESTOP)(ALuint source);
typedef void (*LPALSOURCEREWIND)(ALuint source);
typedef void (*LPALSOURCEPAUSE)(ALuint source);
typedef void (*LPALSOURCEQUEUEBUFFERS)(ALuint source, ALsizei nb, const ALuint *buffers);
typedef void (*LPALSOURCEUNQUEUEBUFFERS)(ALuint source, ALsizei nb, ALuint *buffers);
typedef void (*LPALGENBUFFERS)(ALsizei n, ALuint *buffers);
typedef void (*LPALDELETEBUFFERS)(ALsizei n, const ALuint *buffers);
typedef ALboolean (*LPALISBUFFER)(ALuint buffer);
typedef void (*LPALBUFFERDATA)(ALuint buffer, ALenum format, const ALvoid *data, ALsizei size, ALsizei samplerate);
typedef void (*LPALBUFFERF)(ALuint buffer, ALenum param, ALfloat value);
typedef void (*LPALBUFFER3F)(ALuint buffer, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3);
typedef void (*LPALBUFFERFV)(ALuint buffer, ALenum param, const ALfloat *values);
typedef void (*LPALBUFFERI)(ALuint buffer, ALenum param, ALint value);
typedef void (*LPALBUFFER3I)(ALuint buffer, ALenum param, ALint value1, ALint value2, ALint value3);
typedef void (*LPALBUFFERIV)(ALuint buffer, ALenum param, const ALint *values);
typedef void (*LPALGETBUFFERF)(ALuint buffer, ALenum param, ALfloat *value);
typedef void (*LPALGETBUFFER3F)(ALuint buffer, ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3);
typedef void (*LPALGETBUFFERFV)(ALuint buffer, ALenum param, ALfloat *values);
typedef void (*LPALGETBUFFERI)(ALuint buffer, ALenum param, ALint *value);
typedef void (*LPALGETBUFFER3I)(ALuint buffer, ALenum param, ALint *value1, ALint *value2, ALint *value3);
typedef void (*LPALGETBUFFERIV)(ALuint buffer, ALenum param, ALint *values);
typedef void (*LPALDOPPLERFACTOR)(ALfloat value);
typedef void (*LPALDOPPLERVELOCITY)(ALfloat value);
typedef void (*LPALSPEEDOFSOUND)(ALfloat value);
typedef void (*LPALDISTANCEMODEL)(ALenum distanceModel);
]]