1 // on win32 and mac, pointer typedefs only happen with AL_NO_PROTOTYPES
2 // on mac, ALC_NO_PROTOTYPES as well
3 
4 #define AL_NO_PROTOTYPES 1
5 
6 // on mac, alc pointer typedefs ony happen for ALC if ALC_NO_PROTOTYPES
7 // unfortunately, there is a bug in the system headers (use of ALCvoid when
8 // void should be used; shame on Apple for introducing this error, and shame
9 // on Creative for making a typedef to void in the first place)
10 //#define ALC_NO_PROTOTYPES 1
11 
12 #include <al.h>
13 #include <alc.h>
14 
15 // since the ALC typedefs are broken on Mac:
16 
17 #ifdef __WXMAC__
18 typedef ALCcontext*    (ALC_APIENTRY* LPALCCREATECONTEXT)(ALCdevice* device, const ALCint* attrlist);
19 typedef ALCboolean(ALC_APIENTRY* LPALCMAKECONTEXTCURRENT)(ALCcontext* context);
20 typedef void (ALC_APIENTRY* LPALCDESTROYCONTEXT)(ALCcontext* context);
21 typedef ALCdevice*     (ALC_APIENTRY* LPALCOPENDEVICE)(const ALCchar* devicename);
22 typedef ALCboolean(ALC_APIENTRY* LPALCCLOSEDEVICE)(ALCdevice* device);
23 typedef ALCboolean(ALC_APIENTRY* LPALCISEXTENSIONPRESENT)(ALCdevice* device, const ALCchar* extname);
24 typedef const ALCchar* (ALC_APIENTRY* LPALCGETSTRING)(ALCdevice* device, ALCenum param);
25 #endif
26 
27 // no more use of copyrighted OpenAL code just to load the stupid library
28 struct OPENALFNTABLE
29 {
30 	//LPALENABLE alEnable;
31 	//LPALDISABLE alDisable;
32 	//LPALISENABLED alIsEnabled;
33 	//LPALGETSTRING alGetString;
34 	//LPALGETBOOLEANV alGetBooleanv;
35 	//LPALGETINTEGERV alGetIntegerv;
36 	//LPALGETFLOATV alGetFloatv;
37 	//LPALGETDOUBLEV alGetDoublev;
38 	//LPALGETBOOLEAN alGetBoolean;
39 	//LPALGETINTEGER alGetInteger;
40 	//LPALGETFLOAT alGetFloat;
41 	//LPALGETDOUBLE alGetDouble;
42 	LPALGETERROR alGetError;
43 	LPALISEXTENSIONPRESENT alIsExtensionPresent;
44 	//LPALGETPROCADDRESS alGetProcAddress;
45 	//LPALGETENUMVALUE alGetEnumValue;
46 	//LPALLISTENERF alListenerf;
47 	//LPALLISTENER3F alListener3f;
48 	//LPALLISTENERFV alListenerfv;
49 	//LPALLISTENERI alListeneri;
50 	//LPALLISTENER3I alListener3i;
51 	//LPALLISTENERIV alListeneriv;
52 	//LPALGETLISTENERF alGetListenerf;
53 	//LPALGETLISTENER3F alGetListener3f;
54 	//LPALGETLISTENERFV alGetListenerfv;
55 	//LPALGETLISTENERI alGetListeneri;
56 	//LPALGETLISTENER3I alGetListener3i;
57 	//LPALGETLISTENERIV alGetListeneriv;
58 	LPALGENSOURCES alGenSources;
59 	LPALDELETESOURCES alDeleteSources;
60 	//LPALISSOURCE alIsSource;
61 	//LPALSOURCEF alSourcef;
62 	//LPALSOURCE3F alSource3f;
63 	//LPALSOURCEFV alSourcefv;
64 	LPALSOURCEI alSourcei;
65 	//LPALSOURCE3I alSource3i;
66 	//LPALSOURCEIV alSourceiv;
67 	//LPALGETSOURCEF alGetSourcef;
68 	//LPALGETSOURCE3F alGetSource3f;
69 	//LPALGETSOURCEFV alGetSourcefv;
70 	LPALGETSOURCEI alGetSourcei;
71 	//LPALGETSOURCE3I alGetSource3i;
72 	//LPALGETSOURCEIV alGetSourceiv;
73 	//LPALSOURCEPLAYV alSourcePlayv;
74 	//LPALSOURCESTOPV alSourceStopv;
75 	//LPALSOURCEREWINDV alSourceRewindv;
76 	//LPALSOURCEPAUSEV alSourcePausev;
77 	LPALSOURCEPLAY alSourcePlay;
78 	LPALSOURCESTOP alSourceStop;
79 	//LPALSOURCEREWIND alSourceRewind;
80 	LPALSOURCEPAUSE alSourcePause;
81 	LPALSOURCEQUEUEBUFFERS alSourceQueueBuffers;
82 	LPALSOURCEUNQUEUEBUFFERS alSourceUnqueueBuffers;
83 	LPALGENBUFFERS alGenBuffers;
84 	LPALDELETEBUFFERS alDeleteBuffers;
85 	//LPALISBUFFER alIsBuffer;
86 	LPALBUFFERDATA alBufferData;
87 	//LPALBUFFERF alBufferf;
88 	//LPALBUFFER3F alBuffer3f;
89 	//LPALBUFFERFV alBufferfv;
90 	//LPALBUFFERI alBufferi;
91 	//LPALBUFFER3I alBuffer3i;
92 	//LPALBUFFERIV alBufferiv;
93 	//LPALGETBUFFERF alGetBufferf;
94 	//LPALGETBUFFER3F alGetBuffer3f;
95 	//LPALGETBUFFERFV alGetBufferfv;
96 	//LPALGETBUFFERI alGetBufferi;
97 	//LPALGETBUFFER3I alGetBuffer3i;
98 	//LPALGETBUFFERIV alGetBufferiv;
99 	//LPALDOPPLERFACTOR alDopplerFactor;
100 	//LPALDOPPLERVELOCITY alDopplerVelocity;
101 	//LPALSPEEDOFSOUND alSpeedOfSound;
102 	//LPALDISTANCEMODEL alDistanceModel;
103 
104 	LPALCCREATECONTEXT alcCreateContext;
105 	LPALCMAKECONTEXTCURRENT alcMakeContextCurrent;
106 	//LPALCPROCESSCONTEXT alcProcessContext;
107 	//LPALCSUSPENDCONTEXT alcSuspendContext;
108 	LPALCDESTROYCONTEXT alcDestroyContext;
109 	//LPALCGETCURRENTCONTEXT alcGetCurrentContext;
110 	//LPALCGETCONTEXTSDEVICE alcGetContextsDevice;
111 	LPALCOPENDEVICE alcOpenDevice;
112 	LPALCCLOSEDEVICE alcCloseDevice;
113 	//LPALCGETERROR alcGetError;
114 	LPALCISEXTENSIONPRESENT alcIsExtensionPresent;
115 	//LPALCGETPROCADDRESS alcGetProcAddress;
116 	//LPALCGETENUMVALUE alcGetEnumValue;
117 	LPALCGETSTRING alcGetString;
118 	//LPALCGETINTEGERV alcGetIntegerv;
119 	//LPALCCAPTUREOPENDEVICE alcCaptureOpenDevice;
120 	//LPALCCAPTURECLOSEDEVICE alcCaptureCloseDevice;
121 	//LPALCCAPTURESTART alcCaptureStart;
122 	//LPALCCAPTURESTOP alcCaptureStop;
123 	//LPALCCAPTURESAMPLES alcCaptureSamples;
124 };
125