1# ----------------------------------------------------------------------------
2# pyglet
3# Copyright (c) 2006-2008 Alex Holkner
4# Copyright (c) 2008-2021 pyglet contributors
5# All rights reserved.
6#
7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions
9# are met:
10#
11#  * Redistributions of source code must retain the above copyright
12#    notice, this list of conditions and the following disclaimer.
13#  * Redistributions in binary form must reproduce the above copyright
14#    notice, this list of conditions and the following disclaimer in
15#    the documentation and/or other materials provided with the
16#    distribution.
17#  * Neither the name of pyglet nor the names of its
18#    contributors may be used to endorse or promote products
19#    derived from this software without specific prior written
20#    permission.
21#
22# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
28# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
29# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
32# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
33# POSSIBILITY OF SUCH DAMAGE.
34# ----------------------------------------------------------------------------
35"""Wrapper for openal
36
37Generated with:
38../tools/wraptypes/wrap.py /usr/include/AL/al.h -lopenal -olib_openal.py
39
40.. Hacked to remove non-existent library functions.
41
42TODO add alGetError check.
43
44.. alListener3i and alListeneriv are present in my OS X 10.4 but not another
4510.4 user's installation.  They've also been removed for compatibility.
46"""
47
48import ctypes
49from ctypes import *
50
51import pyglet.lib
52
53_lib = pyglet.lib.load_library('openal',
54                               win32='openal32',
55                               framework='OpenAL')
56
57_int_types = (c_int16, c_int32)
58if hasattr(ctypes, 'c_int64'):
59    # Some builds of ctypes apparently do not have c_int64
60    # defined; it's a pretty good bet that these builds do not
61    # have 64-bit pointers.
62    _int_types += (ctypes.c_int64,)
63for t in _int_types:
64    if sizeof(t) == sizeof(c_size_t):
65        c_ptrdiff_t = t
66
67
68class c_void(Structure):
69    # c_void_p is a buggy return type, converting to int, so
70    # POINTER(None) == c_void_p is actually written as
71    # POINTER(c_void), so it can be treated as a real pointer.
72    _fields_ = [('dummy', c_int)]
73
74
75AL_API = 0  # /usr/include/AL/al.h:39
76ALAPI = 0  # /usr/include/AL/al.h:59
77AL_INVALID = -1  # /usr/include/AL/al.h:61
78AL_ILLEGAL_ENUM = 0  # /usr/include/AL/al.h:62
79AL_ILLEGAL_COMMAND = 0  # /usr/include/AL/al.h:63
80ALboolean = c_int  # Better return type than c_char, as generated
81ALchar = c_char  # /usr/include/AL/al.h:73
82ALbyte = c_char  # /usr/include/AL/al.h:76
83ALubyte = c_ubyte  # /usr/include/AL/al.h:79
84ALshort = c_short  # /usr/include/AL/al.h:82
85ALushort = c_ushort  # /usr/include/AL/al.h:85
86ALint = c_int  # /usr/include/AL/al.h:88
87ALuint = c_uint  # /usr/include/AL/al.h:91
88ALsizei = c_int  # /usr/include/AL/al.h:94
89ALenum = c_int  # /usr/include/AL/al.h:97
90ALfloat = c_float  # /usr/include/AL/al.h:100
91ALdouble = c_double  # /usr/include/AL/al.h:103
92ALvoid = None  # /usr/include/AL/al.h:106
93AL_NONE = 0  # /usr/include/AL/al.h:112
94AL_FALSE = 0  # /usr/include/AL/al.h:115
95AL_TRUE = 1  # /usr/include/AL/al.h:118
96AL_SOURCE_RELATIVE = 514  # /usr/include/AL/al.h:121
97AL_CONE_INNER_ANGLE = 4097  # /usr/include/AL/al.h:130
98AL_CONE_OUTER_ANGLE = 4098  # /usr/include/AL/al.h:137
99AL_PITCH = 4099  # /usr/include/AL/al.h:145
100AL_POSITION = 4100  # /usr/include/AL/al.h:157
101AL_DIRECTION = 4101  # /usr/include/AL/al.h:160
102AL_VELOCITY = 4102  # /usr/include/AL/al.h:163
103AL_LOOPING = 4103  # /usr/include/AL/al.h:171
104AL_BUFFER = 4105  # /usr/include/AL/al.h:178
105AL_GAIN = 4106  # /usr/include/AL/al.h:191
106AL_MIN_GAIN = 4109  # /usr/include/AL/al.h:200
107AL_MAX_GAIN = 4110  # /usr/include/AL/al.h:209
108AL_ORIENTATION = 4111  # /usr/include/AL/al.h:216
109AL_SOURCE_STATE = 4112  # /usr/include/AL/al.h:221
110AL_INITIAL = 4113  # /usr/include/AL/al.h:222
111AL_PLAYING = 4114  # /usr/include/AL/al.h:223
112AL_PAUSED = 4115  # /usr/include/AL/al.h:224
113AL_STOPPED = 4116  # /usr/include/AL/al.h:225
114AL_BUFFERS_QUEUED = 4117  # /usr/include/AL/al.h:230
115AL_BUFFERS_PROCESSED = 4118  # /usr/include/AL/al.h:231
116AL_SEC_OFFSET = 4132  # /usr/include/AL/al.h:236
117AL_SAMPLE_OFFSET = 4133  # /usr/include/AL/al.h:237
118AL_BYTE_OFFSET = 4134  # /usr/include/AL/al.h:238
119AL_SOURCE_TYPE = 4135  # /usr/include/AL/al.h:246
120AL_STATIC = 4136  # /usr/include/AL/al.h:247
121AL_STREAMING = 4137  # /usr/include/AL/al.h:248
122AL_UNDETERMINED = 4144  # /usr/include/AL/al.h:249
123AL_FORMAT_MONO8 = 4352  # /usr/include/AL/al.h:252
124AL_FORMAT_MONO16 = 4353  # /usr/include/AL/al.h:253
125AL_FORMAT_STEREO8 = 4354  # /usr/include/AL/al.h:254
126AL_FORMAT_STEREO16 = 4355  # /usr/include/AL/al.h:255
127AL_REFERENCE_DISTANCE = 4128  # /usr/include/AL/al.h:265
128AL_ROLLOFF_FACTOR = 4129  # /usr/include/AL/al.h:273
129AL_CONE_OUTER_GAIN = 4130  # /usr/include/AL/al.h:282
130AL_MAX_DISTANCE = 4131  # /usr/include/AL/al.h:292
131AL_FREQUENCY = 8193  # /usr/include/AL/al.h:300
132AL_BITS = 8194  # /usr/include/AL/al.h:301
133AL_CHANNELS = 8195  # /usr/include/AL/al.h:302
134AL_SIZE = 8196  # /usr/include/AL/al.h:303
135AL_UNUSED = 8208  # /usr/include/AL/al.h:310
136AL_PENDING = 8209  # /usr/include/AL/al.h:311
137AL_PROCESSED = 8210  # /usr/include/AL/al.h:312
138AL_NO_ERROR = 0  # /usr/include/AL/al.h:316
139AL_INVALID_NAME = 40961  # /usr/include/AL/al.h:321
140AL_INVALID_ENUM = 40962  # /usr/include/AL/al.h:326
141AL_INVALID_VALUE = 40963  # /usr/include/AL/al.h:331
142AL_INVALID_OPERATION = 40964  # /usr/include/AL/al.h:336
143AL_OUT_OF_MEMORY = 40965  # /usr/include/AL/al.h:342
144AL_VENDOR = 45057  # /usr/include/AL/al.h:346
145AL_VERSION = 45058  # /usr/include/AL/al.h:347
146AL_RENDERER = 45059  # /usr/include/AL/al.h:348
147AL_EXTENSIONS = 45060  # /usr/include/AL/al.h:349
148AL_DOPPLER_FACTOR = 49152  # /usr/include/AL/al.h:356
149AL_DOPPLER_VELOCITY = 49153  # /usr/include/AL/al.h:361
150AL_SPEED_OF_SOUND = 49155  # /usr/include/AL/al.h:366
151AL_DISTANCE_MODEL = 53248  # /usr/include/AL/al.h:375
152AL_INVERSE_DISTANCE = 53249  # /usr/include/AL/al.h:376
153AL_INVERSE_DISTANCE_CLAMPED = 53250  # /usr/include/AL/al.h:377
154AL_LINEAR_DISTANCE = 53251  # /usr/include/AL/al.h:378
155AL_LINEAR_DISTANCE_CLAMPED = 53252  # /usr/include/AL/al.h:379
156AL_EXPONENT_DISTANCE = 53253  # /usr/include/AL/al.h:380
157AL_EXPONENT_DISTANCE_CLAMPED = 53254  # /usr/include/AL/al.h:381
158# /usr/include/AL/al.h:386
159alEnable = _lib.alEnable
160alEnable.restype = None
161alEnable.argtypes = [ALenum]
162
163# /usr/include/AL/al.h:388
164alDisable = _lib.alDisable
165alDisable.restype = None
166alDisable.argtypes = [ALenum]
167
168# /usr/include/AL/al.h:390
169alIsEnabled = _lib.alIsEnabled
170alIsEnabled.restype = ALboolean
171alIsEnabled.argtypes = [ALenum]
172
173# /usr/include/AL/al.h:396
174alGetString = _lib.alGetString
175alGetString.restype = POINTER(ALchar)
176alGetString.argtypes = [ALenum]
177
178# /usr/include/AL/al.h:398
179alGetBooleanv = _lib.alGetBooleanv
180alGetBooleanv.restype = None
181alGetBooleanv.argtypes = [ALenum, POINTER(ALboolean)]
182
183# /usr/include/AL/al.h:400
184alGetIntegerv = _lib.alGetIntegerv
185alGetIntegerv.restype = None
186alGetIntegerv.argtypes = [ALenum, POINTER(ALint)]
187
188# /usr/include/AL/al.h:402
189alGetFloatv = _lib.alGetFloatv
190alGetFloatv.restype = None
191alGetFloatv.argtypes = [ALenum, POINTER(ALfloat)]
192
193# /usr/include/AL/al.h:404
194alGetDoublev = _lib.alGetDoublev
195alGetDoublev.restype = None
196alGetDoublev.argtypes = [ALenum, POINTER(ALdouble)]
197
198# /usr/include/AL/al.h:406
199alGetBoolean = _lib.alGetBoolean
200alGetBoolean.restype = ALboolean
201alGetBoolean.argtypes = [ALenum]
202
203# /usr/include/AL/al.h:408
204alGetInteger = _lib.alGetInteger
205alGetInteger.restype = ALint
206alGetInteger.argtypes = [ALenum]
207
208# /usr/include/AL/al.h:410
209alGetFloat = _lib.alGetFloat
210alGetFloat.restype = ALfloat
211alGetFloat.argtypes = [ALenum]
212
213# /usr/include/AL/al.h:412
214alGetDouble = _lib.alGetDouble
215alGetDouble.restype = ALdouble
216alGetDouble.argtypes = [ALenum]
217
218# /usr/include/AL/al.h:419
219alGetError = _lib.alGetError
220alGetError.restype = ALenum
221alGetError.argtypes = []
222
223# /usr/include/AL/al.h:427
224alIsExtensionPresent = _lib.alIsExtensionPresent
225alIsExtensionPresent.restype = ALboolean
226alIsExtensionPresent.argtypes = [POINTER(ALchar)]
227
228# /usr/include/AL/al.h:429
229alGetProcAddress = _lib.alGetProcAddress
230alGetProcAddress.restype = POINTER(c_void)
231alGetProcAddress.argtypes = [POINTER(ALchar)]
232
233# /usr/include/AL/al.h:431
234alGetEnumValue = _lib.alGetEnumValue
235alGetEnumValue.restype = ALenum
236alGetEnumValue.argtypes = [POINTER(ALchar)]
237
238# /usr/include/AL/al.h:450
239alListenerf = _lib.alListenerf
240alListenerf.restype = None
241alListenerf.argtypes = [ALenum, ALfloat]
242
243# /usr/include/AL/al.h:452
244alListener3f = _lib.alListener3f
245alListener3f.restype = None
246alListener3f.argtypes = [ALenum, ALfloat, ALfloat, ALfloat]
247
248# /usr/include/AL/al.h:454
249alListenerfv = _lib.alListenerfv
250alListenerfv.restype = None
251alListenerfv.argtypes = [ALenum, POINTER(ALfloat)]
252
253# /usr/include/AL/al.h:456
254alListeneri = _lib.alListeneri
255alListeneri.restype = None
256alListeneri.argtypes = [ALenum, ALint]
257
258# /usr/include/AL/al.h:458
259# alListener3i = _lib.alListener3i
260# alListener3i.restype = None
261# alListener3i.argtypes = [ALenum, ALint, ALint, ALint]
262
263# /usr/include/AL/al.h:460
264# alListeneriv = _lib.alListeneriv
265# alListeneriv.restype = None
266# alListeneriv.argtypes = [ALenum, POINTER(ALint)]
267
268# /usr/include/AL/al.h:465
269alGetListenerf = _lib.alGetListenerf
270alGetListenerf.restype = None
271alGetListenerf.argtypes = [ALenum, POINTER(ALfloat)]
272
273# /usr/include/AL/al.h:467
274alGetListener3f = _lib.alGetListener3f
275alGetListener3f.restype = None
276alGetListener3f.argtypes = [ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat)]
277
278# /usr/include/AL/al.h:469
279alGetListenerfv = _lib.alGetListenerfv
280alGetListenerfv.restype = None
281alGetListenerfv.argtypes = [ALenum, POINTER(ALfloat)]
282
283# /usr/include/AL/al.h:471
284alGetListeneri = _lib.alGetListeneri
285alGetListeneri.restype = None
286alGetListeneri.argtypes = [ALenum, POINTER(ALint)]
287
288# /usr/include/AL/al.h:473
289alGetListener3i = _lib.alGetListener3i
290alGetListener3i.restype = None
291alGetListener3i.argtypes = [ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint)]
292
293# /usr/include/AL/al.h:475
294alGetListeneriv = _lib.alGetListeneriv
295alGetListeneriv.restype = None
296alGetListeneriv.argtypes = [ALenum, POINTER(ALint)]
297
298# /usr/include/AL/al.h:512
299alGenSources = _lib.alGenSources
300alGenSources.restype = None
301alGenSources.argtypes = [ALsizei, POINTER(ALuint)]
302
303# /usr/include/AL/al.h:515
304alDeleteSources = _lib.alDeleteSources
305alDeleteSources.restype = None
306alDeleteSources.argtypes = [ALsizei, POINTER(ALuint)]
307
308# /usr/include/AL/al.h:518
309alIsSource = _lib.alIsSource
310alIsSource.restype = ALboolean
311alIsSource.argtypes = [ALuint]
312
313# /usr/include/AL/al.h:523
314alSourcef = _lib.alSourcef
315alSourcef.restype = None
316alSourcef.argtypes = [ALuint, ALenum, ALfloat]
317
318# /usr/include/AL/al.h:525
319alSource3f = _lib.alSource3f
320alSource3f.restype = None
321alSource3f.argtypes = [ALuint, ALenum, ALfloat, ALfloat, ALfloat]
322
323# /usr/include/AL/al.h:527
324alSourcefv = _lib.alSourcefv
325alSourcefv.restype = None
326alSourcefv.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
327
328# /usr/include/AL/al.h:529
329alSourcei = _lib.alSourcei
330alSourcei.restype = None
331alSourcei.argtypes = [ALuint, ALenum, ALint]
332
333# /usr/include/AL/al.h:531
334# alSource3i = _lib.alSource3i
335# alSource3i.restype = None
336# alSource3i.argtypes = [ALuint, ALenum, ALint, ALint, ALint]
337
338# /usr/include/AL/al.h:533
339# alSourceiv = _lib.alSourceiv
340# alSourceiv.restype = None
341# alSourceiv.argtypes = [ALuint, ALenum, POINTER(ALint)]
342
343# /usr/include/AL/al.h:538
344alGetSourcef = _lib.alGetSourcef
345alGetSourcef.restype = None
346alGetSourcef.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
347
348# /usr/include/AL/al.h:540
349alGetSource3f = _lib.alGetSource3f
350alGetSource3f.restype = None
351alGetSource3f.argtypes = [ALuint, ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat)]
352
353# /usr/include/AL/al.h:542
354alGetSourcefv = _lib.alGetSourcefv
355alGetSourcefv.restype = None
356alGetSourcefv.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
357
358# /usr/include/AL/al.h:544
359alGetSourcei = _lib.alGetSourcei
360alGetSourcei.restype = None
361alGetSourcei.argtypes = [ALuint, ALenum, POINTER(ALint)]
362
363# /usr/include/AL/al.h:546
364# alGetSource3i = _lib.alGetSource3i
365# alGetSource3i.restype = None
366# alGetSource3i.argtypes = [ALuint, ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint)]
367
368# /usr/include/AL/al.h:548
369alGetSourceiv = _lib.alGetSourceiv
370alGetSourceiv.restype = None
371alGetSourceiv.argtypes = [ALuint, ALenum, POINTER(ALint)]
372
373# /usr/include/AL/al.h:556
374alSourcePlayv = _lib.alSourcePlayv
375alSourcePlayv.restype = None
376alSourcePlayv.argtypes = [ALsizei, POINTER(ALuint)]
377
378# /usr/include/AL/al.h:559
379alSourceStopv = _lib.alSourceStopv
380alSourceStopv.restype = None
381alSourceStopv.argtypes = [ALsizei, POINTER(ALuint)]
382
383# /usr/include/AL/al.h:562
384alSourceRewindv = _lib.alSourceRewindv
385alSourceRewindv.restype = None
386alSourceRewindv.argtypes = [ALsizei, POINTER(ALuint)]
387
388# /usr/include/AL/al.h:565
389alSourcePausev = _lib.alSourcePausev
390alSourcePausev.restype = None
391alSourcePausev.argtypes = [ALsizei, POINTER(ALuint)]
392
393# /usr/include/AL/al.h:572
394alSourcePlay = _lib.alSourcePlay
395alSourcePlay.restype = None
396alSourcePlay.argtypes = [ALuint]
397
398# /usr/include/AL/al.h:575
399alSourceStop = _lib.alSourceStop
400alSourceStop.restype = None
401alSourceStop.argtypes = [ALuint]
402
403# /usr/include/AL/al.h:578
404alSourceRewind = _lib.alSourceRewind
405alSourceRewind.restype = None
406alSourceRewind.argtypes = [ALuint]
407
408# /usr/include/AL/al.h:581
409alSourcePause = _lib.alSourcePause
410alSourcePause.restype = None
411alSourcePause.argtypes = [ALuint]
412
413# /usr/include/AL/al.h:586
414alSourceQueueBuffers = _lib.alSourceQueueBuffers
415alSourceQueueBuffers.restype = None
416alSourceQueueBuffers.argtypes = [ALuint, ALsizei, POINTER(ALuint)]
417
418# /usr/include/AL/al.h:588
419alSourceUnqueueBuffers = _lib.alSourceUnqueueBuffers
420alSourceUnqueueBuffers.restype = None
421alSourceUnqueueBuffers.argtypes = [ALuint, ALsizei, POINTER(ALuint)]
422
423# /usr/include/AL/al.h:606
424alGenBuffers = _lib.alGenBuffers
425alGenBuffers.restype = None
426alGenBuffers.argtypes = [ALsizei, POINTER(ALuint)]
427
428# /usr/include/AL/al.h:609
429alDeleteBuffers = _lib.alDeleteBuffers
430alDeleteBuffers.restype = None
431alDeleteBuffers.argtypes = [ALsizei, POINTER(ALuint)]
432
433# /usr/include/AL/al.h:612
434alIsBuffer = _lib.alIsBuffer
435alIsBuffer.restype = ALboolean
436alIsBuffer.argtypes = [ALuint]
437
438# /usr/include/AL/al.h:615
439alBufferData = _lib.alBufferData
440alBufferData.restype = None
441alBufferData.argtypes = [ALuint, ALenum, POINTER(ALvoid), ALsizei, ALsizei]
442
443# /usr/include/AL/al.h:620
444alBufferf = _lib.alBufferf
445alBufferf.restype = None
446alBufferf.argtypes = [ALuint, ALenum, ALfloat]
447
448# /usr/include/AL/al.h:622
449alBuffer3f = _lib.alBuffer3f
450alBuffer3f.restype = None
451alBuffer3f.argtypes = [ALuint, ALenum, ALfloat, ALfloat, ALfloat]
452
453# /usr/include/AL/al.h:624
454alBufferfv = _lib.alBufferfv
455alBufferfv.restype = None
456alBufferfv.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
457
458# /usr/include/AL/al.h:626
459alBufferi = _lib.alBufferi
460alBufferi.restype = None
461alBufferi.argtypes = [ALuint, ALenum, ALint]
462
463# /usr/include/AL/al.h:628
464alBuffer3i = _lib.alBuffer3i
465alBuffer3i.restype = None
466alBuffer3i.argtypes = [ALuint, ALenum, ALint, ALint, ALint]
467
468# /usr/include/AL/al.h:630
469alBufferiv = _lib.alBufferiv
470alBufferiv.restype = None
471alBufferiv.argtypes = [ALuint, ALenum, POINTER(ALint)]
472
473# /usr/include/AL/al.h:635
474alGetBufferf = _lib.alGetBufferf
475alGetBufferf.restype = None
476alGetBufferf.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
477
478# /usr/include/AL/al.h:637
479alGetBuffer3f = _lib.alGetBuffer3f
480alGetBuffer3f.restype = None
481alGetBuffer3f.argtypes = [ALuint, ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat)]
482
483# /usr/include/AL/al.h:639
484alGetBufferfv = _lib.alGetBufferfv
485alGetBufferfv.restype = None
486alGetBufferfv.argtypes = [ALuint, ALenum, POINTER(ALfloat)]
487
488# /usr/include/AL/al.h:641
489alGetBufferi = _lib.alGetBufferi
490alGetBufferi.restype = None
491alGetBufferi.argtypes = [ALuint, ALenum, POINTER(ALint)]
492
493# /usr/include/AL/al.h:643
494alGetBuffer3i = _lib.alGetBuffer3i
495alGetBuffer3i.restype = None
496alGetBuffer3i.argtypes = [ALuint, ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint)]
497
498# /usr/include/AL/al.h:645
499alGetBufferiv = _lib.alGetBufferiv
500alGetBufferiv.restype = None
501alGetBufferiv.argtypes = [ALuint, ALenum, POINTER(ALint)]
502
503# /usr/include/AL/al.h:651
504alDopplerFactor = _lib.alDopplerFactor
505alDopplerFactor.restype = None
506alDopplerFactor.argtypes = [ALfloat]
507
508# /usr/include/AL/al.h:653
509alDopplerVelocity = _lib.alDopplerVelocity
510alDopplerVelocity.restype = None
511alDopplerVelocity.argtypes = [ALfloat]
512
513# /usr/include/AL/al.h:655
514alSpeedOfSound = _lib.alSpeedOfSound
515alSpeedOfSound.restype = None
516alSpeedOfSound.argtypes = [ALfloat]
517
518# /usr/include/AL/al.h:657
519alDistanceModel = _lib.alDistanceModel
520alDistanceModel.restype = None
521alDistanceModel.argtypes = [ALenum]
522
523LPALENABLE = CFUNCTYPE(None, ALenum)  # /usr/include/AL/al.h:662
524LPALDISABLE = CFUNCTYPE(None, ALenum)  # /usr/include/AL/al.h:663
525LPALISENABLED = CFUNCTYPE(ALboolean, ALenum)  # /usr/include/AL/al.h:664
526LPALGETSTRING = CFUNCTYPE(POINTER(ALchar), ALenum)  # /usr/include/AL/al.h:665
527LPALGETBOOLEANV = CFUNCTYPE(None, ALenum, POINTER(ALboolean))  # /usr/include/AL/al.h:666
528LPALGETINTEGERV = CFUNCTYPE(None, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:667
529LPALGETFLOATV = CFUNCTYPE(None, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:668
530LPALGETDOUBLEV = CFUNCTYPE(None, ALenum, POINTER(ALdouble))  # /usr/include/AL/al.h:669
531LPALGETBOOLEAN = CFUNCTYPE(ALboolean, ALenum)  # /usr/include/AL/al.h:670
532LPALGETINTEGER = CFUNCTYPE(ALint, ALenum)  # /usr/include/AL/al.h:671
533LPALGETFLOAT = CFUNCTYPE(ALfloat, ALenum)  # /usr/include/AL/al.h:672
534LPALGETDOUBLE = CFUNCTYPE(ALdouble, ALenum)  # /usr/include/AL/al.h:673
535LPALGETERROR = CFUNCTYPE(ALenum)  # /usr/include/AL/al.h:674
536LPALISEXTENSIONPRESENT = CFUNCTYPE(ALboolean, POINTER(ALchar))  # /usr/include/AL/al.h:675
537LPALGETPROCADDRESS = CFUNCTYPE(POINTER(c_void), POINTER(ALchar))  # /usr/include/AL/al.h:676
538LPALGETENUMVALUE = CFUNCTYPE(ALenum, POINTER(ALchar))  # /usr/include/AL/al.h:677
539LPALLISTENERF = CFUNCTYPE(None, ALenum, ALfloat)  # /usr/include/AL/al.h:678
540LPALLISTENER3F = CFUNCTYPE(None, ALenum, ALfloat, ALfloat, ALfloat)  # /usr/include/AL/al.h:679
541LPALLISTENERFV = CFUNCTYPE(None, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:680
542LPALLISTENERI = CFUNCTYPE(None, ALenum, ALint)  # /usr/include/AL/al.h:681
543LPALLISTENER3I = CFUNCTYPE(None, ALenum, ALint, ALint, ALint)  # /usr/include/AL/al.h:682
544LPALLISTENERIV = CFUNCTYPE(None, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:683
545LPALGETLISTENERF = CFUNCTYPE(None, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:684
546LPALGETLISTENER3F = CFUNCTYPE(None, ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat))  # /usr/include/AL/al.h:685
547LPALGETLISTENERFV = CFUNCTYPE(None, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:686
548LPALGETLISTENERI = CFUNCTYPE(None, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:687
549LPALGETLISTENER3I = CFUNCTYPE(None, ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint))  # /usr/include/AL/al.h:688
550LPALGETLISTENERIV = CFUNCTYPE(None, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:689
551LPALGENSOURCES = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:690
552LPALDELETESOURCES = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:691
553LPALISSOURCE = CFUNCTYPE(ALboolean, ALuint)  # /usr/include/AL/al.h:692
554LPALSOURCEF = CFUNCTYPE(None, ALuint, ALenum, ALfloat)  # /usr/include/AL/al.h:693
555LPALSOURCE3F = CFUNCTYPE(None, ALuint, ALenum, ALfloat, ALfloat, ALfloat)  # /usr/include/AL/al.h:694
556LPALSOURCEFV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:695
557LPALSOURCEI = CFUNCTYPE(None, ALuint, ALenum, ALint)  # /usr/include/AL/al.h:696
558LPALSOURCE3I = CFUNCTYPE(None, ALuint, ALenum, ALint, ALint, ALint)  # /usr/include/AL/al.h:697
559LPALSOURCEIV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:698
560LPALGETSOURCEF = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:699
561LPALGETSOURCE3F = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat))  # /usr/include/AL/al.h:700
562LPALGETSOURCEFV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:701
563LPALGETSOURCEI = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:702
564LPALGETSOURCE3I = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint))  # /usr/include/AL/al.h:703
565LPALGETSOURCEIV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:704
566LPALSOURCEPLAYV = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:705
567LPALSOURCESTOPV = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:706
568LPALSOURCEREWINDV = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:707
569LPALSOURCEPAUSEV = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:708
570LPALSOURCEPLAY = CFUNCTYPE(None, ALuint)  # /usr/include/AL/al.h:709
571LPALSOURCESTOP = CFUNCTYPE(None, ALuint)  # /usr/include/AL/al.h:710
572LPALSOURCEREWIND = CFUNCTYPE(None, ALuint)  # /usr/include/AL/al.h:711
573LPALSOURCEPAUSE = CFUNCTYPE(None, ALuint)  # /usr/include/AL/al.h:712
574LPALSOURCEQUEUEBUFFERS = CFUNCTYPE(None, ALuint, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:713
575LPALSOURCEUNQUEUEBUFFERS = CFUNCTYPE(None, ALuint, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:714
576LPALGENBUFFERS = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:715
577LPALDELETEBUFFERS = CFUNCTYPE(None, ALsizei, POINTER(ALuint))  # /usr/include/AL/al.h:716
578LPALISBUFFER = CFUNCTYPE(ALboolean, ALuint)  # /usr/include/AL/al.h:717
579LPALBUFFERDATA = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALvoid), ALsizei, ALsizei)  # /usr/include/AL/al.h:718
580LPALBUFFERF = CFUNCTYPE(None, ALuint, ALenum, ALfloat)  # /usr/include/AL/al.h:719
581LPALBUFFER3F = CFUNCTYPE(None, ALuint, ALenum, ALfloat, ALfloat, ALfloat)  # /usr/include/AL/al.h:720
582LPALBUFFERFV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:721
583LPALBUFFERI = CFUNCTYPE(None, ALuint, ALenum, ALint)  # /usr/include/AL/al.h:722
584LPALBUFFER3I = CFUNCTYPE(None, ALuint, ALenum, ALint, ALint, ALint)  # /usr/include/AL/al.h:723
585LPALBUFFERIV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:724
586LPALGETBUFFERF = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:725
587LPALGETBUFFER3F = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat), POINTER(ALfloat), POINTER(ALfloat))  # /usr/include/AL/al.h:726
588LPALGETBUFFERFV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALfloat))  # /usr/include/AL/al.h:727
589LPALGETBUFFERI = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:728
590LPALGETBUFFER3I = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint), POINTER(ALint), POINTER(ALint))  # /usr/include/AL/al.h:729
591LPALGETBUFFERIV = CFUNCTYPE(None, ALuint, ALenum, POINTER(ALint))  # /usr/include/AL/al.h:730
592LPALDOPPLERFACTOR = CFUNCTYPE(None, ALfloat)  # /usr/include/AL/al.h:731
593LPALDOPPLERVELOCITY = CFUNCTYPE(None, ALfloat)  # /usr/include/AL/al.h:732
594LPALSPEEDOFSOUND = CFUNCTYPE(None, ALfloat)  # /usr/include/AL/al.h:733
595LPALDISTANCEMODEL = CFUNCTYPE(None, ALenum)  # /usr/include/AL/al.h:734
596
597__all__ = ['AL_API', 'ALAPI', 'AL_INVALID', 'AL_ILLEGAL_ENUM',
598           'AL_ILLEGAL_COMMAND', 'ALboolean', 'ALchar', 'ALbyte', 'ALubyte', 'ALshort',
599           'ALushort', 'ALint', 'ALuint', 'ALsizei', 'ALenum', 'ALfloat', 'ALdouble',
600           'ALvoid', 'AL_NONE', 'AL_FALSE', 'AL_TRUE', 'AL_SOURCE_RELATIVE',
601           'AL_CONE_INNER_ANGLE', 'AL_CONE_OUTER_ANGLE', 'AL_PITCH', 'AL_POSITION',
602           'AL_DIRECTION', 'AL_VELOCITY', 'AL_LOOPING', 'AL_BUFFER', 'AL_GAIN',
603           'AL_MIN_GAIN', 'AL_MAX_GAIN', 'AL_ORIENTATION', 'AL_SOURCE_STATE',
604           'AL_INITIAL', 'AL_PLAYING', 'AL_PAUSED', 'AL_STOPPED', 'AL_BUFFERS_QUEUED',
605           'AL_BUFFERS_PROCESSED', 'AL_SEC_OFFSET', 'AL_SAMPLE_OFFSET', 'AL_BYTE_OFFSET',
606           'AL_SOURCE_TYPE', 'AL_STATIC', 'AL_STREAMING', 'AL_UNDETERMINED',
607           'AL_FORMAT_MONO8', 'AL_FORMAT_MONO16', 'AL_FORMAT_STEREO8',
608           'AL_FORMAT_STEREO16', 'AL_REFERENCE_DISTANCE', 'AL_ROLLOFF_FACTOR',
609           'AL_CONE_OUTER_GAIN', 'AL_MAX_DISTANCE', 'AL_FREQUENCY', 'AL_BITS',
610           'AL_CHANNELS', 'AL_SIZE', 'AL_UNUSED', 'AL_PENDING', 'AL_PROCESSED',
611           'AL_NO_ERROR', 'AL_INVALID_NAME', 'AL_INVALID_ENUM', 'AL_INVALID_VALUE',
612           'AL_INVALID_OPERATION', 'AL_OUT_OF_MEMORY', 'AL_VENDOR', 'AL_VERSION',
613           'AL_RENDERER', 'AL_EXTENSIONS', 'AL_DOPPLER_FACTOR', 'AL_DOPPLER_VELOCITY',
614           'AL_SPEED_OF_SOUND', 'AL_DISTANCE_MODEL', 'AL_INVERSE_DISTANCE',
615           'AL_INVERSE_DISTANCE_CLAMPED', 'AL_LINEAR_DISTANCE',
616           'AL_LINEAR_DISTANCE_CLAMPED', 'AL_EXPONENT_DISTANCE',
617           'AL_EXPONENT_DISTANCE_CLAMPED', 'alEnable', 'alDisable', 'alIsEnabled',
618           'alGetString', 'alGetBooleanv', 'alGetIntegerv', 'alGetFloatv',
619           'alGetDoublev', 'alGetBoolean', 'alGetInteger', 'alGetFloat', 'alGetDouble',
620           'alGetError', 'alIsExtensionPresent', 'alGetProcAddress', 'alGetEnumValue',
621           'alListenerf', 'alListener3f', 'alListenerfv', 'alListeneri', 'alListener3i',
622           'alListeneriv', 'alGetListenerf', 'alGetListener3f', 'alGetListenerfv',
623           'alGetListeneri', 'alGetListener3i', 'alGetListeneriv', 'alGenSources',
624           'alDeleteSources', 'alIsSource', 'alSourcef', 'alSource3f', 'alSourcefv',
625           'alSourcei', 'alSource3i', 'alSourceiv', 'alGetSourcef', 'alGetSource3f',
626           'alGetSourcefv', 'alGetSourcei', 'alGetSource3i', 'alGetSourceiv',
627           'alSourcePlayv', 'alSourceStopv', 'alSourceRewindv', 'alSourcePausev',
628           'alSourcePlay', 'alSourceStop', 'alSourceRewind', 'alSourcePause',
629           'alSourceQueueBuffers', 'alSourceUnqueueBuffers', 'alGenBuffers',
630           'alDeleteBuffers', 'alIsBuffer', 'alBufferData', 'alBufferf', 'alBuffer3f',
631           'alBufferfv', 'alBufferi', 'alBuffer3i', 'alBufferiv', 'alGetBufferf',
632           'alGetBuffer3f', 'alGetBufferfv', 'alGetBufferi', 'alGetBuffer3i',
633           'alGetBufferiv', 'alDopplerFactor', 'alDopplerVelocity', 'alSpeedOfSound',
634           'alDistanceModel', 'LPALENABLE', 'LPALDISABLE', 'LPALISENABLED',
635           'LPALGETSTRING', 'LPALGETBOOLEANV', 'LPALGETINTEGERV', 'LPALGETFLOATV',
636           'LPALGETDOUBLEV', 'LPALGETBOOLEAN', 'LPALGETINTEGER', 'LPALGETFLOAT',
637           'LPALGETDOUBLE', 'LPALGETERROR', 'LPALISEXTENSIONPRESENT',
638           'LPALGETPROCADDRESS', 'LPALGETENUMVALUE', 'LPALLISTENERF', 'LPALLISTENER3F',
639           'LPALLISTENERFV', 'LPALLISTENERI', 'LPALLISTENER3I', 'LPALLISTENERIV',
640           'LPALGETLISTENERF', 'LPALGETLISTENER3F', 'LPALGETLISTENERFV',
641           'LPALGETLISTENERI', 'LPALGETLISTENER3I', 'LPALGETLISTENERIV',
642           'LPALGENSOURCES', 'LPALDELETESOURCES', 'LPALISSOURCE', 'LPALSOURCEF',
643           'LPALSOURCE3F', 'LPALSOURCEFV', 'LPALSOURCEI', 'LPALSOURCE3I', 'LPALSOURCEIV',
644           'LPALGETSOURCEF', 'LPALGETSOURCE3F', 'LPALGETSOURCEFV', 'LPALGETSOURCEI',
645           'LPALGETSOURCE3I', 'LPALGETSOURCEIV', 'LPALSOURCEPLAYV', 'LPALSOURCESTOPV',
646           'LPALSOURCEREWINDV', 'LPALSOURCEPAUSEV', 'LPALSOURCEPLAY', 'LPALSOURCESTOP',
647           'LPALSOURCEREWIND', 'LPALSOURCEPAUSE', 'LPALSOURCEQUEUEBUFFERS',
648           'LPALSOURCEUNQUEUEBUFFERS', 'LPALGENBUFFERS', 'LPALDELETEBUFFERS',
649           'LPALISBUFFER', 'LPALBUFFERDATA', 'LPALBUFFERF', 'LPALBUFFER3F',
650           'LPALBUFFERFV', 'LPALBUFFERI', 'LPALBUFFER3I', 'LPALBUFFERIV',
651           'LPALGETBUFFERF', 'LPALGETBUFFER3F', 'LPALGETBUFFERFV', 'LPALGETBUFFERI',
652           'LPALGETBUFFER3I', 'LPALGETBUFFERIV', 'LPALDOPPLERFACTOR',
653           'LPALDOPPLERVELOCITY', 'LPALSPEEDOFSOUND', 'LPALDISTANCEMODEL']
654