forked from emscripten-core/emscripten
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathal.c
More file actions
143 lines (130 loc) · 7.74 KB
/
al.c
File metadata and controls
143 lines (130 loc) · 7.74 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
/*
* Copyright 2017 The Emscripten Authors. All rights reserved.
* Emscripten is available under two separate licenses, the MIT license and the
* University of Illinois/NCSA Open Source License. Both these licenses can be
* found in the LICENSE file.
*/
// AL proc address retrieval
#include <string.h>
#include <stdlib.h>
#include <emscripten.h>
#include <AL/alc.h>
#include <AL/al.h>
// ALC extensions
void emscripten_alcDevicePauseSOFT(ALCdevice *device);
void emscripten_alcDeviceResumeSOFT(ALCdevice *device);
const ALCchar *emscripten_alcGetStringiSOFT(ALCdevice *device, ALCenum paramName, ALCsizei index);
ALCboolean emscripten_alcResetDeviceSOFT(ALCdevice *device, const ALCint *attrList);
void* emscripten_GetAlcProcAddress(ALCchar *name) {
// Base API
if (!strcmp(name, "alcCreateContext")) { return alcCreateContext; }
else if (!strcmp(name, "alcMakeContextCurrent")) { return alcMakeContextCurrent; }
else if (!strcmp(name, "alcProcessContext")) { return alcProcessContext; }
else if (!strcmp(name, "alcSuspendContext")) { return alcSuspendContext; }
else if (!strcmp(name, "alcDestroyContext")) { return alcDestroyContext; }
else if (!strcmp(name, "alcGetCurrentContext")) { return alcGetCurrentContext; }
else if (!strcmp(name, "alcGetContextsDevice")) { return alcGetContextsDevice; }
else if (!strcmp(name, "alcOpenDevice")) { return alcOpenDevice; }
else if (!strcmp(name, "alcCloseDevice")) { return alcCloseDevice; }
else if (!strcmp(name, "alcGetError")) { return alcGetError; }
else if (!strcmp(name, "alcIsExtensionPresent")) { return alcIsExtensionPresent; }
else if (!strcmp(name, "alcGetProcAddress")) { return alcGetProcAddress; }
else if (!strcmp(name, "alcGetEnumValue")) { return alcGetEnumValue; }
else if (!strcmp(name, "alcGetString")) { return alcGetString; }
else if (!strcmp(name, "alcGetIntegerv")) { return alcGetIntegerv; }
else if (!strcmp(name, "alcCaptureOpenDevice")) { return alcCaptureOpenDevice; }
else if (!strcmp(name, "alcCaptureCloseDevice")) { return alcCaptureCloseDevice; }
else if (!strcmp(name, "alcCaptureStart")) { return alcCaptureStart; }
else if (!strcmp(name, "alcCaptureStop")) { return alcCaptureStop; }
else if (!strcmp(name, "alcCaptureSamples")) { return alcCaptureSamples; }
// Extensions
else if (!strcmp(name, "alcDevicePauseSOFT")) { return emscripten_alcDevicePauseSOFT; }
else if (!strcmp(name, "alcDeviceResumeSOFT")) { return emscripten_alcDeviceResumeSOFT; }
else if (!strcmp(name, "alcGetStringiSOFT")) { return emscripten_alcGetStringiSOFT; }
else if (!strcmp(name, "alcResetDeviceSOFT")) { return emscripten_alcResetDeviceSOFT; }
EM_ASM({
err("bad name in alcGetProcAddress: " + UTF8ToString($0));
}, name);
return 0;
}
void* emscripten_GetAlProcAddress(ALchar *name) {
// Base API
if (!strcmp(name, "alDopplerFactor")) { return alDopplerFactor; }
else if (!strcmp(name, "alDopplerVelocity")) { return alDopplerVelocity; }
else if (!strcmp(name, "alSpeedOfSound")) { return alSpeedOfSound; }
else if (!strcmp(name, "alDistanceModel")) { return alDistanceModel; }
else if (!strcmp(name, "alEnable")) { return alEnable; }
else if (!strcmp(name, "alDisable")) { return alDisable; }
else if (!strcmp(name, "alIsEnabled")) { return alIsEnabled; }
else if (!strcmp(name, "alGetString")) { return alGetString; }
else if (!strcmp(name, "alGetBooleanv")) { return alGetBooleanv; }
else if (!strcmp(name, "alGetIntegerv")) { return alGetIntegerv; }
else if (!strcmp(name, "alGetFloatv")) { return alGetFloatv; }
else if (!strcmp(name, "alGetDoublev")) { return alGetDoublev; }
else if (!strcmp(name, "alGetBoolean")) { return alGetBoolean; }
else if (!strcmp(name, "alGetInteger")) { return alGetInteger; }
else if (!strcmp(name, "alGetFloat")) { return alGetFloat; }
else if (!strcmp(name, "alGetDouble")) { return alGetDouble; }
else if (!strcmp(name, "alGetError")) { return alGetError; }
else if (!strcmp(name, "alIsExtensionPresent")) { return alIsExtensionPresent; }
else if (!strcmp(name, "alGetProcAddress")) { return alGetProcAddress; }
else if (!strcmp(name, "alGetEnumValue")) { return alGetEnumValue; }
else if (!strcmp(name, "alListenerf")) { return alListenerf; }
else if (!strcmp(name, "alListener3f")) { return alListener3f; }
else if (!strcmp(name, "alListenerfv")) { return alListenerfv; }
else if (!strcmp(name, "alListeneri")) { return alListeneri; }
else if (!strcmp(name, "alListener3i")) { return alListener3i; }
else if (!strcmp(name, "alListeneriv")) { return alListeneriv; }
else if (!strcmp(name, "alGetListenerf")) { return alGetListenerf; }
else if (!strcmp(name, "alGetListener3f")) { return alGetListener3f; }
else if (!strcmp(name, "alGetListenerfv")) { return alGetListenerfv; }
else if (!strcmp(name, "alGetListeneri")) { return alGetListeneri; }
else if (!strcmp(name, "alGetListener3i")) { return alGetListener3i; }
else if (!strcmp(name, "alGetListeneriv")) { return alGetListeneriv; }
else if (!strcmp(name, "alGenSources")) { return alGenSources; }
else if (!strcmp(name, "alDeleteSources")) { return alDeleteSources; }
else if (!strcmp(name, "alIsSource")) { return alIsSource; }
else if (!strcmp(name, "alSourcef")) { return alSourcef; }
else if (!strcmp(name, "alSource3f")) { return alSource3f; }
else if (!strcmp(name, "alSourcefv")) { return alSourcefv; }
else if (!strcmp(name, "alSourcei")) { return alSourcei; }
else if (!strcmp(name, "alSource3i")) { return alSource3i; }
else if (!strcmp(name, "alSourceiv")) { return alSourceiv; }
else if (!strcmp(name, "alGetSourcef")) { return alGetSourcef; }
else if (!strcmp(name, "alGetSource3f")) { return alGetSource3f; }
else if (!strcmp(name, "alGetSourcefv")) { return alGetSourcefv; }
else if (!strcmp(name, "alGetSourcei")) { return alGetSourcei; }
else if (!strcmp(name, "alGetSource3i")) { return alGetSource3i; }
else if (!strcmp(name, "alGetSourceiv")) { return alGetSourceiv; }
else if (!strcmp(name, "alSourcePlayv")) { return alSourcePlayv; }
else if (!strcmp(name, "alSourceStopv")) { return alSourceStopv; }
else if (!strcmp(name, "alSourceRewindv")) { return alSourceRewindv; }
else if (!strcmp(name, "alSourcePausev")) { return alSourcePausev; }
else if (!strcmp(name, "alSourcePlay")) { return alSourcePlay; }
else if (!strcmp(name, "alSourceStop")) { return alSourceStop; }
else if (!strcmp(name, "alSourceRewind")) { return alSourceRewind; }
else if (!strcmp(name, "alSourcePause")) { return alSourcePause; }
else if (!strcmp(name, "alSourceQueueBuffers")) { return alSourceQueueBuffers; }
else if (!strcmp(name, "alSourceUnqueueBuffers")) { return alSourceUnqueueBuffers; }
else if (!strcmp(name, "alGenBuffers")) { return alGenBuffers; }
else if (!strcmp(name, "alDeleteBuffers")) { return alDeleteBuffers; }
else if (!strcmp(name, "alIsBuffer")) { return alIsBuffer; }
else if (!strcmp(name, "alBufferData")) { return alBufferData; }
else if (!strcmp(name, "alBufferf")) { return alBufferf; }
else if (!strcmp(name, "alBuffer3f")) { return alBuffer3f; }
else if (!strcmp(name, "alBufferfv")) { return alBufferfv; }
else if (!strcmp(name, "alBufferi")) { return alBufferi; }
else if (!strcmp(name, "alBuffer3i")) { return alBuffer3i; }
else if (!strcmp(name, "alBufferiv")) { return alBufferiv; }
else if (!strcmp(name, "alGetBufferf")) { return alGetBufferf; }
else if (!strcmp(name, "alGetBuffer3f")) { return alGetBuffer3f; }
else if (!strcmp(name, "alGetBufferfv")) { return alGetBufferfv; }
else if (!strcmp(name, "alGetBufferi")) { return alGetBufferi; }
else if (!strcmp(name, "alGetBuffer3i")) { return alGetBuffer3i; }
else if (!strcmp(name, "alGetBufferiv")) { return alGetBufferiv; }
// Extensions
EM_ASM({
err("bad name in alGetProcAddress: " + UTF8ToString($0));
}, name);
return 0;
}