root/trunk/al/al.d

Revision 158, 14.2 kB (checked in by jpelcis, 2 years ago)

Improved Mac OS X support.

Line 
1 module c.al.al;
2
3 /*
4  * OpenAL cross platform audio library
5  * Copyright  (C) 1999-2000 by authors.
6  * This library is free software; you can redistribute it and/or
7  *  modify it under the terms of the GNU Library General Public
8  *  License as published by the Free Software Foundation; either
9  *  version 2 of the License, or  (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  *  Library General Public License for more details.
15  *
16  * You should have received a copy of the GNU Library General Public
17  *  License along with this library; if not, write to the
18  *  Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19  *  Boston, MA  02111-1307, USA.
20  * Or go to http://www.gnu.org/copyleft/lgpl.html
21  */
22
23 private import std.loader;
24 public import c.al.altypes;
25 public import c.al.alc;
26 public import c.al.alctypes;
27
28 private HXModule aldrv;
29
30 private void* getProc (char[] procname) {
31     void* symbol = ExeModule_GetSymbol (aldrv, procname);
32     if (symbol == null) {
33         printf("Failed to load OpenAL function " ~ procname ~ ".\n");
34     }
35     return (symbol);
36 }
37
38 static this() {
39     version (Windows) {
40         aldrv = ExeModule_Load("OpenAL32.dll");
41     } else version (linux) {
42         aldrv = ExeModule_Load("libal.so");
43     } else version (darwin) {
44         aldrv = ExeModule_Load("/System/Library/Frameworks/OpenAL.framework");
45     }
46     //al.d
47     alEnable = cast(pfalEnable)getProc("alEnable");
48     alDisable = cast(pfalDisable)getProc("alDisable");
49     alIsEnabled = cast(pfalIsEnabled)getProc("alIsEnabled");
50     alGetBooleanv = cast(pfalGetBooleanv)getProc("alGetBooleanv");
51     alGetIntegerv = cast(pfalGetIntegerv)getProc("alGetIntegerv");
52     alGetFloatv = cast(pfalGetFloatv)getProc("alGetFloatv");
53     alGetDoublev = cast(pfalGetDoublev)getProc("alGetDoublev");
54     alGetString = cast(pfalGetString)getProc("alGetString");
55     alGetBoolean = cast(pfalGetBoolean)getProc("alGetBoolean");
56     alGetInteger = cast(pfalGetInteger)getProc("alGetInteger");
57     alGetFloat = cast(pfalGetFloat)getProc("alGetFloat");
58     alGetDouble = cast(pfalGetDouble)getProc("alGetDouble");
59     alGetError = cast(pfalGetError)getProc("alGetError");
60     alIsExtensionPresent = cast(pfalIsExtensionPresent)getProc("alIsExtensionPresent");
61     alGetProcAddress = cast(pfalGetProcAddress)getProc("alGetProcAddress");
62     alGetEnumValue = cast(pfalGetEnumValue)getProc("alGetEnumValue");
63     alListenerf = cast(pfalListenerf)getProc("alListenerf");
64     alListener3f = cast(pfalListener3f)getProc("alListener3f");
65     alListenerfv = cast(pfalListenerfv)getProc("alListenerfv");
66     alListeneri = cast(pfalListeneri)getProc("alListeneri");
67     alListener3i = cast(pfalListener3i)getProc("alListener3i");
68     alListeneriv = cast(pfalListeneriv)getProc("alListeneriv");
69     alGetListenerf = cast(pfalGetListenerf)getProc("alGetListenerf");
70     alGetListener3f = cast(pfalGetListener3f)getProc("alGetListener3f");
71     alGetListenerfv = cast(pfalGetListenerfv)getProc("alGetListenerfv");
72     alGetListeneri = cast(pfalGetListeneri)getProc("alGetListeneri");
73     alGetListener3i = cast(pfalGetListener3i)getProc("alGetListener3i");
74     alGetListeneriv = cast(pfalGetListeneriv)getProc("alGetListeneriv");
75     alGenSources = cast(pfalGenSources)getProc("alGenSources");
76     alDeleteSources = cast(pfalDeleteSources)getProc("alDeleteSources");
77     alIsSource = cast(pfalIsSource)getProc("alIsSource");
78     alSourcef = cast(pfalSourcef)getProc("alSourcef");
79     alSource3f = cast(pfalSource3f)getProc("alSource3f");
80     alSourcefv = cast(pfalSourcefv)getProc("alSourcefv");
81     alSourcei = cast(pfalSourcei)getProc("alSourcei");
82     alSource3i = cast(pfalSource3i)getProc("alSource3i");
83     alSourceiv = cast(pfalSourceiv)getProc("alSourceiv");
84     alGetSourcef = cast(pfalGetSourcef)getProc("alGetSourcef");
85     alGetSourcefv = cast(pfalGetSourcefv)getProc("alGetSourcefv");
86     alGetSource3f = cast(pfalGetSource3f)getProc("alGetSource3f");
87     alGetSourcei = cast(pfalGetSourcei)getProc("alGetSourcei");
88     alGetSource3i = cast(pfalGetSource3i)getProc("alGetSource3i");
89     alGetSourceiv = cast(pfalGetSourceiv)getProc("alGetSourceiv");
90     alSourcePlayv = cast(pfalSourcePlayv)getProc("alSourcePlayv");
91     alSourceStopv = cast(pfalSourceStopv)getProc("alSourceStopv");
92     alSourceRewindv = cast(pfalSourceRewindv)getProc("alSourceRewindv");
93     alSourcePausev = cast(pfalSourcePausev)getProc("alSourcePausev");
94     alSourcePlay = cast(pfalSourcePlay)getProc("alSourcePlay");
95     alSourceStop = cast(pfalSourceStop)getProc("alSourceStop");
96     alSourceRewind = cast(pfalSourceRewind)getProc("alSourceRewind");
97     alSourcePause = cast(pfalSourcePause)getProc("alSourcePause");
98     alSourceQueueBuffers = cast(pfalSourceQueueBuffers)getProc("alSourceQueueBuffers");
99     alSourceUnqueueBuffers = cast(pfalSourceUnqueueBuffers)getProc("alSourceUnqueueBuffers");
100     alGenBuffers = cast(pfalGenBuffers)getProc("alGenBuffers");
101     alDeleteBuffers = cast(pfalDeleteBuffers)getProc("alDeleteBuffers");
102     alIsBuffer = cast(pfalIsBuffer)getProc("alIsBuffer");
103     alBufferData = cast(pfalBufferData)getProc("alBufferData");
104     alBufferf = cast(pfalBufferf)getProc("alBufferf");
105     alBuffer3f = cast(pfalBuffer3f)getProc("alBuffer3f");
106     alBufferfv = cast(pfalBufferfv)getProc("alBufferfv");
107     alBufferi = cast(pfalBufferi)getProc("alBufferi");
108     alBuffer3i = cast(pfalBuffer3i)getProc("alBuffer3i");
109     alBufferiv = cast(pfalBufferiv)getProc("alBufferiv");
110     alGetBufferf = cast(pfalGetBufferf)getProc("alGetBufferf");
111     alGetBufferfv = cast(pfalGetBufferfv)getProc("alGetBufferfv");
112     alGetBuffer3f = cast(pfalGetBuffer3f)getProc("alGetBuffer3f");
113     alGetBufferi = cast(pfalGetBufferi)getProc("alGetBufferi");
114     alGetBuffer3i = cast(pfalGetBuffer3i)getProc("alGetBuffer3i");
115     alGetBufferiv = cast(pfalGetBufferiv)getProc("alGetBufferiv");
116     alDopplerFactor = cast(pfalDopplerFactor)getProc("alDopplerFactor");
117     alDopplerVelocity = cast(pfalDopplerVelocity)getProc("alDopplerVelocity");
118     alSpeedOfSound = cast(pfalSpeedOfSound)getProc("alSpeedOfSound");
119     alDistanceModel = cast(pfalDistanceModel)getProc("alDistanceModel");
120     //alc.d
121     alcCreateContext = cast(pfalcCreateContext)getProc("alcCreateContext");
122     alcMakeContextCurrent = cast(pfalcMakeContextCurrent)getProc("alcMakeContextCurrent");
123     alcProcessContext = cast(pfalcProcessContext)getProc("alcProcessContext");
124     alcSuspendContext = cast(pfalcSuspendContext)getProc("alcSuspendContext");
125     alcDestroyContext = cast(pfalcDestroyContext)getProc("alcDestroyContext");
126     alcGetCurrentContext = cast(pfalcGetCurrentContext)getProc("alcGetCurrentContext");
127     alcGetContextsDevice = cast(pfalcGetContextsDevice)getProc("alcGetContextsDevice");
128     alcOpenDevice = cast(pfalcOpenDevice)getProc("alcOpenDevice");
129     alcCloseDevice = cast(pfalcCloseDevice)getProc("alcCloseDevice");
130     alcGetError = cast(pfalcGetError)getProc("alcGetError");
131     alcIsExtensionPresent = cast(pfalcIsExtensionPresent)getProc("alcIsExtensionPresent");
132     alcGetProcAddress = cast(pfalcGetProcAddress)getProc("alcGetProcAddress");
133     alcGetEnumValue = cast(pfalcGetEnumValue)getProc("alcGetEnumValue");
134     alcGetString = cast(pfalcGetString)getProc("alcGetString");
135     alcGetIntegerv = cast(pfalcGetIntegerv)getProc("alcGetIntegerv");
136     alcCaptureOpenDevice = cast(pfalcCaptureOpenDevice)getProc("alcCaptureOpenDevice");
137     alcCaptureCloseDevice = cast(pfalcCaptureCloseDevice)getProc("alcCaptureCloseDevice");
138     alcCaptureStart = cast(pfalcCaptureStart)getProc("alcCaptureStart");
139     alcCaptureStop = cast(pfalcCaptureStop)getProc("alcCaptureStop");
140     alcCaptureSamples = cast(pfalcCaptureSamples)getProc("alcCaptureSamples");
141 }
142
143 static ~this() {
144     ExeModule_Release(aldrv);
145 }
146
147 extern (C):
148 typedef void function(ALenum) pfalEnable;
149 typedef void function(ALenum) pfalDisable;
150 typedef ALboolean function(ALenum) pfalIsEnabled;
151 typedef ALchar* function(ALenum) pfalGetString;
152 typedef void function(ALenum, ALboolean*) pfalGetBooleanv;
153 typedef void function(ALenum, ALint*) pfalGetIntegerv;
154 typedef void function(ALenum, ALfloat*) pfalGetFloatv;
155 typedef void function(ALenum, ALdouble*) pfalGetDoublev;
156 typedef ALboolean function(ALenum) pfalGetBoolean;
157 typedef ALint function(ALenum) pfalGetInteger;
158 typedef ALfloat function(ALenum) pfalGetFloat;
159 typedef ALdouble function(ALenum) pfalGetDouble;
160 typedef ALenum function() pfalGetError;
161 typedef ALboolean function(ALchar*) pfalIsExtensionPresent;
162 typedef void* function(ALchar*) pfalGetProcAddress;
163 typedef ALenum function(ALchar*) pfalGetEnumValue;
164 typedef void function(ALenum, ALfloat) pfalListenerf;
165 typedef void function(ALenum, ALfloat, ALfloat, ALfloat) pfalListener3f;
166 typedef void function(ALenum, ALfloat*) pfalListenerfv;
167 typedef void function(ALenum, ALint) pfalListeneri;
168 typedef void function(ALenum, ALint, ALint, ALint) pfalListener3i;
169 typedef void function(ALenum, ALint*) pfalListeneriv;
170 typedef void function(ALenum, ALfloat*) pfalGetListenerf;
171 typedef void function(ALenum, ALfloat*, ALfloat*, ALfloat*) pfalGetListener3f;
172 typedef void function(ALenum, ALfloat*) pfalGetListenerfv;
173 typedef void function(ALenum, ALint*) pfalGetListeneri;
174 typedef void function(ALenum, ALint*, ALint*, ALint*) pfalGetListener3i;
175 typedef void function(ALenum, ALint*) pfalGetListeneriv;
176 typedef void function(ALsizei, ALuint*) pfalGenSources;
177 typedef void function(ALsizei, ALuint*) pfalDeleteSources;
178 typedef ALboolean function(ALuint) pfalIsSource;
179 typedef void function(ALuint, ALenum, ALfloat) pfalSourcef;
180 typedef void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) pfalSource3f;
181 typedef void function(ALuint, ALenum, ALfloat*) pfalSourcefv;
182 typedef void function(ALuint, ALenum, ALint) pfalSourcei;
183 typedef void function(ALuint, ALenum, ALint, ALint, ALint) pfalSource3i;
184 typedef void function(ALuint, ALenum, ALint*) pfalSourceiv;
185 typedef void function(ALuint, ALenum, ALfloat*) pfalGetSourcef;
186 typedef void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) pfalGetSource3f;
187 typedef void function(ALuint, ALenum, ALfloat*) pfalGetSourcefv;
188 typedef void function(ALuint, ALenum, ALint*) pfalGetSourcei;
189 typedef void function(ALuint, ALenum, ALint*, ALint*, ALint*) pfalGetSource3i;
190 typedef void function(ALuint, ALenum, ALint*) pfalGetSourceiv;
191 typedef void function(ALsizei, ALuint*) pfalSourcePlayv;
192 typedef void function(ALsizei, ALuint*) pfalSourceStopv;
193 typedef void function(ALsizei, ALuint*) pfalSourceRewindv;
194 typedef void function(ALsizei, ALuint*) pfalSourcePausev;
195 typedef void function(ALuint) pfalSourcePlay;
196 typedef void function(ALuint) pfalSourceStop;
197 typedef void function(ALuint) pfalSourceRewind;
198 typedef void function(ALuint) pfalSourcePause;
199 typedef void function(ALuint, ALsizei, ALuint*) pfalSourceQueueBuffers;
200 typedef void function(ALuint, ALsizei, ALuint*) pfalSourceUnqueueBuffers;
201 typedef void function(ALsizei, ALuint*) pfalGenBuffers;
202 typedef void function(ALsizei, ALuint*) pfalDeleteBuffers;
203 typedef ALboolean function(ALuint) pfalIsBuffer;
204 typedef void function(ALuint, ALenum, ALvoid*, ALsizei, ALsizei) pfalBufferData;
205 typedef void function(ALuint, ALenum, ALfloat) pfalBufferf;
206 typedef void function(ALuint, ALenum, ALfloat, ALfloat, ALfloat) pfalBuffer3f;
207 typedef void function(ALuint, ALenum, ALfloat*) pfalBufferfv;
208 typedef void function(ALuint, ALenum, ALint) pfalBufferi;
209 typedef void function(ALuint, ALenum, ALint, ALint, ALint) pfalBuffer3i;
210 typedef void function(ALuint, ALenum, ALint*) pfalBufferiv;
211 typedef void function(ALuint, ALenum, ALfloat*) pfalGetBufferf;
212 typedef void function(ALuint, ALenum, ALfloat*, ALfloat*, ALfloat*) pfalGetBuffer3f;
213 typedef void function(ALuint, ALenum, ALfloat*) pfalGetBufferfv;
214 typedef void function(ALuint, ALenum, ALint*) pfalGetBufferi;
215 typedef void function(ALuint, ALenum, ALint*, ALint*, ALint*) pfalGetBuffer3i;
216 typedef void function(ALuint, ALenum, ALint*) pfalGetBufferiv;
217 typedef void function(ALfloat) pfalDopplerFactor;
218 typedef void function(ALfloat) pfalDopplerVelocity;
219 typedef void function(ALfloat) pfalSpeedOfSound;
220 typedef void function(ALenum) pfalDistanceModel;
221
222 pfalEnable      alEnable;
223 pfalDisable     alDisable;
224 pfalIsEnabled       alIsEnabled;
225 pfalGetBooleanv     alGetBooleanv;
226 pfalGetIntegerv     alGetIntegerv;
227 pfalGetFloatv       alGetFloatv;
228 pfalGetDoublev      alGetDoublev;
229 pfalGetString       alGetString;
230 pfalGetBoolean      alGetBoolean;
231 pfalGetInteger      alGetInteger;
232 pfalGetFloat        alGetFloat;
233 pfalGetDouble       alGetDouble;
234 pfalGetError        alGetError;
235 pfalIsExtensionPresent  alIsExtensionPresent;
236 pfalGetProcAddress  alGetProcAddress;
237 pfalGetEnumValue    alGetEnumValue;
238 pfalListenerf       alListenerf;
239 pfalListener3f      alListener3f;
240 pfalListenerfv      alListenerfv;
241 pfalListeneri       alListeneri;
242 pfalListener3i      alListener3i;
243 pfalListeneriv      alListeneriv;
244 pfalGetListenerf    alGetListenerf;
245 pfalGetListener3f   alGetListener3f;
246 pfalGetListenerfv   alGetListenerfv;
247 pfalGetListeneri    alGetListeneri;
248 pfalGetListener3i   alGetListener3i;
249 pfalGetListeneriv   alGetListeneriv;
250 pfalGenSources      alGenSources;
251 pfalDeleteSources   alDeleteSources;
252 pfalIsSource        alIsSource;
253 pfalSourcef     alSourcef;
254 pfalSource3f        alSource3f;
255 pfalSourcefv        alSourcefv;
256 pfalSourcei     alSourcei;
257 pfalSource3i        alSource3i;
258 pfalSourceiv        alSourceiv;
259 pfalGetSourcef      alGetSourcef;
260 pfalGetSourcefv     alGetSourcefv;
261 pfalGetSource3f     alGetSource3f;
262 pfalGetSourcei      alGetSourcei;
263 pfalGetSource3i     alGetSource3i;
264 pfalGetSourceiv     alGetSourceiv;
265 pfalSourcePlayv     alSourcePlayv;
266 pfalSourceStopv     alSourceStopv;
267 pfalSourceRewindv   alSourceRewindv;
268 pfalSourcePausev    alSourcePausev;
269 pfalSourcePlay      alSourcePlay;
270 pfalSourceStop      alSourceStop;
271 pfalSourceRewind    alSourceRewind;
272 pfalSourcePause     alSourcePause;
273 pfalSourceQueueBuffers  alSourceQueueBuffers;
274 pfalSourceUnqueueBuffers alSourceUnqueueBuffers;
275 pfalGenBuffers      alGenBuffers;
276 pfalDeleteBuffers   alDeleteBuffers;
277 pfalIsBuffer        alIsBuffer;
278 pfalBufferData      alBufferData;
279 pfalBufferf     alBufferf;
280 pfalBuffer3f        alBuffer3f;
281 pfalBufferfv        alBufferfv;
282 pfalBufferi     alBufferi;
283 pfalBuffer3i        alBuffer3i;
284 pfalBufferiv        alBufferiv;
285 pfalGetBufferf      alGetBufferf;
286 pfalGetBufferfv     alGetBufferfv;
287 pfalGetBuffer3f     alGetBuffer3f;
288 pfalGetBufferi      alGetBufferi;
289 pfalGetBuffer3i     alGetBuffer3i;
290 pfalGetBufferiv     alGetBufferiv;
291 pfalDopplerFactor   alDopplerFactor;
292 pfalDopplerVelocity alDopplerVelocity;
293 pfalSpeedOfSound    alSpeedOfSound;
294 pfalDistanceModel   alDistanceModel;
Note: See TracBrowser for help on using the browser.