gosu 0.15.2 → 1.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. checksums.yaml +4 -4
  2. data/dependencies/SDL/include/SDL.h +138 -0
  3. data/dependencies/SDL/include/SDL_assert.h +293 -0
  4. data/dependencies/SDL/include/SDL_atomic.h +295 -0
  5. data/dependencies/SDL/include/SDL_audio.h +859 -0
  6. data/dependencies/SDL/include/SDL_bits.h +121 -0
  7. data/dependencies/SDL/include/SDL_blendmode.h +123 -0
  8. data/dependencies/SDL/include/SDL_clipboard.h +71 -0
  9. data/dependencies/SDL/include/SDL_config.h +55 -0
  10. data/dependencies/SDL/include/SDL_config_android.h +182 -0
  11. data/dependencies/SDL/include/SDL_config_iphoneos.h +207 -0
  12. data/dependencies/SDL/include/SDL_config_macosx.h +266 -0
  13. data/dependencies/SDL/include/SDL_config_minimal.h +85 -0
  14. data/dependencies/SDL/include/SDL_config_os2.h +188 -0
  15. data/dependencies/SDL/include/SDL_config_pandora.h +135 -0
  16. data/dependencies/SDL/include/SDL_config_psp.h +165 -0
  17. data/dependencies/SDL/include/SDL_config_windows.h +288 -0
  18. data/dependencies/SDL/include/SDL_config_winrt.h +243 -0
  19. data/dependencies/SDL/include/SDL_config_wiz.h +149 -0
  20. data/dependencies/SDL/include/SDL_copying.h +20 -0
  21. data/dependencies/SDL/include/SDL_cpuinfo.h +299 -0
  22. data/dependencies/SDL/include/SDL_egl.h +1676 -0
  23. data/dependencies/SDL/include/SDL_endian.h +263 -0
  24. data/dependencies/SDL/include/SDL_error.h +112 -0
  25. data/dependencies/SDL/include/SDL_events.h +827 -0
  26. data/dependencies/SDL/include/SDL_filesystem.h +136 -0
  27. data/dependencies/SDL/include/SDL_gamecontroller.h +541 -0
  28. data/dependencies/SDL/include/SDL_gesture.h +87 -0
  29. data/dependencies/SDL/include/SDL_haptic.h +1247 -0
  30. data/dependencies/SDL/include/SDL_hints.h +1578 -0
  31. data/dependencies/SDL/include/SDL_joystick.h +499 -0
  32. data/dependencies/SDL/include/SDL_keyboard.h +217 -0
  33. data/dependencies/SDL/include/SDL_keycode.h +351 -0
  34. data/dependencies/SDL/include/SDL_loadso.h +81 -0
  35. data/dependencies/SDL/include/SDL_locale.h +101 -0
  36. data/dependencies/SDL/include/SDL_log.h +211 -0
  37. data/dependencies/SDL/include/SDL_main.h +180 -0
  38. data/dependencies/SDL/include/SDL_messagebox.h +146 -0
  39. data/dependencies/SDL/include/SDL_metal.h +117 -0
  40. data/dependencies/SDL/include/SDL_misc.h +75 -0
  41. data/dependencies/SDL/include/SDL_mouse.h +302 -0
  42. data/dependencies/SDL/include/SDL_mutex.h +251 -0
  43. data/dependencies/SDL/include/SDL_name.h +33 -0
  44. data/dependencies/SDL/include/SDL_opengl.h +2183 -0
  45. data/dependencies/SDL/include/SDL_opengl_glext.h +11180 -0
  46. data/dependencies/SDL/include/SDL_opengles.h +39 -0
  47. data/dependencies/SDL/include/SDL_opengles2.h +52 -0
  48. data/dependencies/SDL/include/SDL_opengles2_gl2.h +621 -0
  49. data/dependencies/SDL/include/SDL_opengles2_gl2ext.h +2050 -0
  50. data/dependencies/SDL/include/SDL_opengles2_gl2platform.h +30 -0
  51. data/dependencies/SDL/include/SDL_opengles2_khrplatform.h +282 -0
  52. data/dependencies/SDL/include/SDL_pixels.h +479 -0
  53. data/dependencies/SDL/include/SDL_platform.h +198 -0
  54. data/dependencies/SDL/include/SDL_power.h +75 -0
  55. data/dependencies/SDL/include/SDL_quit.h +58 -0
  56. data/dependencies/SDL/include/SDL_rect.h +174 -0
  57. data/dependencies/SDL/include/SDL_render.h +1158 -0
  58. data/dependencies/SDL/include/SDL_revision.h +2 -0
  59. data/dependencies/SDL/include/SDL_rwops.h +283 -0
  60. data/dependencies/SDL/include/SDL_scancode.h +413 -0
  61. data/dependencies/SDL/include/SDL_sensor.h +267 -0
  62. data/dependencies/SDL/include/SDL_shape.h +144 -0
  63. data/dependencies/SDL/include/SDL_stdinc.h +647 -0
  64. data/dependencies/SDL/include/SDL_surface.h +563 -0
  65. data/dependencies/SDL/include/SDL_system.h +325 -0
  66. data/dependencies/SDL/include/SDL_syswm.h +354 -0
  67. data/dependencies/SDL/include/SDL_test.h +69 -0
  68. data/dependencies/SDL/include/SDL_test_assert.h +105 -0
  69. data/dependencies/SDL/include/SDL_test_common.h +218 -0
  70. data/dependencies/SDL/include/SDL_test_compare.h +69 -0
  71. data/dependencies/SDL/include/SDL_test_crc32.h +124 -0
  72. data/dependencies/SDL/include/SDL_test_font.h +81 -0
  73. data/dependencies/SDL/include/SDL_test_fuzzer.h +384 -0
  74. data/dependencies/SDL/include/SDL_test_harness.h +134 -0
  75. data/dependencies/SDL/include/SDL_test_images.h +78 -0
  76. data/dependencies/SDL/include/SDL_test_log.h +67 -0
  77. data/dependencies/SDL/include/SDL_test_md5.h +129 -0
  78. data/dependencies/SDL/include/SDL_test_memory.h +63 -0
  79. data/dependencies/SDL/include/SDL_test_random.h +115 -0
  80. data/dependencies/SDL/include/SDL_thread.h +366 -0
  81. data/dependencies/SDL/include/SDL_timer.h +115 -0
  82. data/dependencies/SDL/include/SDL_touch.h +102 -0
  83. data/dependencies/SDL/include/SDL_types.h +29 -0
  84. data/dependencies/SDL/include/SDL_version.h +162 -0
  85. data/dependencies/SDL/include/SDL_video.h +1282 -0
  86. data/dependencies/SDL/include/SDL_vulkan.h +276 -0
  87. data/dependencies/SDL/include/begin_code.h +166 -0
  88. data/dependencies/SDL/include/close_code.h +40 -0
  89. data/dependencies/SDL/lib/x64/libSDL2.dll.a +0 -0
  90. data/dependencies/SDL/lib/x86/libSDL2.dll.a +0 -0
  91. data/dependencies/SDL_sound/SDL_sound.c +795 -0
  92. data/dependencies/SDL_sound/SDL_sound.h +725 -0
  93. data/dependencies/SDL_sound/SDL_sound_aiff.c +537 -0
  94. data/dependencies/SDL_sound/SDL_sound_au.c +352 -0
  95. data/dependencies/SDL_sound/SDL_sound_coreaudio.c +747 -0
  96. data/dependencies/SDL_sound/SDL_sound_flac.c +182 -0
  97. data/dependencies/SDL_sound/SDL_sound_internal.h +304 -0
  98. data/dependencies/SDL_sound/SDL_sound_modplug.c +228 -0
  99. data/dependencies/SDL_sound/SDL_sound_mp3.c +184 -0
  100. data/dependencies/SDL_sound/SDL_sound_raw.c +164 -0
  101. data/dependencies/SDL_sound/SDL_sound_shn.c +1309 -0
  102. data/dependencies/SDL_sound/SDL_sound_voc.c +550 -0
  103. data/dependencies/SDL_sound/SDL_sound_vorbis.c +223 -0
  104. data/dependencies/SDL_sound/SDL_sound_wav.c +783 -0
  105. data/dependencies/SDL_sound/dr_flac.h +5906 -0
  106. data/dependencies/SDL_sound/dr_mp3.h +2832 -0
  107. data/dependencies/SDL_sound/libmodplug/fastmix.c +1748 -0
  108. data/dependencies/SDL_sound/libmodplug/libmodplug.h +1001 -0
  109. data/dependencies/SDL_sound/libmodplug/load_669.c +188 -0
  110. data/dependencies/SDL_sound/libmodplug/load_abc.c +4725 -0
  111. data/dependencies/SDL_sound/libmodplug/load_amf.c +403 -0
  112. data/dependencies/SDL_sound/libmodplug/load_ams.c +587 -0
  113. data/dependencies/SDL_sound/libmodplug/load_dbm.c +357 -0
  114. data/dependencies/SDL_sound/libmodplug/load_dmf.c +531 -0
  115. data/dependencies/SDL_sound/libmodplug/load_dsm.c +232 -0
  116. data/dependencies/SDL_sound/libmodplug/load_far.c +253 -0
  117. data/dependencies/SDL_sound/libmodplug/load_it.c +796 -0
  118. data/dependencies/SDL_sound/libmodplug/load_mdl.c +488 -0
  119. data/dependencies/SDL_sound/libmodplug/load_med.c +757 -0
  120. data/dependencies/SDL_sound/libmodplug/load_mid.c +1405 -0
  121. data/dependencies/SDL_sound/libmodplug/load_mod.c +269 -0
  122. data/dependencies/SDL_sound/libmodplug/load_mt2.c +546 -0
  123. data/dependencies/SDL_sound/libmodplug/load_mtm.c +142 -0
  124. data/dependencies/SDL_sound/libmodplug/load_okt.c +192 -0
  125. data/dependencies/SDL_sound/libmodplug/load_pat.c +1143 -0
  126. data/dependencies/SDL_sound/libmodplug/load_pat.h +25 -0
  127. data/dependencies/SDL_sound/libmodplug/load_psm.c +350 -0
  128. data/dependencies/SDL_sound/libmodplug/load_ptm.c +204 -0
  129. data/dependencies/SDL_sound/libmodplug/load_s3m.c +325 -0
  130. data/dependencies/SDL_sound/libmodplug/load_stm.c +180 -0
  131. data/dependencies/SDL_sound/libmodplug/load_ult.c +206 -0
  132. data/dependencies/SDL_sound/libmodplug/load_umx.c +51 -0
  133. data/dependencies/SDL_sound/libmodplug/load_xm.c +554 -0
  134. data/dependencies/SDL_sound/libmodplug/mmcmp.c +382 -0
  135. data/dependencies/SDL_sound/libmodplug/modplug.c +170 -0
  136. data/dependencies/SDL_sound/libmodplug/modplug.h +90 -0
  137. data/dependencies/SDL_sound/libmodplug/snd_dsp.c +301 -0
  138. data/dependencies/SDL_sound/libmodplug/snd_flt.c +63 -0
  139. data/dependencies/SDL_sound/libmodplug/snd_fx.c +2350 -0
  140. data/dependencies/SDL_sound/libmodplug/sndfile.c +1169 -0
  141. data/dependencies/SDL_sound/libmodplug/sndmix.c +1034 -0
  142. data/dependencies/SDL_sound/libmodplug/tables.h +371 -0
  143. data/{src/stb_vorbis.c → dependencies/SDL_sound/stb_vorbis.h} +143 -78
  144. data/dependencies/al_soft/AL/al.h +655 -0
  145. data/dependencies/al_soft/AL/alc.h +270 -0
  146. data/dependencies/al_soft/AL/alext.h +585 -0
  147. data/dependencies/al_soft/AL/efx-creative.h +3 -0
  148. data/dependencies/al_soft/AL/efx-presets.h +402 -0
  149. data/dependencies/al_soft/AL/efx.h +762 -0
  150. data/dependencies/al_soft/x64/libOpenAL32.dll.a +0 -0
  151. data/dependencies/al_soft/x86/libOpenAL32.dll.a +0 -0
  152. data/{src → dependencies/stb}/stb_image.h +330 -127
  153. data/{src → dependencies/stb}/stb_image_write.h +156 -85
  154. data/{src → dependencies/stb}/stb_truetype.h +192 -69
  155. data/{src → dependencies/utf8proc}/utf8proc.c +0 -0
  156. data/{src → dependencies/utf8proc}/utf8proc.h +0 -0
  157. data/{src → dependencies/utf8proc}/utf8proc_data.h +0 -0
  158. data/ext/gosu/extconf.rb +56 -22
  159. data/{Gosu → include/Gosu}/Audio.hpp +6 -8
  160. data/{Gosu → include/Gosu}/AutoLink.hpp +0 -0
  161. data/include/Gosu/Bitmap.hpp +100 -0
  162. data/{Gosu → include/Gosu}/Buttons.hpp +94 -35
  163. data/{Gosu → include/Gosu}/Channel.h +0 -0
  164. data/{Gosu → include/Gosu}/Color.h +0 -0
  165. data/{Gosu → include/Gosu}/Color.hpp +0 -0
  166. data/{Gosu → include/Gosu}/Directories.hpp +0 -0
  167. data/{Gosu → include/Gosu}/Font.h +0 -0
  168. data/{Gosu → include/Gosu}/Font.hpp +0 -0
  169. data/{Gosu → include/Gosu}/Fwd.hpp +0 -0
  170. data/{Gosu → include/Gosu}/Gosu.h +3 -0
  171. data/{Gosu → include/Gosu}/Gosu.hpp +0 -0
  172. data/{Gosu → include/Gosu}/Graphics.hpp +0 -0
  173. data/{Gosu → include/Gosu}/GraphicsBase.hpp +0 -0
  174. data/{Gosu → include/Gosu}/IO.hpp +0 -0
  175. data/{Gosu → include/Gosu}/Image.h +0 -0
  176. data/{Gosu → include/Gosu}/Image.hpp +7 -6
  177. data/{Gosu → include/Gosu}/ImageData.hpp +0 -0
  178. data/{Gosu → include/Gosu}/Input.hpp +30 -15
  179. data/{Gosu → include/Gosu}/Inspection.hpp +0 -0
  180. data/{Gosu → include/Gosu}/Math.hpp +0 -0
  181. data/{Gosu → include/Gosu}/Platform.hpp +0 -0
  182. data/{Gosu → include/Gosu}/Sample.h +0 -0
  183. data/{Gosu → include/Gosu}/Song.h +0 -0
  184. data/{Gosu → include/Gosu}/Text.hpp +0 -0
  185. data/{Gosu → include/Gosu}/TextInput.h +0 -0
  186. data/{Gosu → include/Gosu}/TextInput.hpp +0 -0
  187. data/{Gosu → include/Gosu}/Timing.hpp +0 -0
  188. data/{Gosu → include/Gosu}/Utility.hpp +1 -1
  189. data/{Gosu → include/Gosu}/Version.hpp +0 -0
  190. data/{Gosu → include/Gosu}/Window.h +2 -0
  191. data/{Gosu → include/Gosu}/Window.hpp +21 -13
  192. data/lib/OpenAL32.dll +0 -0
  193. data/lib/SDL2.dll +0 -0
  194. data/lib/gosu.rb +0 -3
  195. data/lib/gosu/patches.rb +0 -9
  196. data/lib/gosu/swig_patches.rb +3 -2
  197. data/lib/libmpg123.dll +0 -0
  198. data/lib/libsndfile.dll +0 -0
  199. data/lib64/OpenAL32.dll +0 -0
  200. data/lib64/SDL2.dll +0 -0
  201. data/lib64/libmpg123.dll +0 -0
  202. data/lib64/libsndfile.dll +0 -0
  203. data/rdoc/gosu.rb +95 -20
  204. data/src/Audio.cpp +50 -224
  205. data/src/AudioFile.hpp +17 -37
  206. data/src/AudioFileAudioToolbox.cpp +237 -0
  207. data/src/AudioFileSDLSound.cpp +147 -0
  208. data/src/AudioImpl.cpp +3 -12
  209. data/src/AudioImpl.hpp +3 -1
  210. data/src/Bitmap.cpp +85 -83
  211. data/src/BitmapIO.cpp +52 -58
  212. data/src/Constants.cpp +80 -33
  213. data/src/Font.cpp +3 -1
  214. data/src/GosuWrapper.cpp +19 -0
  215. data/src/Graphics.cpp +7 -4
  216. data/src/Image.cpp +13 -16
  217. data/src/Input.cpp +408 -159
  218. data/src/LargeImageData.cpp +1 -1
  219. data/src/MarkupParser.cpp +2 -1
  220. data/src/RubyGosu.cxx +349 -83
  221. data/src/RubyGosu.h +4 -2
  222. data/src/TexChunk.cpp +1 -1
  223. data/src/TextBuilder.cpp +3 -1
  224. data/src/Texture.cpp +1 -1
  225. data/src/TrueTypeFont.cpp +1 -1
  226. data/src/Utility.cpp +11 -7
  227. data/src/Window.cpp +30 -39
  228. data/src/WindowWrapper.cpp +28 -0
  229. metadata +207 -52
  230. data/Gosu/Bitmap.hpp +0 -113
  231. data/src/AudioToolboxFile.hpp +0 -210
  232. data/src/OggFile.hpp +0 -92
  233. data/src/SndFile.hpp +0 -174
  234. data/src/WinMain.cpp +0 -64
@@ -0,0 +1,270 @@
1
+ #ifndef AL_ALC_H
2
+ #define AL_ALC_H
3
+
4
+ #if defined(__cplusplus)
5
+ extern "C" {
6
+ #endif
7
+
8
+ #ifndef ALC_API
9
+ #if defined(AL_LIBTYPE_STATIC)
10
+ #define ALC_API
11
+ #elif defined(_WIN32)
12
+ #define ALC_API __declspec(dllimport)
13
+ #else
14
+ #define ALC_API extern
15
+ #endif
16
+ #endif
17
+
18
+ #if defined(_WIN32)
19
+ #define ALC_APIENTRY __cdecl
20
+ #else
21
+ #define ALC_APIENTRY
22
+ #endif
23
+
24
+
25
+ /* Deprecated macros. */
26
+ #define ALCAPI ALC_API
27
+ #define ALCAPIENTRY ALC_APIENTRY
28
+ #define ALC_INVALID 0
29
+
30
+ /** Supported ALC version? */
31
+ #define ALC_VERSION_0_1 1
32
+
33
+ /** Opaque device handle */
34
+ typedef struct ALCdevice ALCdevice;
35
+ /** Opaque context handle */
36
+ typedef struct ALCcontext ALCcontext;
37
+
38
+ /** 8-bit boolean */
39
+ typedef char ALCboolean;
40
+
41
+ /** character */
42
+ typedef char ALCchar;
43
+
44
+ /** signed 8-bit 2's complement integer */
45
+ typedef signed char ALCbyte;
46
+
47
+ /** unsigned 8-bit integer */
48
+ typedef unsigned char ALCubyte;
49
+
50
+ /** signed 16-bit 2's complement integer */
51
+ typedef short ALCshort;
52
+
53
+ /** unsigned 16-bit integer */
54
+ typedef unsigned short ALCushort;
55
+
56
+ /** signed 32-bit 2's complement integer */
57
+ typedef int ALCint;
58
+
59
+ /** unsigned 32-bit integer */
60
+ typedef unsigned int ALCuint;
61
+
62
+ /** non-negative 32-bit binary integer size */
63
+ typedef int ALCsizei;
64
+
65
+ /** enumerated 32-bit value */
66
+ typedef int ALCenum;
67
+
68
+ /** 32-bit IEEE754 floating-point */
69
+ typedef float ALCfloat;
70
+
71
+ /** 64-bit IEEE754 floating-point */
72
+ typedef double ALCdouble;
73
+
74
+ /** void type (for opaque pointers only) */
75
+ typedef void ALCvoid;
76
+
77
+
78
+ /* Enumerant values begin at column 50. No tabs. */
79
+
80
+ /** Boolean False. */
81
+ #define ALC_FALSE 0
82
+
83
+ /** Boolean True. */
84
+ #define ALC_TRUE 1
85
+
86
+ /** Context attribute: <int> Hz. */
87
+ #define ALC_FREQUENCY 0x1007
88
+
89
+ /** Context attribute: <int> Hz. */
90
+ #define ALC_REFRESH 0x1008
91
+
92
+ /** Context attribute: AL_TRUE or AL_FALSE synchronous context? */
93
+ #define ALC_SYNC 0x1009
94
+
95
+ /** Context attribute: <int> requested Mono (3D) Sources. */
96
+ #define ALC_MONO_SOURCES 0x1010
97
+
98
+ /** Context attribute: <int> requested Stereo Sources. */
99
+ #define ALC_STEREO_SOURCES 0x1011
100
+
101
+ /** No error. */
102
+ #define ALC_NO_ERROR 0
103
+
104
+ /** Invalid device handle. */
105
+ #define ALC_INVALID_DEVICE 0xA001
106
+
107
+ /** Invalid context handle. */
108
+ #define ALC_INVALID_CONTEXT 0xA002
109
+
110
+ /** Invalid enum parameter passed to an ALC call. */
111
+ #define ALC_INVALID_ENUM 0xA003
112
+
113
+ /** Invalid value parameter passed to an ALC call. */
114
+ #define ALC_INVALID_VALUE 0xA004
115
+
116
+ /** Out of memory. */
117
+ #define ALC_OUT_OF_MEMORY 0xA005
118
+
119
+
120
+ /** Runtime ALC major version. */
121
+ #define ALC_MAJOR_VERSION 0x1000
122
+ /** Runtime ALC minor version. */
123
+ #define ALC_MINOR_VERSION 0x1001
124
+
125
+ /** Context attribute list size. */
126
+ #define ALC_ATTRIBUTES_SIZE 0x1002
127
+ /** Context attribute list properties. */
128
+ #define ALC_ALL_ATTRIBUTES 0x1003
129
+
130
+ /** String for the default device specifier. */
131
+ #define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004
132
+ /**
133
+ * String for the given device's specifier.
134
+ *
135
+ * If device handle is NULL, it is instead a null-char separated list of
136
+ * strings of known device specifiers (list ends with an empty string).
137
+ */
138
+ #define ALC_DEVICE_SPECIFIER 0x1005
139
+ /** String for space-separated list of ALC extensions. */
140
+ #define ALC_EXTENSIONS 0x1006
141
+
142
+
143
+ /** Capture extension */
144
+ #define ALC_EXT_CAPTURE 1
145
+ /**
146
+ * String for the given capture device's specifier.
147
+ *
148
+ * If device handle is NULL, it is instead a null-char separated list of
149
+ * strings of known capture device specifiers (list ends with an empty string).
150
+ */
151
+ #define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
152
+ /** String for the default capture device specifier. */
153
+ #define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
154
+ /** Number of sample frames available for capture. */
155
+ #define ALC_CAPTURE_SAMPLES 0x312
156
+
157
+
158
+ /** Enumerate All extension */
159
+ #define ALC_ENUMERATE_ALL_EXT 1
160
+ /** String for the default extended device specifier. */
161
+ #define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
162
+ /**
163
+ * String for the given extended device's specifier.
164
+ *
165
+ * If device handle is NULL, it is instead a null-char separated list of
166
+ * strings of known extended device specifiers (list ends with an empty string).
167
+ */
168
+ #define ALC_ALL_DEVICES_SPECIFIER 0x1013
169
+
170
+
171
+ /* Context management. */
172
+
173
+ /** Create and attach a context to the given device. */
174
+ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCint *attrlist);
175
+ /**
176
+ * Makes the given context the active process-wide context. Passing NULL clears
177
+ * the active context.
178
+ */
179
+ ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent(ALCcontext *context);
180
+ /** Resumes processing updates for the given context. */
181
+ ALC_API void ALC_APIENTRY alcProcessContext(ALCcontext *context);
182
+ /** Suspends updates for the given context. */
183
+ ALC_API void ALC_APIENTRY alcSuspendContext(ALCcontext *context);
184
+ /** Remove a context from its device and destroys it. */
185
+ ALC_API void ALC_APIENTRY alcDestroyContext(ALCcontext *context);
186
+ /** Returns the currently active context. */
187
+ ALC_API ALCcontext* ALC_APIENTRY alcGetCurrentContext(void);
188
+ /** Returns the device that a particular context is attached to. */
189
+ ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice(ALCcontext *context);
190
+
191
+ /* Device management. */
192
+
193
+ /** Opens the named playback device. */
194
+ ALC_API ALCdevice* ALC_APIENTRY alcOpenDevice(const ALCchar *devicename);
195
+ /** Closes the given playback device. */
196
+ ALC_API ALCboolean ALC_APIENTRY alcCloseDevice(ALCdevice *device);
197
+
198
+ /* Error support. */
199
+
200
+ /** Obtain the most recent Device error. */
201
+ ALC_API ALCenum ALC_APIENTRY alcGetError(ALCdevice *device);
202
+
203
+ /* Extension support. */
204
+
205
+ /**
206
+ * Query for the presence of an extension on the device. Pass a NULL device to
207
+ * query a device-inspecific extension.
208
+ */
209
+ ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent(ALCdevice *device, const ALCchar *extname);
210
+ /**
211
+ * Retrieve the address of a function. Given a non-NULL device, the returned
212
+ * function may be device-specific.
213
+ */
214
+ ALC_API ALCvoid* ALC_APIENTRY alcGetProcAddress(ALCdevice *device, const ALCchar *funcname);
215
+ /**
216
+ * Retrieve the value of an enum. Given a non-NULL device, the returned value
217
+ * may be device-specific.
218
+ */
219
+ ALC_API ALCenum ALC_APIENTRY alcGetEnumValue(ALCdevice *device, const ALCchar *enumname);
220
+
221
+ /* Query functions. */
222
+
223
+ /** Returns information about the device, and error strings. */
224
+ ALC_API const ALCchar* ALC_APIENTRY alcGetString(ALCdevice *device, ALCenum param);
225
+ /** Returns information about the device and the version of OpenAL. */
226
+ ALC_API void ALC_APIENTRY alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values);
227
+
228
+ /* Capture functions. */
229
+
230
+ /**
231
+ * Opens the named capture device with the given frequency, format, and buffer
232
+ * size.
233
+ */
234
+ ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize);
235
+ /** Closes the given capture device. */
236
+ ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice(ALCdevice *device);
237
+ /** Starts capturing samples into the device buffer. */
238
+ ALC_API void ALC_APIENTRY alcCaptureStart(ALCdevice *device);
239
+ /** Stops capturing samples. Samples in the device buffer remain available. */
240
+ ALC_API void ALC_APIENTRY alcCaptureStop(ALCdevice *device);
241
+ /** Reads samples from the device buffer. */
242
+ ALC_API void ALC_APIENTRY alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples);
243
+
244
+ /* Pointer-to-function type, useful for dynamically getting ALC entry points. */
245
+ typedef ALCcontext* (ALC_APIENTRY *LPALCCREATECONTEXT)(ALCdevice *device, const ALCint *attrlist);
246
+ typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)(ALCcontext *context);
247
+ typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)(ALCcontext *context);
248
+ typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)(ALCcontext *context);
249
+ typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)(ALCcontext *context);
250
+ typedef ALCcontext* (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)(void);
251
+ typedef ALCdevice* (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)(ALCcontext *context);
252
+ typedef ALCdevice* (ALC_APIENTRY *LPALCOPENDEVICE)(const ALCchar *devicename);
253
+ typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)(ALCdevice *device);
254
+ typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)(ALCdevice *device);
255
+ typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)(ALCdevice *device, const ALCchar *extname);
256
+ typedef ALCvoid* (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname);
257
+ typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname);
258
+ typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)(ALCdevice *device, ALCenum param);
259
+ typedef void (ALC_APIENTRY *LPALCGETINTEGERV)(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *values);
260
+ typedef ALCdevice* (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)(const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize);
261
+ typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)(ALCdevice *device);
262
+ typedef void (ALC_APIENTRY *LPALCCAPTURESTART)(ALCdevice *device);
263
+ typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)(ALCdevice *device);
264
+ typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)(ALCdevice *device, ALCvoid *buffer, ALCsizei samples);
265
+
266
+ #if defined(__cplusplus)
267
+ }
268
+ #endif
269
+
270
+ #endif /* AL_ALC_H */
@@ -0,0 +1,585 @@
1
+ /**
2
+ * OpenAL cross platform audio library
3
+ * Copyright (C) 2008 by authors.
4
+ * This library is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU Library General Public
6
+ * License as published by the Free Software Foundation; either
7
+ * version 2 of the License, or (at your option) any later version.
8
+ *
9
+ * This library is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
+ * Library General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU Library General Public
15
+ * License along with this library; if not, write to the
16
+ * Free Software Foundation, Inc.,
17
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ * Or go to http://www.gnu.org/copyleft/lgpl.html
19
+ */
20
+
21
+ #ifndef AL_ALEXT_H
22
+ #define AL_ALEXT_H
23
+
24
+ #include <stddef.h>
25
+ /* Define int64_t and uint64_t types */
26
+ #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
27
+ #include <inttypes.h>
28
+ #elif defined(__cplusplus) && __cplusplus >= 201103L
29
+ #include <cinttypes>
30
+ #elif defined(_WIN32) && defined(__GNUC__)
31
+ #include <stdint.h>
32
+ #elif defined(_WIN32)
33
+ typedef __int64 int64_t;
34
+ typedef unsigned __int64 uint64_t;
35
+ #else
36
+ /* Fallback if nothing above works */
37
+ #include <inttypes.h>
38
+ #endif
39
+
40
+ #include "alc.h"
41
+ #include "al.h"
42
+
43
+ #ifdef __cplusplus
44
+ extern "C" {
45
+ #endif
46
+
47
+ #ifndef AL_LOKI_IMA_ADPCM_format
48
+ #define AL_LOKI_IMA_ADPCM_format 1
49
+ #define AL_FORMAT_IMA_ADPCM_MONO16_EXT 0x10000
50
+ #define AL_FORMAT_IMA_ADPCM_STEREO16_EXT 0x10001
51
+ #endif
52
+
53
+ #ifndef AL_LOKI_WAVE_format
54
+ #define AL_LOKI_WAVE_format 1
55
+ #define AL_FORMAT_WAVE_EXT 0x10002
56
+ #endif
57
+
58
+ #ifndef AL_EXT_vorbis
59
+ #define AL_EXT_vorbis 1
60
+ #define AL_FORMAT_VORBIS_EXT 0x10003
61
+ #endif
62
+
63
+ #ifndef AL_LOKI_quadriphonic
64
+ #define AL_LOKI_quadriphonic 1
65
+ #define AL_FORMAT_QUAD8_LOKI 0x10004
66
+ #define AL_FORMAT_QUAD16_LOKI 0x10005
67
+ #endif
68
+
69
+ #ifndef AL_EXT_float32
70
+ #define AL_EXT_float32 1
71
+ #define AL_FORMAT_MONO_FLOAT32 0x10010
72
+ #define AL_FORMAT_STEREO_FLOAT32 0x10011
73
+ #endif
74
+
75
+ #ifndef AL_EXT_double
76
+ #define AL_EXT_double 1
77
+ #define AL_FORMAT_MONO_DOUBLE_EXT 0x10012
78
+ #define AL_FORMAT_STEREO_DOUBLE_EXT 0x10013
79
+ #endif
80
+
81
+ #ifndef AL_EXT_MULAW
82
+ #define AL_EXT_MULAW 1
83
+ #define AL_FORMAT_MONO_MULAW_EXT 0x10014
84
+ #define AL_FORMAT_STEREO_MULAW_EXT 0x10015
85
+ #endif
86
+
87
+ #ifndef AL_EXT_ALAW
88
+ #define AL_EXT_ALAW 1
89
+ #define AL_FORMAT_MONO_ALAW_EXT 0x10016
90
+ #define AL_FORMAT_STEREO_ALAW_EXT 0x10017
91
+ #endif
92
+
93
+ #ifndef ALC_LOKI_audio_channel
94
+ #define ALC_LOKI_audio_channel 1
95
+ #define ALC_CHAN_MAIN_LOKI 0x500001
96
+ #define ALC_CHAN_PCM_LOKI 0x500002
97
+ #define ALC_CHAN_CD_LOKI 0x500003
98
+ #endif
99
+
100
+ #ifndef AL_EXT_MCFORMATS
101
+ #define AL_EXT_MCFORMATS 1
102
+ /* Provides support for surround sound buffer formats with 8, 16, and 32-bit
103
+ * samples.
104
+ *
105
+ * QUAD8: Unsigned 8-bit, Quadraphonic (Front Left, Front Right, Rear Left,
106
+ * Rear Right).
107
+ * QUAD16: Signed 16-bit, Quadraphonic.
108
+ * QUAD32: 32-bit float, Quadraphonic.
109
+ * REAR8: Unsigned 8-bit, Rear Stereo (Rear Left, Rear Right).
110
+ * REAR16: Signed 16-bit, Rear Stereo.
111
+ * REAR32: 32-bit float, Rear Stereo.
112
+ * 51CHN8: Unsigned 8-bit, 5.1 Surround (Front Left, Front Right, Front Center,
113
+ * LFE, Side Left, Side Right). Note that some audio systems may label
114
+ * 5.1's Side channels as Rear or Surround; they are equivalent for the
115
+ * purposes of this extension.
116
+ * 51CHN16: Signed 16-bit, 5.1 Surround.
117
+ * 51CHN32: 32-bit float, 5.1 Surround.
118
+ * 61CHN8: Unsigned 8-bit, 6.1 Surround (Front Left, Front Right, Front Center,
119
+ * LFE, Rear Center, Side Left, Side Right).
120
+ * 61CHN16: Signed 16-bit, 6.1 Surround.
121
+ * 61CHN32: 32-bit float, 6.1 Surround.
122
+ * 71CHN8: Unsigned 8-bit, 7.1 Surround (Front Left, Front Right, Front Center,
123
+ * LFE, Rear Left, Rear Right, Side Left, Side Right).
124
+ * 71CHN16: Signed 16-bit, 7.1 Surround.
125
+ * 71CHN32: 32-bit float, 7.1 Surround.
126
+ */
127
+ #define AL_FORMAT_QUAD8 0x1204
128
+ #define AL_FORMAT_QUAD16 0x1205
129
+ #define AL_FORMAT_QUAD32 0x1206
130
+ #define AL_FORMAT_REAR8 0x1207
131
+ #define AL_FORMAT_REAR16 0x1208
132
+ #define AL_FORMAT_REAR32 0x1209
133
+ #define AL_FORMAT_51CHN8 0x120A
134
+ #define AL_FORMAT_51CHN16 0x120B
135
+ #define AL_FORMAT_51CHN32 0x120C
136
+ #define AL_FORMAT_61CHN8 0x120D
137
+ #define AL_FORMAT_61CHN16 0x120E
138
+ #define AL_FORMAT_61CHN32 0x120F
139
+ #define AL_FORMAT_71CHN8 0x1210
140
+ #define AL_FORMAT_71CHN16 0x1211
141
+ #define AL_FORMAT_71CHN32 0x1212
142
+ #endif
143
+
144
+ #ifndef AL_EXT_MULAW_MCFORMATS
145
+ #define AL_EXT_MULAW_MCFORMATS 1
146
+ #define AL_FORMAT_MONO_MULAW 0x10014
147
+ #define AL_FORMAT_STEREO_MULAW 0x10015
148
+ #define AL_FORMAT_QUAD_MULAW 0x10021
149
+ #define AL_FORMAT_REAR_MULAW 0x10022
150
+ #define AL_FORMAT_51CHN_MULAW 0x10023
151
+ #define AL_FORMAT_61CHN_MULAW 0x10024
152
+ #define AL_FORMAT_71CHN_MULAW 0x10025
153
+ #endif
154
+
155
+ #ifndef AL_EXT_IMA4
156
+ #define AL_EXT_IMA4 1
157
+ #define AL_FORMAT_MONO_IMA4 0x1300
158
+ #define AL_FORMAT_STEREO_IMA4 0x1301
159
+ #endif
160
+
161
+ #ifndef AL_EXT_STATIC_BUFFER
162
+ #define AL_EXT_STATIC_BUFFER 1
163
+ typedef void (AL_APIENTRY*PFNALBUFFERDATASTATICPROC)(const ALint,ALenum,ALvoid*,ALsizei,ALsizei);
164
+ #ifdef AL_ALEXT_PROTOTYPES
165
+ AL_API void AL_APIENTRY alBufferDataStatic(const ALint buffer, ALenum format, ALvoid *data, ALsizei len, ALsizei freq);
166
+ #endif
167
+ #endif
168
+
169
+ #ifndef ALC_EXT_EFX
170
+ #define ALC_EXT_EFX 1
171
+ #include "efx.h"
172
+ #endif
173
+
174
+ #ifndef ALC_EXT_disconnect
175
+ #define ALC_EXT_disconnect 1
176
+ #define ALC_CONNECTED 0x313
177
+ #endif
178
+
179
+ #ifndef ALC_EXT_thread_local_context
180
+ #define ALC_EXT_thread_local_context 1
181
+ typedef ALCboolean (ALC_APIENTRY*PFNALCSETTHREADCONTEXTPROC)(ALCcontext *context);
182
+ typedef ALCcontext* (ALC_APIENTRY*PFNALCGETTHREADCONTEXTPROC)(void);
183
+ #ifdef AL_ALEXT_PROTOTYPES
184
+ ALC_API ALCboolean ALC_APIENTRY alcSetThreadContext(ALCcontext *context);
185
+ ALC_API ALCcontext* ALC_APIENTRY alcGetThreadContext(void);
186
+ #endif
187
+ #endif
188
+
189
+ #ifndef AL_EXT_source_distance_model
190
+ #define AL_EXT_source_distance_model 1
191
+ #define AL_SOURCE_DISTANCE_MODEL 0x200
192
+ #endif
193
+
194
+ #ifndef AL_SOFT_buffer_sub_data
195
+ #define AL_SOFT_buffer_sub_data 1
196
+ #define AL_BYTE_RW_OFFSETS_SOFT 0x1031
197
+ #define AL_SAMPLE_RW_OFFSETS_SOFT 0x1032
198
+ typedef void (AL_APIENTRY*PFNALBUFFERSUBDATASOFTPROC)(ALuint,ALenum,const ALvoid*,ALsizei,ALsizei);
199
+ #ifdef AL_ALEXT_PROTOTYPES
200
+ AL_API void AL_APIENTRY alBufferSubDataSOFT(ALuint buffer,ALenum format,const ALvoid *data,ALsizei offset,ALsizei length);
201
+ #endif
202
+ #endif
203
+
204
+ #ifndef AL_SOFT_loop_points
205
+ #define AL_SOFT_loop_points 1
206
+ #define AL_LOOP_POINTS_SOFT 0x2015
207
+ #endif
208
+
209
+ #ifndef AL_EXT_FOLDBACK
210
+ #define AL_EXT_FOLDBACK 1
211
+ #define AL_EXT_FOLDBACK_NAME "AL_EXT_FOLDBACK"
212
+ #define AL_FOLDBACK_EVENT_BLOCK 0x4112
213
+ #define AL_FOLDBACK_EVENT_START 0x4111
214
+ #define AL_FOLDBACK_EVENT_STOP 0x4113
215
+ #define AL_FOLDBACK_MODE_MONO 0x4101
216
+ #define AL_FOLDBACK_MODE_STEREO 0x4102
217
+ typedef void (AL_APIENTRY*LPALFOLDBACKCALLBACK)(ALenum,ALsizei);
218
+ typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTART)(ALenum,ALsizei,ALsizei,ALfloat*,LPALFOLDBACKCALLBACK);
219
+ typedef void (AL_APIENTRY*LPALREQUESTFOLDBACKSTOP)(void);
220
+ #ifdef AL_ALEXT_PROTOTYPES
221
+ AL_API void AL_APIENTRY alRequestFoldbackStart(ALenum mode,ALsizei count,ALsizei length,ALfloat *mem,LPALFOLDBACKCALLBACK callback);
222
+ AL_API void AL_APIENTRY alRequestFoldbackStop(void);
223
+ #endif
224
+ #endif
225
+
226
+ #ifndef ALC_EXT_DEDICATED
227
+ #define ALC_EXT_DEDICATED 1
228
+ #define AL_DEDICATED_GAIN 0x0001
229
+ #define AL_EFFECT_DEDICATED_DIALOGUE 0x9001
230
+ #define AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT 0x9000
231
+ #endif
232
+
233
+ #ifndef AL_SOFT_buffer_samples
234
+ #define AL_SOFT_buffer_samples 1
235
+ /* Channel configurations */
236
+ #define AL_MONO_SOFT 0x1500
237
+ #define AL_STEREO_SOFT 0x1501
238
+ #define AL_REAR_SOFT 0x1502
239
+ #define AL_QUAD_SOFT 0x1503
240
+ #define AL_5POINT1_SOFT 0x1504
241
+ #define AL_6POINT1_SOFT 0x1505
242
+ #define AL_7POINT1_SOFT 0x1506
243
+
244
+ /* Sample types */
245
+ #define AL_BYTE_SOFT 0x1400
246
+ #define AL_UNSIGNED_BYTE_SOFT 0x1401
247
+ #define AL_SHORT_SOFT 0x1402
248
+ #define AL_UNSIGNED_SHORT_SOFT 0x1403
249
+ #define AL_INT_SOFT 0x1404
250
+ #define AL_UNSIGNED_INT_SOFT 0x1405
251
+ #define AL_FLOAT_SOFT 0x1406
252
+ #define AL_DOUBLE_SOFT 0x1407
253
+ #define AL_BYTE3_SOFT 0x1408
254
+ #define AL_UNSIGNED_BYTE3_SOFT 0x1409
255
+
256
+ /* Storage formats */
257
+ #define AL_MONO8_SOFT 0x1100
258
+ #define AL_MONO16_SOFT 0x1101
259
+ #define AL_MONO32F_SOFT 0x10010
260
+ #define AL_STEREO8_SOFT 0x1102
261
+ #define AL_STEREO16_SOFT 0x1103
262
+ #define AL_STEREO32F_SOFT 0x10011
263
+ #define AL_QUAD8_SOFT 0x1204
264
+ #define AL_QUAD16_SOFT 0x1205
265
+ #define AL_QUAD32F_SOFT 0x1206
266
+ #define AL_REAR8_SOFT 0x1207
267
+ #define AL_REAR16_SOFT 0x1208
268
+ #define AL_REAR32F_SOFT 0x1209
269
+ #define AL_5POINT1_8_SOFT 0x120A
270
+ #define AL_5POINT1_16_SOFT 0x120B
271
+ #define AL_5POINT1_32F_SOFT 0x120C
272
+ #define AL_6POINT1_8_SOFT 0x120D
273
+ #define AL_6POINT1_16_SOFT 0x120E
274
+ #define AL_6POINT1_32F_SOFT 0x120F
275
+ #define AL_7POINT1_8_SOFT 0x1210
276
+ #define AL_7POINT1_16_SOFT 0x1211
277
+ #define AL_7POINT1_32F_SOFT 0x1212
278
+
279
+ /* Buffer attributes */
280
+ #define AL_INTERNAL_FORMAT_SOFT 0x2008
281
+ #define AL_BYTE_LENGTH_SOFT 0x2009
282
+ #define AL_SAMPLE_LENGTH_SOFT 0x200A
283
+ #define AL_SEC_LENGTH_SOFT 0x200B
284
+
285
+ typedef void (AL_APIENTRY*LPALBUFFERSAMPLESSOFT)(ALuint,ALuint,ALenum,ALsizei,ALenum,ALenum,const ALvoid*);
286
+ typedef void (AL_APIENTRY*LPALBUFFERSUBSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,const ALvoid*);
287
+ typedef void (AL_APIENTRY*LPALGETBUFFERSAMPLESSOFT)(ALuint,ALsizei,ALsizei,ALenum,ALenum,ALvoid*);
288
+ typedef ALboolean (AL_APIENTRY*LPALISBUFFERFORMATSUPPORTEDSOFT)(ALenum);
289
+ #ifdef AL_ALEXT_PROTOTYPES
290
+ AL_API void AL_APIENTRY alBufferSamplesSOFT(ALuint buffer, ALuint samplerate, ALenum internalformat, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data);
291
+ AL_API void AL_APIENTRY alBufferSubSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, const ALvoid *data);
292
+ AL_API void AL_APIENTRY alGetBufferSamplesSOFT(ALuint buffer, ALsizei offset, ALsizei samples, ALenum channels, ALenum type, ALvoid *data);
293
+ AL_API ALboolean AL_APIENTRY alIsBufferFormatSupportedSOFT(ALenum format);
294
+ #endif
295
+ #endif
296
+
297
+ #ifndef AL_SOFT_direct_channels
298
+ #define AL_SOFT_direct_channels 1
299
+ #define AL_DIRECT_CHANNELS_SOFT 0x1033
300
+ #endif
301
+
302
+ #ifndef ALC_SOFT_loopback
303
+ #define ALC_SOFT_loopback 1
304
+ #define ALC_FORMAT_CHANNELS_SOFT 0x1990
305
+ #define ALC_FORMAT_TYPE_SOFT 0x1991
306
+
307
+ /* Sample types */
308
+ #define ALC_BYTE_SOFT 0x1400
309
+ #define ALC_UNSIGNED_BYTE_SOFT 0x1401
310
+ #define ALC_SHORT_SOFT 0x1402
311
+ #define ALC_UNSIGNED_SHORT_SOFT 0x1403
312
+ #define ALC_INT_SOFT 0x1404
313
+ #define ALC_UNSIGNED_INT_SOFT 0x1405
314
+ #define ALC_FLOAT_SOFT 0x1406
315
+
316
+ /* Channel configurations */
317
+ #define ALC_MONO_SOFT 0x1500
318
+ #define ALC_STEREO_SOFT 0x1501
319
+ #define ALC_QUAD_SOFT 0x1503
320
+ #define ALC_5POINT1_SOFT 0x1504
321
+ #define ALC_6POINT1_SOFT 0x1505
322
+ #define ALC_7POINT1_SOFT 0x1506
323
+
324
+ typedef ALCdevice* (ALC_APIENTRY*LPALCLOOPBACKOPENDEVICESOFT)(const ALCchar*);
325
+ typedef ALCboolean (ALC_APIENTRY*LPALCISRENDERFORMATSUPPORTEDSOFT)(ALCdevice*,ALCsizei,ALCenum,ALCenum);
326
+ typedef void (ALC_APIENTRY*LPALCRENDERSAMPLESSOFT)(ALCdevice*,ALCvoid*,ALCsizei);
327
+ #ifdef AL_ALEXT_PROTOTYPES
328
+ ALC_API ALCdevice* ALC_APIENTRY alcLoopbackOpenDeviceSOFT(const ALCchar *deviceName);
329
+ ALC_API ALCboolean ALC_APIENTRY alcIsRenderFormatSupportedSOFT(ALCdevice *device, ALCsizei freq, ALCenum channels, ALCenum type);
330
+ ALC_API void ALC_APIENTRY alcRenderSamplesSOFT(ALCdevice *device, ALCvoid *buffer, ALCsizei samples);
331
+ #endif
332
+ #endif
333
+
334
+ #ifndef AL_EXT_STEREO_ANGLES
335
+ #define AL_EXT_STEREO_ANGLES 1
336
+ #define AL_STEREO_ANGLES 0x1030
337
+ #endif
338
+
339
+ #ifndef AL_EXT_SOURCE_RADIUS
340
+ #define AL_EXT_SOURCE_RADIUS 1
341
+ #define AL_SOURCE_RADIUS 0x1031
342
+ #endif
343
+
344
+ #ifndef AL_SOFT_source_latency
345
+ #define AL_SOFT_source_latency 1
346
+ #define AL_SAMPLE_OFFSET_LATENCY_SOFT 0x1200
347
+ #define AL_SEC_OFFSET_LATENCY_SOFT 0x1201
348
+ typedef int64_t ALint64SOFT;
349
+ typedef uint64_t ALuint64SOFT;
350
+ typedef void (AL_APIENTRY*LPALSOURCEDSOFT)(ALuint,ALenum,ALdouble);
351
+ typedef void (AL_APIENTRY*LPALSOURCE3DSOFT)(ALuint,ALenum,ALdouble,ALdouble,ALdouble);
352
+ typedef void (AL_APIENTRY*LPALSOURCEDVSOFT)(ALuint,ALenum,const ALdouble*);
353
+ typedef void (AL_APIENTRY*LPALGETSOURCEDSOFT)(ALuint,ALenum,ALdouble*);
354
+ typedef void (AL_APIENTRY*LPALGETSOURCE3DSOFT)(ALuint,ALenum,ALdouble*,ALdouble*,ALdouble*);
355
+ typedef void (AL_APIENTRY*LPALGETSOURCEDVSOFT)(ALuint,ALenum,ALdouble*);
356
+ typedef void (AL_APIENTRY*LPALSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT);
357
+ typedef void (AL_APIENTRY*LPALSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT,ALint64SOFT,ALint64SOFT);
358
+ typedef void (AL_APIENTRY*LPALSOURCEI64VSOFT)(ALuint,ALenum,const ALint64SOFT*);
359
+ typedef void (AL_APIENTRY*LPALGETSOURCEI64SOFT)(ALuint,ALenum,ALint64SOFT*);
360
+ typedef void (AL_APIENTRY*LPALGETSOURCE3I64SOFT)(ALuint,ALenum,ALint64SOFT*,ALint64SOFT*,ALint64SOFT*);
361
+ typedef void (AL_APIENTRY*LPALGETSOURCEI64VSOFT)(ALuint,ALenum,ALint64SOFT*);
362
+ #ifdef AL_ALEXT_PROTOTYPES
363
+ AL_API void AL_APIENTRY alSourcedSOFT(ALuint source, ALenum param, ALdouble value);
364
+ AL_API void AL_APIENTRY alSource3dSOFT(ALuint source, ALenum param, ALdouble value1, ALdouble value2, ALdouble value3);
365
+ AL_API void AL_APIENTRY alSourcedvSOFT(ALuint source, ALenum param, const ALdouble *values);
366
+ AL_API void AL_APIENTRY alGetSourcedSOFT(ALuint source, ALenum param, ALdouble *value);
367
+ AL_API void AL_APIENTRY alGetSource3dSOFT(ALuint source, ALenum param, ALdouble *value1, ALdouble *value2, ALdouble *value3);
368
+ AL_API void AL_APIENTRY alGetSourcedvSOFT(ALuint source, ALenum param, ALdouble *values);
369
+ AL_API void AL_APIENTRY alSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT value);
370
+ AL_API void AL_APIENTRY alSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT value1, ALint64SOFT value2, ALint64SOFT value3);
371
+ AL_API void AL_APIENTRY alSourcei64vSOFT(ALuint source, ALenum param, const ALint64SOFT *values);
372
+ AL_API void AL_APIENTRY alGetSourcei64SOFT(ALuint source, ALenum param, ALint64SOFT *value);
373
+ AL_API void AL_APIENTRY alGetSource3i64SOFT(ALuint source, ALenum param, ALint64SOFT *value1, ALint64SOFT *value2, ALint64SOFT *value3);
374
+ AL_API void AL_APIENTRY alGetSourcei64vSOFT(ALuint source, ALenum param, ALint64SOFT *values);
375
+ #endif
376
+ #endif
377
+
378
+ #ifndef ALC_EXT_DEFAULT_FILTER_ORDER
379
+ #define ALC_EXT_DEFAULT_FILTER_ORDER 1
380
+ #define ALC_DEFAULT_FILTER_ORDER 0x1100
381
+ #endif
382
+
383
+ #ifndef AL_SOFT_deferred_updates
384
+ #define AL_SOFT_deferred_updates 1
385
+ #define AL_DEFERRED_UPDATES_SOFT 0xC002
386
+ typedef void (AL_APIENTRY*LPALDEFERUPDATESSOFT)(void);
387
+ typedef void (AL_APIENTRY*LPALPROCESSUPDATESSOFT)(void);
388
+ #ifdef AL_ALEXT_PROTOTYPES
389
+ AL_API void AL_APIENTRY alDeferUpdatesSOFT(void);
390
+ AL_API void AL_APIENTRY alProcessUpdatesSOFT(void);
391
+ #endif
392
+ #endif
393
+
394
+ #ifndef AL_SOFT_block_alignment
395
+ #define AL_SOFT_block_alignment 1
396
+ #define AL_UNPACK_BLOCK_ALIGNMENT_SOFT 0x200C
397
+ #define AL_PACK_BLOCK_ALIGNMENT_SOFT 0x200D
398
+ #endif
399
+
400
+ #ifndef AL_SOFT_MSADPCM
401
+ #define AL_SOFT_MSADPCM 1
402
+ #define AL_FORMAT_MONO_MSADPCM_SOFT 0x1302
403
+ #define AL_FORMAT_STEREO_MSADPCM_SOFT 0x1303
404
+ #endif
405
+
406
+ #ifndef AL_SOFT_source_length
407
+ #define AL_SOFT_source_length 1
408
+ /*#define AL_BYTE_LENGTH_SOFT 0x2009*/
409
+ /*#define AL_SAMPLE_LENGTH_SOFT 0x200A*/
410
+ /*#define AL_SEC_LENGTH_SOFT 0x200B*/
411
+ #endif
412
+
413
+ #ifndef ALC_SOFT_pause_device
414
+ #define ALC_SOFT_pause_device 1
415
+ typedef void (ALC_APIENTRY*LPALCDEVICEPAUSESOFT)(ALCdevice *device);
416
+ typedef void (ALC_APIENTRY*LPALCDEVICERESUMESOFT)(ALCdevice *device);
417
+ #ifdef AL_ALEXT_PROTOTYPES
418
+ ALC_API void ALC_APIENTRY alcDevicePauseSOFT(ALCdevice *device);
419
+ ALC_API void ALC_APIENTRY alcDeviceResumeSOFT(ALCdevice *device);
420
+ #endif
421
+ #endif
422
+
423
+ #ifndef AL_EXT_BFORMAT
424
+ #define AL_EXT_BFORMAT 1
425
+ /* Provides support for B-Format ambisonic buffers (first-order, FuMa scaling
426
+ * and layout).
427
+ *
428
+ * BFORMAT2D_8: Unsigned 8-bit, 3-channel non-periphonic (WXY).
429
+ * BFORMAT2D_16: Signed 16-bit, 3-channel non-periphonic (WXY).
430
+ * BFORMAT2D_FLOAT32: 32-bit float, 3-channel non-periphonic (WXY).
431
+ * BFORMAT3D_8: Unsigned 8-bit, 4-channel periphonic (WXYZ).
432
+ * BFORMAT3D_16: Signed 16-bit, 4-channel periphonic (WXYZ).
433
+ * BFORMAT3D_FLOAT32: 32-bit float, 4-channel periphonic (WXYZ).
434
+ */
435
+ #define AL_FORMAT_BFORMAT2D_8 0x20021
436
+ #define AL_FORMAT_BFORMAT2D_16 0x20022
437
+ #define AL_FORMAT_BFORMAT2D_FLOAT32 0x20023
438
+ #define AL_FORMAT_BFORMAT3D_8 0x20031
439
+ #define AL_FORMAT_BFORMAT3D_16 0x20032
440
+ #define AL_FORMAT_BFORMAT3D_FLOAT32 0x20033
441
+ #endif
442
+
443
+ #ifndef AL_EXT_MULAW_BFORMAT
444
+ #define AL_EXT_MULAW_BFORMAT 1
445
+ #define AL_FORMAT_BFORMAT2D_MULAW 0x10031
446
+ #define AL_FORMAT_BFORMAT3D_MULAW 0x10032
447
+ #endif
448
+
449
+ #ifndef ALC_SOFT_HRTF
450
+ #define ALC_SOFT_HRTF 1
451
+ #define ALC_HRTF_SOFT 0x1992
452
+ #define ALC_DONT_CARE_SOFT 0x0002
453
+ #define ALC_HRTF_STATUS_SOFT 0x1993
454
+ #define ALC_HRTF_DISABLED_SOFT 0x0000
455
+ #define ALC_HRTF_ENABLED_SOFT 0x0001
456
+ #define ALC_HRTF_DENIED_SOFT 0x0002
457
+ #define ALC_HRTF_REQUIRED_SOFT 0x0003
458
+ #define ALC_HRTF_HEADPHONES_DETECTED_SOFT 0x0004
459
+ #define ALC_HRTF_UNSUPPORTED_FORMAT_SOFT 0x0005
460
+ #define ALC_NUM_HRTF_SPECIFIERS_SOFT 0x1994
461
+ #define ALC_HRTF_SPECIFIER_SOFT 0x1995
462
+ #define ALC_HRTF_ID_SOFT 0x1996
463
+ typedef const ALCchar* (ALC_APIENTRY*LPALCGETSTRINGISOFT)(ALCdevice *device, ALCenum paramName, ALCsizei index);
464
+ typedef ALCboolean (ALC_APIENTRY*LPALCRESETDEVICESOFT)(ALCdevice *device, const ALCint *attribs);
465
+ #ifdef AL_ALEXT_PROTOTYPES
466
+ ALC_API const ALCchar* ALC_APIENTRY alcGetStringiSOFT(ALCdevice *device, ALCenum paramName, ALCsizei index);
467
+ ALC_API ALCboolean ALC_APIENTRY alcResetDeviceSOFT(ALCdevice *device, const ALCint *attribs);
468
+ #endif
469
+ #endif
470
+
471
+ #ifndef AL_SOFT_gain_clamp_ex
472
+ #define AL_SOFT_gain_clamp_ex 1
473
+ #define AL_GAIN_LIMIT_SOFT 0x200E
474
+ #endif
475
+
476
+ #ifndef AL_SOFT_source_resampler
477
+ #define AL_SOFT_source_resampler
478
+ #define AL_NUM_RESAMPLERS_SOFT 0x1210
479
+ #define AL_DEFAULT_RESAMPLER_SOFT 0x1211
480
+ #define AL_SOURCE_RESAMPLER_SOFT 0x1212
481
+ #define AL_RESAMPLER_NAME_SOFT 0x1213
482
+ typedef const ALchar* (AL_APIENTRY*LPALGETSTRINGISOFT)(ALenum pname, ALsizei index);
483
+ #ifdef AL_ALEXT_PROTOTYPES
484
+ AL_API const ALchar* AL_APIENTRY alGetStringiSOFT(ALenum pname, ALsizei index);
485
+ #endif
486
+ #endif
487
+
488
+ #ifndef AL_SOFT_source_spatialize
489
+ #define AL_SOFT_source_spatialize
490
+ #define AL_SOURCE_SPATIALIZE_SOFT 0x1214
491
+ #define AL_AUTO_SOFT 0x0002
492
+ #endif
493
+
494
+ #ifndef ALC_SOFT_output_limiter
495
+ #define ALC_SOFT_output_limiter
496
+ #define ALC_OUTPUT_LIMITER_SOFT 0x199A
497
+ #endif
498
+
499
+ #ifndef ALC_SOFT_device_clock
500
+ #define ALC_SOFT_device_clock 1
501
+ typedef int64_t ALCint64SOFT;
502
+ typedef uint64_t ALCuint64SOFT;
503
+ #define ALC_DEVICE_CLOCK_SOFT 0x1600
504
+ #define ALC_DEVICE_LATENCY_SOFT 0x1601
505
+ #define ALC_DEVICE_CLOCK_LATENCY_SOFT 0x1602
506
+ #define AL_SAMPLE_OFFSET_CLOCK_SOFT 0x1202
507
+ #define AL_SEC_OFFSET_CLOCK_SOFT 0x1203
508
+ typedef void (ALC_APIENTRY*LPALCGETINTEGER64VSOFT)(ALCdevice *device, ALCenum pname, ALsizei size, ALCint64SOFT *values);
509
+ #ifdef AL_ALEXT_PROTOTYPES
510
+ ALC_API void ALC_APIENTRY alcGetInteger64vSOFT(ALCdevice *device, ALCenum pname, ALsizei size, ALCint64SOFT *values);
511
+ #endif
512
+ #endif
513
+
514
+ #ifndef AL_SOFT_direct_channels_remix
515
+ #define AL_SOFT_direct_channels_remix 1
516
+ #define AL_DROP_UNMATCHED_SOFT 0x0001
517
+ #define AL_REMIX_UNMATCHED_SOFT 0x0002
518
+ #endif
519
+
520
+ #ifndef AL_SOFT_bformat_ex
521
+ #define AL_SOFT_bformat_ex 1
522
+ #define AL_AMBISONIC_LAYOUT_SOFT 0x1997
523
+ #define AL_AMBISONIC_SCALING_SOFT 0x1998
524
+
525
+ /* Ambisonic layouts */
526
+ #define AL_FUMA_SOFT 0x0000
527
+ #define AL_ACN_SOFT 0x0001
528
+
529
+ /* Ambisonic scalings (normalization) */
530
+ /*#define AL_FUMA_SOFT*/
531
+ #define AL_SN3D_SOFT 0x0001
532
+ #define AL_N3D_SOFT 0x0002
533
+ #endif
534
+
535
+ #ifndef ALC_SOFT_loopback_bformat
536
+ #define ALC_SOFT_loopback_bformat 1
537
+ #define ALC_AMBISONIC_LAYOUT_SOFT 0x1997
538
+ #define ALC_AMBISONIC_SCALING_SOFT 0x1998
539
+ #define ALC_AMBISONIC_ORDER_SOFT 0x1999
540
+ #define ALC_MAX_AMBISONIC_ORDER_SOFT 0x199B
541
+
542
+ #define ALC_BFORMAT3D_SOFT 0x1507
543
+
544
+ /* Ambisonic layouts */
545
+ #define ALC_FUMA_SOFT 0x0000
546
+ #define ALC_ACN_SOFT 0x0001
547
+
548
+ /* Ambisonic scalings (normalization) */
549
+ /*#define ALC_FUMA_SOFT*/
550
+ #define ALC_SN3D_SOFT 0x0001
551
+ #define ALC_N3D_SOFT 0x0002
552
+ #endif
553
+
554
+ #ifndef AL_SOFT_effect_target
555
+ #define AL_SOFT_effect_target
556
+ #define AL_EFFECTSLOT_TARGET_SOFT 0x199C
557
+ #endif
558
+
559
+ #ifndef AL_SOFT_events
560
+ #define AL_SOFT_events 1
561
+ #define AL_EVENT_CALLBACK_FUNCTION_SOFT 0x19A2
562
+ #define AL_EVENT_CALLBACK_USER_PARAM_SOFT 0x19A3
563
+ #define AL_EVENT_TYPE_BUFFER_COMPLETED_SOFT 0x19A4
564
+ #define AL_EVENT_TYPE_SOURCE_STATE_CHANGED_SOFT 0x19A5
565
+ #define AL_EVENT_TYPE_DISCONNECTED_SOFT 0x19A6
566
+ typedef void (AL_APIENTRY*ALEVENTPROCSOFT)(ALenum eventType, ALuint object, ALuint param,
567
+ ALsizei length, const ALchar *message,
568
+ void *userParam);
569
+ typedef void (AL_APIENTRY*LPALEVENTCONTROLSOFT)(ALsizei count, const ALenum *types, ALboolean enable);
570
+ typedef void (AL_APIENTRY*LPALEVENTCALLBACKSOFT)(ALEVENTPROCSOFT callback, void *userParam);
571
+ typedef void* (AL_APIENTRY*LPALGETPOINTERSOFT)(ALenum pname);
572
+ typedef void (AL_APIENTRY*LPALGETPOINTERVSOFT)(ALenum pname, void **values);
573
+ #ifdef AL_ALEXT_PROTOTYPES
574
+ AL_API void AL_APIENTRY alEventControlSOFT(ALsizei count, const ALenum *types, ALboolean enable);
575
+ AL_API void AL_APIENTRY alEventCallbackSOFT(ALEVENTPROCSOFT callback, void *userParam);
576
+ AL_API void* AL_APIENTRY alGetPointerSOFT(ALenum pname);
577
+ AL_API void AL_APIENTRY alGetPointervSOFT(ALenum pname, void **values);
578
+ #endif
579
+ #endif
580
+
581
+ #ifdef __cplusplus
582
+ }
583
+ #endif
584
+
585
+ #endif