seal 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (421) hide show
  1. data/.yardopts +1 -0
  2. data/LICENSE +13 -0
  3. data/README.md +265 -0
  4. data/ext/seal/extconf.rb +45 -0
  5. data/include/al/al.h +724 -0
  6. data/include/al/alc.h +277 -0
  7. data/include/al/efx-presets.h +402 -0
  8. data/include/al/efx.h +758 -0
  9. data/include/mpg123/mpg123.h +1034 -0
  10. data/include/ogg/config_types.h +25 -0
  11. data/include/ogg/ogg.h +210 -0
  12. data/include/ogg/os_types.h +147 -0
  13. data/include/seal.h +23 -0
  14. data/include/seal/buf.h +143 -0
  15. data/include/seal/core.h +95 -0
  16. data/include/seal/efs.h +112 -0
  17. data/include/seal/err.h +93 -0
  18. data/include/seal/fmt.h +58 -0
  19. data/include/seal/listener.h +103 -0
  20. data/include/seal/raw.h +86 -0
  21. data/include/seal/rvb.h +520 -0
  22. data/include/seal/src.h +413 -0
  23. data/include/seal/stream.h +81 -0
  24. data/include/vorbis/codec.h +243 -0
  25. data/include/vorbis/vorbisfile.h +206 -0
  26. data/mpg123/AUTHORS +150 -0
  27. data/mpg123/COPYING +773 -0
  28. data/mpg123/ChangeLog +3 -0
  29. data/mpg123/INSTALL +111 -0
  30. data/mpg123/Makefile.am +99 -0
  31. data/mpg123/Makefile.in +1043 -0
  32. data/mpg123/NEWS +1200 -0
  33. data/mpg123/NEWS.libmpg123 +133 -0
  34. data/mpg123/README +203 -0
  35. data/mpg123/TODO +38 -0
  36. data/mpg123/aclocal.m4 +1168 -0
  37. data/mpg123/build/config.guess +1530 -0
  38. data/mpg123/build/config.sub +1782 -0
  39. data/mpg123/build/depcomp +707 -0
  40. data/mpg123/build/install-sh +527 -0
  41. data/mpg123/build/ltmain.sh +9655 -0
  42. data/mpg123/build/missing +330 -0
  43. data/mpg123/configure +20267 -0
  44. data/mpg123/configure.ac +2178 -0
  45. data/mpg123/doc/ACCURACY +2 -0
  46. data/mpg123/doc/BENCHMARKING +110 -0
  47. data/mpg123/doc/BUGS +3 -0
  48. data/mpg123/doc/CONTACT +17 -0
  49. data/mpg123/doc/LICENSE +22 -0
  50. data/mpg123/doc/Makefile.am +32 -0
  51. data/mpg123/doc/Makefile.in +490 -0
  52. data/mpg123/doc/PATENTS +39 -0
  53. data/mpg123/doc/README.3DNOW +56 -0
  54. data/mpg123/doc/README.gain +171 -0
  55. data/mpg123/doc/README.remote +218 -0
  56. data/mpg123/doc/ROAD_TO_LGPL +270 -0
  57. data/mpg123/doc/THANKS +13 -0
  58. data/mpg123/doc/TODO +63 -0
  59. data/mpg123/doc/doxy_examples.c +21 -0
  60. data/mpg123/doc/doxygen.conf +41 -0
  61. data/mpg123/doc/doxyhead.xhtml +12 -0
  62. data/mpg123/doc/examples/dump_seekindex.c +41 -0
  63. data/mpg123/doc/examples/extract_frames.c +92 -0
  64. data/mpg123/doc/examples/feedseek.c +238 -0
  65. data/mpg123/doc/examples/id3dump.c +178 -0
  66. data/mpg123/doc/examples/mpg123_to_wav.c +118 -0
  67. data/mpg123/doc/examples/mpglib.c +92 -0
  68. data/mpg123/doc/examples/scan.c +47 -0
  69. data/mpg123/doc/libmpg123_speed.txt +84 -0
  70. data/mpg123/equalize.dat +37 -0
  71. data/mpg123/libmpg123.pc.in +11 -0
  72. data/mpg123/m4/addrconfig.m4 +34 -0
  73. data/mpg123/m4/libtool.m4 +7982 -0
  74. data/mpg123/m4/ltoptions.m4 +384 -0
  75. data/mpg123/m4/ltsugar.m4 +123 -0
  76. data/mpg123/m4/ltversion.m4 +23 -0
  77. data/mpg123/m4/lt~obsolete.m4 +98 -0
  78. data/mpg123/makedll.sh +19 -0
  79. data/mpg123/man1/mpg123.1 +512 -0
  80. data/mpg123/mpg123.spec +68 -0
  81. data/mpg123/mpg123.spec.in +68 -0
  82. data/mpg123/ports/MSVC++/2005/libmpg123/libmpg123.vcproj +741 -0
  83. data/mpg123/ports/MSVC++/2008/dump_seekindex/dump_seekindex.vcproj +194 -0
  84. data/mpg123/ports/MSVC++/2008/feedseek/feedseek.vcproj +195 -0
  85. data/mpg123/ports/MSVC++/2008/libmpg123/libmpg123.vcproj +1357 -0
  86. data/mpg123/ports/MSVC++/2008/mpg123.sln +44 -0
  87. data/mpg123/ports/MSVC++/2008/mpglib/mpglib.vcproj +191 -0
  88. data/mpg123/ports/MSVC++/2008/scan/scan.vcproj +195 -0
  89. data/mpg123/ports/MSVC++/2008clr/2008clr.sln +81 -0
  90. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Program.cs +435 -0
  91. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Properties/AssemblyInfo.cs +36 -0
  92. data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/ReplaceReaderclr.csproj +72 -0
  93. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Program.cs +331 -0
  94. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Properties/AssemblyInfo.cs +36 -0
  95. data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/feedseekclr.csproj +71 -0
  96. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Program.cs +79 -0
  97. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Properties/AssemblyInfo.cs +36 -0
  98. data/mpg123/ports/MSVC++/2008clr/examples/scanclr/scanclr.csproj +70 -0
  99. data/mpg123/ports/MSVC++/2008clr/mpg123clr/AssemblyInfo.cpp +76 -0
  100. data/mpg123/ports/MSVC++/2008clr/mpg123clr/ReadMe.txt +165 -0
  101. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.cpp +91 -0
  102. data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.h +130 -0
  103. data/mpg123/ports/MSVC++/2008clr/mpg123clr/dllmain.cpp +19 -0
  104. data/mpg123/ports/MSVC++/2008clr/mpg123clr/enum.h +218 -0
  105. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.cpp +48 -0
  106. data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.h +134 -0
  107. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.cpp +92 -0
  108. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.h +132 -0
  109. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.cpp +138 -0
  110. data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.h +152 -0
  111. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.cpp +896 -0
  112. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.h +953 -0
  113. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.rc +102 -0
  114. data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.vcproj +328 -0
  115. data/mpg123/ports/MSVC++/2008clr/mpg123clr/resource.h +14 -0
  116. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.cpp +8 -0
  117. data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.h +38 -0
  118. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.cpp +166 -0
  119. data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.h +265 -0
  120. data/mpg123/ports/MSVC++/2008clr/mpg123clr/targetver.h +24 -0
  121. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.cpp +67 -0
  122. data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.h +111 -0
  123. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj +90 -0
  124. data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj.filters +6 -0
  125. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj +95 -0
  126. data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj.filters +6 -0
  127. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +960 -0
  128. data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj.user +3 -0
  129. data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
  130. data/mpg123/ports/MSVC++/2010/mpg123.sln +38 -0
  131. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj +93 -0
  132. data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj.filters +6 -0
  133. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/CORE_FileIn.H +15 -0
  134. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/SourceFilter_MP3.H +139 -0
  135. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_Def.H +206 -0
  136. data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H +167 -0
  137. data/mpg123/ports/MSVC++/CMP3Stream/README +4 -0
  138. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_FileIn.CPP +462 -0
  139. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Log.CPP +122 -0
  140. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Mutex.CPP +35 -0
  141. data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/SourceFilter_MP3Stream.CPP +586 -0
  142. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/PLACE_LIBMPG123_SOURCES_HERE +0 -0
  143. data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/libMPG123.vcproj +245 -0
  144. data/mpg123/ports/MSVC++/config.h +35 -0
  145. data/mpg123/ports/MSVC++/examples/feedseek.c +240 -0
  146. data/mpg123/ports/MSVC++/examples/scan.c +47 -0
  147. data/mpg123/ports/MSVC++/mpg123.h +46 -0
  148. data/mpg123/ports/MSVC++/msvc.c +59 -0
  149. data/mpg123/ports/README +26 -0
  150. data/mpg123/ports/Sony_PSP/Makefile.psp +38 -0
  151. data/mpg123/ports/Sony_PSP/README +11 -0
  152. data/mpg123/ports/Sony_PSP/config.h +368 -0
  153. data/mpg123/ports/Sony_PSP/readers.c.patch +2 -0
  154. data/mpg123/ports/Xcode/config.h +197 -0
  155. data/mpg123/ports/Xcode/mpg123.h +17 -0
  156. data/mpg123/ports/Xcode/mpg123.xcodeproj/project.pbxproj +670 -0
  157. data/mpg123/ports/mpg123_.pas +478 -0
  158. data/mpg123/scripts/benchmark-cpu.pl +56 -0
  159. data/mpg123/scripts/tag_lyrics.py +76 -0
  160. data/mpg123/src/Makefile.am +186 -0
  161. data/mpg123/src/Makefile.in +1097 -0
  162. data/mpg123/src/audio.c +725 -0
  163. data/mpg123/src/audio.h +106 -0
  164. data/mpg123/src/buffer.c +312 -0
  165. data/mpg123/src/buffer.h +45 -0
  166. data/mpg123/src/common.c +240 -0
  167. data/mpg123/src/common.h +29 -0
  168. data/mpg123/src/config.h.in +436 -0
  169. data/mpg123/src/control_generic.c +809 -0
  170. data/mpg123/src/equalizer.c +48 -0
  171. data/mpg123/src/genre.c +271 -0
  172. data/mpg123/src/genre.h +15 -0
  173. data/mpg123/src/getlopt.c +148 -0
  174. data/mpg123/src/getlopt.h +77 -0
  175. data/mpg123/src/httpget.c +700 -0
  176. data/mpg123/src/httpget.h +66 -0
  177. data/mpg123/src/legacy_module.c +74 -0
  178. data/mpg123/src/libmpg123/Makefile.am +141 -0
  179. data/mpg123/src/libmpg123/Makefile.in +919 -0
  180. data/mpg123/src/libmpg123/compat.c +138 -0
  181. data/mpg123/src/libmpg123/compat.h +178 -0
  182. data/mpg123/src/libmpg123/dct36_3dnow.S +505 -0
  183. data/mpg123/src/libmpg123/dct36_3dnowext.S +512 -0
  184. data/mpg123/src/libmpg123/dct64.c +174 -0
  185. data/mpg123/src/libmpg123/dct64_3dnow.S +712 -0
  186. data/mpg123/src/libmpg123/dct64_3dnowext.S +714 -0
  187. data/mpg123/src/libmpg123/dct64_altivec.c +315 -0
  188. data/mpg123/src/libmpg123/dct64_i386.c +336 -0
  189. data/mpg123/src/libmpg123/dct64_i486.c +342 -0
  190. data/mpg123/src/libmpg123/dct64_mmx.S +811 -0
  191. data/mpg123/src/libmpg123/dct64_neon.S +297 -0
  192. data/mpg123/src/libmpg123/dct64_neon_float.S +270 -0
  193. data/mpg123/src/libmpg123/dct64_sse.S +454 -0
  194. data/mpg123/src/libmpg123/dct64_sse_float.S +401 -0
  195. data/mpg123/src/libmpg123/dct64_x86_64.S +464 -0
  196. data/mpg123/src/libmpg123/dct64_x86_64_float.S +426 -0
  197. data/mpg123/src/libmpg123/debug.h +171 -0
  198. data/mpg123/src/libmpg123/decode.h +268 -0
  199. data/mpg123/src/libmpg123/dither.c +119 -0
  200. data/mpg123/src/libmpg123/dither.h +23 -0
  201. data/mpg123/src/libmpg123/equalizer.c +17 -0
  202. data/mpg123/src/libmpg123/equalizer_3dnow.S +70 -0
  203. data/mpg123/src/libmpg123/feature.c +106 -0
  204. data/mpg123/src/libmpg123/format.c +521 -0
  205. data/mpg123/src/libmpg123/frame.c +1046 -0
  206. data/mpg123/src/libmpg123/frame.h +410 -0
  207. data/mpg123/src/libmpg123/gapless.h +119 -0
  208. data/mpg123/src/libmpg123/getbits.h +100 -0
  209. data/mpg123/src/libmpg123/getcpuflags.S +91 -0
  210. data/mpg123/src/libmpg123/getcpuflags.h +47 -0
  211. data/mpg123/src/libmpg123/huffman.h +340 -0
  212. data/mpg123/src/libmpg123/icy.c +32 -0
  213. data/mpg123/src/libmpg123/icy.h +38 -0
  214. data/mpg123/src/libmpg123/icy2utf8.c +438 -0
  215. data/mpg123/src/libmpg123/icy2utf8.h +10 -0
  216. data/mpg123/src/libmpg123/id3.c +999 -0
  217. data/mpg123/src/libmpg123/id3.h +43 -0
  218. data/mpg123/src/libmpg123/index.c +134 -0
  219. data/mpg123/src/libmpg123/index.h +59 -0
  220. data/mpg123/src/libmpg123/intsym.h +256 -0
  221. data/mpg123/src/libmpg123/l12_integer_tables.h +278 -0
  222. data/mpg123/src/libmpg123/l2tables.h +164 -0
  223. data/mpg123/src/libmpg123/l3_integer_tables.h +1002 -0
  224. data/mpg123/src/libmpg123/layer1.c +155 -0
  225. data/mpg123/src/libmpg123/layer2.c +371 -0
  226. data/mpg123/src/libmpg123/layer3.c +2053 -0
  227. data/mpg123/src/libmpg123/lfs_alias.c +252 -0
  228. data/mpg123/src/libmpg123/lfs_wrap.c +751 -0
  229. data/mpg123/src/libmpg123/libmpg123.c +1607 -0
  230. data/mpg123/src/libmpg123/mangle.h +74 -0
  231. data/mpg123/src/libmpg123/mpeghead.h +87 -0
  232. data/mpg123/src/libmpg123/mpg123.h.in +1075 -0
  233. data/mpg123/src/libmpg123/mpg123lib_intern.h +338 -0
  234. data/mpg123/src/libmpg123/ntom.c +148 -0
  235. data/mpg123/src/libmpg123/optimize.c +964 -0
  236. data/mpg123/src/libmpg123/optimize.h +219 -0
  237. data/mpg123/src/libmpg123/parse.c +1179 -0
  238. data/mpg123/src/libmpg123/parse.h +25 -0
  239. data/mpg123/src/libmpg123/reader.h +137 -0
  240. data/mpg123/src/libmpg123/readers.c +1235 -0
  241. data/mpg123/src/libmpg123/sample.h +152 -0
  242. data/mpg123/src/libmpg123/stringbuf.c +163 -0
  243. data/mpg123/src/libmpg123/synth.c +816 -0
  244. data/mpg123/src/libmpg123/synth.h +196 -0
  245. data/mpg123/src/libmpg123/synth_3dnow.S +318 -0
  246. data/mpg123/src/libmpg123/synth_3dnowext.S +6 -0
  247. data/mpg123/src/libmpg123/synth_8bit.c +142 -0
  248. data/mpg123/src/libmpg123/synth_8bit.h +86 -0
  249. data/mpg123/src/libmpg123/synth_altivec.c +1057 -0
  250. data/mpg123/src/libmpg123/synth_arm.S +271 -0
  251. data/mpg123/src/libmpg123/synth_arm_accurate.S +287 -0
  252. data/mpg123/src/libmpg123/synth_i486.c +252 -0
  253. data/mpg123/src/libmpg123/synth_i586.S +336 -0
  254. data/mpg123/src/libmpg123/synth_i586_dither.S +375 -0
  255. data/mpg123/src/libmpg123/synth_mmx.S +125 -0
  256. data/mpg123/src/libmpg123/synth_mono.h +64 -0
  257. data/mpg123/src/libmpg123/synth_neon.S +123 -0
  258. data/mpg123/src/libmpg123/synth_neon_accurate.S +173 -0
  259. data/mpg123/src/libmpg123/synth_neon_float.S +149 -0
  260. data/mpg123/src/libmpg123/synth_neon_s32.S +168 -0
  261. data/mpg123/src/libmpg123/synth_ntom.h +213 -0
  262. data/mpg123/src/libmpg123/synth_real.c +404 -0
  263. data/mpg123/src/libmpg123/synth_s32.c +411 -0
  264. data/mpg123/src/libmpg123/synth_sse.S +6 -0
  265. data/mpg123/src/libmpg123/synth_sse3d.h +246 -0
  266. data/mpg123/src/libmpg123/synth_sse_accurate.S +294 -0
  267. data/mpg123/src/libmpg123/synth_sse_float.S +241 -0
  268. data/mpg123/src/libmpg123/synth_sse_s32.S +306 -0
  269. data/mpg123/src/libmpg123/synth_stereo_neon.S +175 -0
  270. data/mpg123/src/libmpg123/synth_stereo_neon_accurate.S +262 -0
  271. data/mpg123/src/libmpg123/synth_stereo_neon_float.S +220 -0
  272. data/mpg123/src/libmpg123/synth_stereo_neon_s32.S +247 -0
  273. data/mpg123/src/libmpg123/synth_stereo_sse_accurate.S +508 -0
  274. data/mpg123/src/libmpg123/synth_stereo_sse_float.S +416 -0
  275. data/mpg123/src/libmpg123/synth_stereo_sse_s32.S +540 -0
  276. data/mpg123/src/libmpg123/synth_stereo_x86_64.S +335 -0
  277. data/mpg123/src/libmpg123/synth_stereo_x86_64_accurate.S +454 -0
  278. data/mpg123/src/libmpg123/synth_stereo_x86_64_float.S +396 -0
  279. data/mpg123/src/libmpg123/synth_stereo_x86_64_s32.S +473 -0
  280. data/mpg123/src/libmpg123/synth_x86_64.S +244 -0
  281. data/mpg123/src/libmpg123/synth_x86_64_accurate.S +301 -0
  282. data/mpg123/src/libmpg123/synth_x86_64_float.S +259 -0
  283. data/mpg123/src/libmpg123/synth_x86_64_s32.S +312 -0
  284. data/mpg123/src/libmpg123/synths.h +52 -0
  285. data/mpg123/src/libmpg123/tabinit.c +294 -0
  286. data/mpg123/src/libmpg123/tabinit_mmx.S +210 -0
  287. data/mpg123/src/libmpg123/testcpu.c +35 -0
  288. data/mpg123/src/libmpg123/true.h +14 -0
  289. data/mpg123/src/local.c +63 -0
  290. data/mpg123/src/local.h +21 -0
  291. data/mpg123/src/metaprint.c +373 -0
  292. data/mpg123/src/metaprint.h +17 -0
  293. data/mpg123/src/module.c +306 -0
  294. data/mpg123/src/module.h +48 -0
  295. data/mpg123/src/mpg123.c +1405 -0
  296. data/mpg123/src/mpg123app.h +171 -0
  297. data/mpg123/src/output/Makefile.am +213 -0
  298. data/mpg123/src/output/Makefile.in +1238 -0
  299. data/mpg123/src/output/aix.c +300 -0
  300. data/mpg123/src/output/alib.c +209 -0
  301. data/mpg123/src/output/alsa.c +297 -0
  302. data/mpg123/src/output/arts.c +117 -0
  303. data/mpg123/src/output/coreaudio.c +370 -0
  304. data/mpg123/src/output/dummy.c +78 -0
  305. data/mpg123/src/output/esd.c +167 -0
  306. data/mpg123/src/output/hp.c +184 -0
  307. data/mpg123/src/output/jack.c +450 -0
  308. data/mpg123/src/output/mint.c +197 -0
  309. data/mpg123/src/output/nas.c +335 -0
  310. data/mpg123/src/output/openal.c +197 -0
  311. data/mpg123/src/output/os2.c +665 -0
  312. data/mpg123/src/output/oss.c +319 -0
  313. data/mpg123/src/output/portaudio.c +255 -0
  314. data/mpg123/src/output/pulse.c +164 -0
  315. data/mpg123/src/output/sdl.c +206 -0
  316. data/mpg123/src/output/sgi.c +213 -0
  317. data/mpg123/src/output/sndio.c +161 -0
  318. data/mpg123/src/output/sun.c +281 -0
  319. data/mpg123/src/output/win32.c +229 -0
  320. data/mpg123/src/playlist.c +596 -0
  321. data/mpg123/src/playlist.h +52 -0
  322. data/mpg123/src/resolver.c +319 -0
  323. data/mpg123/src/resolver.h +25 -0
  324. data/mpg123/src/sfifo.c +146 -0
  325. data/mpg123/src/sfifo.h +95 -0
  326. data/mpg123/src/streamdump.c +74 -0
  327. data/mpg123/src/streamdump.h +20 -0
  328. data/mpg123/src/term.c +479 -0
  329. data/mpg123/src/term.h +81 -0
  330. data/mpg123/src/tests/noise.c +52 -0
  331. data/mpg123/src/tests/plain_id3.c +109 -0
  332. data/mpg123/src/tests/seek_accuracy.c +261 -0
  333. data/mpg123/src/tests/seek_whence.c +56 -0
  334. data/mpg123/src/tests/testtext.h +34 -0
  335. data/mpg123/src/tests/text.c +80 -0
  336. data/mpg123/src/wav.c +464 -0
  337. data/mpg123/src/wavhead.h +68 -0
  338. data/mpg123/src/win32_net.c +599 -0
  339. data/mpg123/src/win32_support.c +191 -0
  340. data/mpg123/src/win32_support.h +152 -0
  341. data/mpg123/src/xfermem.c +321 -0
  342. data/mpg123/src/xfermem.h +74 -0
  343. data/mpg123/windows-builds.sh +137 -0
  344. data/msvc/lib/OpenAL32.lib +0 -0
  345. data/spec/fixtures/heal.ogg +0 -0
  346. data/spec/fixtures/tone_up.wav +0 -0
  347. data/spec/seal/buffer_spec.rb +37 -0
  348. data/spec/seal/core_spec.rb +29 -0
  349. data/spec/seal/effect_slot_spec.rb +38 -0
  350. data/spec/seal/listener_spec.rb +33 -0
  351. data/spec/seal/reverb_spec.rb +51 -0
  352. data/spec/seal/source_spec.rb +370 -0
  353. data/spec/seal/stream_spec.rb +38 -0
  354. data/spec/spec_helper.rb +45 -0
  355. data/spec/support/attribute_examples.rb +75 -0
  356. data/spec/support/audio_object_with_format.rb +27 -0
  357. data/spec/support/movable_object.rb +22 -0
  358. data/src/libogg/bitwise.c +857 -0
  359. data/src/libogg/framing.c +2093 -0
  360. data/src/libvorbis/backends.h +144 -0
  361. data/src/libvorbis/bitrate.c +253 -0
  362. data/src/libvorbis/bitrate.h +59 -0
  363. data/src/libvorbis/block.c +1046 -0
  364. data/src/libvorbis/codebook.c +484 -0
  365. data/src/libvorbis/codebook.h +119 -0
  366. data/src/libvorbis/codec_internal.h +167 -0
  367. data/src/libvorbis/envelope.c +375 -0
  368. data/src/libvorbis/envelope.h +80 -0
  369. data/src/libvorbis/floor0.c +221 -0
  370. data/src/libvorbis/floor1.c +1100 -0
  371. data/src/libvorbis/highlevel.h +58 -0
  372. data/src/libvorbis/info.c +668 -0
  373. data/src/libvorbis/lookup.c +94 -0
  374. data/src/libvorbis/lookup.h +32 -0
  375. data/src/libvorbis/lookup_data.h +192 -0
  376. data/src/libvorbis/lpc.c +160 -0
  377. data/src/libvorbis/lpc.h +29 -0
  378. data/src/libvorbis/lsp.c +456 -0
  379. data/src/libvorbis/lsp.h +28 -0
  380. data/src/libvorbis/mapping0.c +816 -0
  381. data/src/libvorbis/masking.h +785 -0
  382. data/src/libvorbis/mdct.c +563 -0
  383. data/src/libvorbis/mdct.h +71 -0
  384. data/src/libvorbis/misc.h +57 -0
  385. data/src/libvorbis/os.h +186 -0
  386. data/src/libvorbis/psy.c +1206 -0
  387. data/src/libvorbis/psy.h +154 -0
  388. data/src/libvorbis/registry.c +45 -0
  389. data/src/libvorbis/registry.h +32 -0
  390. data/src/libvorbis/res0.c +889 -0
  391. data/src/libvorbis/scales.h +90 -0
  392. data/src/libvorbis/sharedbook.c +579 -0
  393. data/src/libvorbis/smallft.c +1255 -0
  394. data/src/libvorbis/smallft.h +34 -0
  395. data/src/libvorbis/synthesis.c +184 -0
  396. data/src/libvorbis/vorbisfile.c +2337 -0
  397. data/src/libvorbis/window.c +2135 -0
  398. data/src/libvorbis/window.h +26 -0
  399. data/src/rubyext.c +2329 -0
  400. data/src/seal/buf.c +124 -0
  401. data/src/seal/core.c +283 -0
  402. data/src/seal/efs.c +74 -0
  403. data/src/seal/err.c +118 -0
  404. data/src/seal/fmt.c +86 -0
  405. data/src/seal/listener.c +111 -0
  406. data/src/seal/mpg.c +174 -0
  407. data/src/seal/mpg.h +24 -0
  408. data/src/seal/ov.c +180 -0
  409. data/src/seal/ov.h +22 -0
  410. data/src/seal/raw.c +59 -0
  411. data/src/seal/reader.c +102 -0
  412. data/src/seal/reader.h +59 -0
  413. data/src/seal/rvb.c +368 -0
  414. data/src/seal/src.c +654 -0
  415. data/src/seal/stream.c +109 -0
  416. data/src/seal/threading.c +66 -0
  417. data/src/seal/threading.h +20 -0
  418. data/src/seal/wav.c +297 -0
  419. data/src/seal/wav.h +23 -0
  420. data/src/win32api.rb +29 -0
  421. metadata +563 -0
@@ -0,0 +1,86 @@
1
+ /*
2
+ * raw.h is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ *
6
+ * raw.h defines the the data structure `seal_raw_t' that represents raw PCM
7
+ * data as well as a series of operations on them.
8
+ */
9
+
10
+ #ifndef _SEAL_RAW_H_
11
+ #define _SEAL_RAW_H_
12
+
13
+ #include <stddef.h>
14
+ #include "err.h"
15
+
16
+ /* Raw PCM data. */
17
+ typedef struct seal_raw_t seal_raw_t;
18
+ /* Raw PCM attribute. */
19
+ typedef struct seal_raw_attr_t seal_raw_attr_t;
20
+
21
+ /*
22
+ * bit_depth bits per sample
23
+ * nchannels number of channels
24
+ * freq frequency or sample rate
25
+ */
26
+ struct seal_raw_attr_t
27
+ {
28
+ int bit_depth;
29
+ int nchannels;
30
+ int freq;
31
+ };
32
+
33
+ /*
34
+ * data the raw PCM data
35
+ * size receives the size of the data
36
+ */
37
+ struct seal_raw_t
38
+ {
39
+ void* data;
40
+ size_t size;
41
+ seal_raw_attr_t attr;
42
+ };
43
+
44
+ #define SEAL_RAW_ATTR_INIT_LST { 0, 0, 0 }
45
+ #define SEAL_RAW_INIT_LST { 0, 0, SEAL_RAW_ATTR_INIT_LST }
46
+
47
+ #ifdef __cplusplus
48
+ extern "C" {
49
+ #endif
50
+
51
+ /*
52
+ * Allocates the memory pointed by `raw->data'.
53
+ *
54
+ * @param raw the raw structure with the `data' field to allocate
55
+ * @param size the size of the memory to allocate
56
+ */
57
+ seal_err_t seal_alloc_raw_data(seal_raw_t*, size_t);
58
+
59
+ /*
60
+ * Deallocates the memory pointed by `raw->data'.
61
+ *
62
+ * @param raw the raw structure with the `data' field to deallocate
63
+ */
64
+ void seal_free_raw_data(seal_raw_t*);
65
+
66
+ /*
67
+ * Extends the size of the memory pointed by `raw->data'.
68
+ *
69
+ * @param raw the raw structure with the `data' field to extend
70
+ */
71
+ seal_err_t seal_extend_raw_data(seal_raw_t*);
72
+
73
+ /*
74
+ * Ensures the size of the memory pointed by `raw->data' is larger than `size'
75
+ * and extends the memory if necessary.
76
+ *
77
+ * @param raw the raw structure with the `data' field to ensure
78
+ * @param size the size to ensure `raw->data' to have
79
+ */
80
+ seal_err_t seal_ensure_raw_data_size(seal_raw_t*, size_t);
81
+
82
+ #ifdef __cplusplus
83
+ }
84
+ #endif
85
+
86
+ #endif /* _SEAL_RAW_H_ */
@@ -0,0 +1,520 @@
1
+ /*
2
+ * rvb.h is part of the Scorched End Audio Library (SEAL) and is licensed
3
+ * under the terms of the GNU Lesser General Public License. See COPYING
4
+ * attached with the library.
5
+ *
6
+ * rvb.h defines the reverberation effect type and its parameters. Effect
7
+ * objects can be put into an effect slot for sources to use.
8
+ */
9
+
10
+ #ifndef _SEAL_RVB_H_
11
+ #define _SEAL_RVB_H_
12
+
13
+ #include "err.h"
14
+
15
+ enum seal_rvb_preset_t
16
+ {
17
+ /* Default presets. */
18
+ SEAL_GENERIC_REVERB,
19
+ SEAL_PADDEDCELL_REVERB,
20
+ SEAL_ROOM_REVERB,
21
+ SEAL_BATHROOM_REVERB,
22
+ SEAL_LIVINGROOM_REVERB,
23
+ SEAL_STONEROOM_REVERB,
24
+ SEAL_AUDITORIUM_REVERB,
25
+ SEAL_CONCERTHALL_REVERB,
26
+ SEAL_CAVE_REVERB,
27
+ SEAL_ARENA_REVERB,
28
+ SEAL_HANGAR_REVERB,
29
+ SEAL_CARPETEDHALLWAY_REVERB,
30
+ SEAL_HALLWAY_REVERB,
31
+ SEAL_STONECORRIDOR_REVERB,
32
+ SEAL_ALLEY_REVERB,
33
+ SEAL_FOREST_REVERB,
34
+ SEAL_CITY_REVERB,
35
+ SEAL_MOUNTAINS_REVERB,
36
+ SEAL_QUARRY_REVERB,
37
+ SEAL_PLAIN_REVERB,
38
+ SEAL_PARKINGLOT_REVERB,
39
+ SEAL_SEWERPIPE_REVERB,
40
+ SEAL_UNDERWATER_REVERB,
41
+ SEAL_DRUGGED_REVERB,
42
+ SEAL_DIZZY_REVERB,
43
+ SEAL_PSYCHOTIC_REVERB,
44
+
45
+ /* Castle presets. */
46
+ SEAL_CASTLE_SMALLROOM_REVERB,
47
+ SEAL_CASTLE_SHORTPASSAGE_REVERB,
48
+ SEAL_CASTLE_MEDIUMROOM_REVERB,
49
+ SEAL_CASTLE_LARGEROOM_REVERB,
50
+ SEAL_CASTLE_LONGPASSAGE_REVERB,
51
+ SEAL_CASTLE_HALL_REVERB,
52
+ SEAL_CASTLE_CUPBOARD_REVERB,
53
+ SEAL_CASTLE_COURTYARD_REVERB,
54
+ SEAL_CASTLE_ALCOVE_REVERB,
55
+
56
+ /* Factory presets. */
57
+ SEAL_FACTORY_SMALLROOM_REVERB,
58
+ SEAL_FACTORY_SHORTPASSAGE_REVERB,
59
+ SEAL_FACTORY_MEDIUMROOM_REVERB,
60
+ SEAL_FACTORY_LARGEROOM_REVERB,
61
+ SEAL_FACTORY_LONGPASSAGE_REVERB,
62
+ SEAL_FACTORY_HALL_REVERB,
63
+ SEAL_FACTORY_CUPBOARD_REVERB,
64
+ SEAL_FACTORY_COURTYARD_REVERB,
65
+ SEAL_FACTORY_ALCOVE_REVERB,
66
+
67
+ /* Ice palace presets. */
68
+ SEAL_ICEPALACE_SMALLROOM_REVERB,
69
+ SEAL_ICEPALACE_SHORTPASSAGE_REVERB,
70
+ SEAL_ICEPALACE_MEDIUMROOM_REVERB,
71
+ SEAL_ICEPALACE_LARGEROOM_REVERB,
72
+ SEAL_ICEPALACE_LONGPASSAGE_REVERB,
73
+ SEAL_ICEPALACE_HALL_REVERB,
74
+ SEAL_ICEPALACE_CUPBOARD_REVERB,
75
+ SEAL_ICEPALACE_COURTYARD_REVERB,
76
+ SEAL_ICEPALACE_ALCOVE_REVERB,
77
+
78
+ /* Space station presets. */
79
+ SEAL_SPACESTATION_SMALLROOM_REVERB,
80
+ SEAL_SPACESTATION_SHORTPASSAGE_REVERB,
81
+ SEAL_SPACESTATION_MEDIUMROOM_REVERB,
82
+ SEAL_SPACESTATION_LARGEROOM_REVERB,
83
+ SEAL_SPACESTATION_LONGPASSAGE_REVERB,
84
+ SEAL_SPACESTATION_HALL_REVERB,
85
+ SEAL_SPACESTATION_CUPBOARD_REVERB,
86
+ SEAL_SPACESTATION_ALCOVE_REVERB,
87
+
88
+ /* Wooden galleon presets. */
89
+ SEAL_WOODEN_SMALLROOM_REVERB,
90
+ SEAL_WOODEN_SHORTPASSAGE_REVERB,
91
+ SEAL_WOODEN_MEDIUMROOM_REVERB,
92
+ SEAL_WOODEN_LARGEROOM_REVERB,
93
+ SEAL_WOODEN_LONGPASSAGE_REVERB,
94
+ SEAL_WOODEN_HALL_REVERB,
95
+ SEAL_WOODEN_CUPBOARD_REVERB,
96
+ SEAL_WOODEN_COURTYARD_REVERB,
97
+ SEAL_WOODEN_ALCOVE_REVERB,
98
+
99
+ /* Sports presets. */
100
+ SEAL_SPORT_EMPTYSTADIUM_REVERB,
101
+ SEAL_SPORT_SQUASHCOURT_REVERB,
102
+ SEAL_SPORT_SMALLSWIMMINGPOOL_REVERB,
103
+ SEAL_SPORT_LARGESWIMMINGPOOL_REVERB,
104
+ SEAL_SPORT_GYMNASIUM_REVERB,
105
+ SEAL_SPORT_FULLSTADIUM_REVERB,
106
+ SEAL_SPORT_STADIUMTANNOY_REVERB,
107
+
108
+ /* Prefab presets. */
109
+ SEAL_PREFAB_WORKSHOP_REVERB,
110
+ SEAL_PREFAB_SCHOOLROOM_REVERB,
111
+ SEAL_PREFAB_PRACTISEROOM_REVERB,
112
+ SEAL_PREFAB_OUTHOUSE_REVERB,
113
+ SEAL_PREFAB_CARAVAN_REVERB,
114
+
115
+ /* Dome presets. */
116
+ SEAL_DOME_TOMB_REVERB,
117
+ SEAL_DOME_SAINTPAULS_REVERB,
118
+
119
+ /* Pipe presets. */
120
+ SEAL_PIPE_SMALL_REVERB,
121
+ SEAL_PIPE_LONGTHIN_REVERB,
122
+ SEAL_PIPE_LARGE_REVERB,
123
+ SEAL_PIPE_RESONANT_REVERB,
124
+
125
+ /* Outdoors presets. */
126
+ SEAL_OUTDOORS_BACKYARD_REVERB,
127
+ SEAL_OUTDOORS_ROLLINGPLAINS_REVERB,
128
+ SEAL_OUTDOORS_DEEPCANYON_REVERB,
129
+ SEAL_OUTDOORS_CREEK_REVERB,
130
+ SEAL_OUTDOORS_VALLEY_REVERB,
131
+
132
+ /* Mood presets. */
133
+ SEAL_MOOD_HEAVEN_REVERB,
134
+ SEAL_MOOD_HELL_REVERB,
135
+ SEAL_MOOD_MEMORY_REVERB,
136
+
137
+ /* Driving presets. */
138
+ SEAL_DRIVING_COMMENTATOR_REVERB,
139
+ SEAL_DRIVING_PITGARAGE_REVERB,
140
+ SEAL_DRIVING_INCAR_RACER_REVERB,
141
+ SEAL_DRIVING_INCAR_SPORTS_REVERB,
142
+ SEAL_DRIVING_INCAR_LUXURY_REVERB,
143
+ SEAL_DRIVING_FULLGRANDSTAND_REVERB,
144
+ SEAL_DRIVING_EMPTYGRANDSTAND_REVERB,
145
+ SEAL_DRIVING_TUNNEL_REVERB,
146
+
147
+ /* City presets. */
148
+ SEAL_CITY_STREETS_REVERB,
149
+ SEAL_CITY_SUBWAY_REVERB,
150
+ SEAL_CITY_MUSEUM_REVERB,
151
+ SEAL_CITY_LIBRARY_REVERB,
152
+ SEAL_CITY_UNDERPASS_REVERB,
153
+ SEAL_CITY_ABANDONED_REVERB,
154
+
155
+ /* Misc. presets. */
156
+ SEAL_DUSTYROOM_REVERB,
157
+ SEAL_CHAPEL_REVERB,
158
+ SEAL_SMALLWATERROOM_REVERB
159
+ };
160
+
161
+ typedef struct seal_rvb_t seal_rvb_t;
162
+ typedef enum seal_rvb_preset_t seal_rvb_preset_t;
163
+
164
+ #ifdef __cplusplus
165
+ extern "C" {
166
+ #endif
167
+
168
+ /*
169
+ * Initializes a new reverb effect. If the reverb is no longer needed, call
170
+ * `seal_destroy_rvb' to release the resources used by the reverb.
171
+ *
172
+ * @param reverb the reverb object to initialize
173
+ */
174
+ seal_err_t seal_init_rvb(seal_rvb_t*);
175
+
176
+ /*
177
+ * Destroys a reverb effect.
178
+ *
179
+ * @param reverb the reverb to destroy
180
+ */
181
+ seal_err_t seal_destroy_rvb(seal_rvb_t*);
182
+
183
+ /*
184
+ * Loads the specified reverb paramter preset into a reverb object.
185
+ *
186
+ * @param reverb the reverb to load the preset into
187
+ * @param preset the preset to load
188
+ */
189
+ seal_err_t seal_load_rvb(seal_rvb_t*, seal_rvb_preset_t);
190
+
191
+ /*
192
+ * Sets the modal density of a reverb in the interval [0.0f, 1.0f]. The
193
+ * density controls the coloration of the late reverb. The Lower the value,
194
+ * the more coloration.
195
+ *
196
+ * @param reverb the reverb to set the density of
197
+ * @param density the density
198
+ */
199
+ seal_err_t seal_set_rvb_density(seal_rvb_t*, float /*density*/);
200
+
201
+ /*
202
+ * Sets the diffusion of a reverb in the interval [0.0f, 1.0f]. The diffusion
203
+ * controls the echo density in the reverberation decay. Reducing diffusion
204
+ * gives the reverberation a more "grainy" character that is especially
205
+ * noticeable with percussive sound sources. If you set a diffusion value of
206
+ * 0.0f, the later reverberation sounds like a succession of distinct echoes.
207
+ *
208
+ * @param reverb the reverb to set the diffusion of
209
+ * @param diffusion the diffusion
210
+ */
211
+ seal_err_t seal_set_rvb_diffusion(seal_rvb_t*, float /*diffusion*/);
212
+
213
+ /*
214
+ * Sets the gain of a reverb in the interval [0.0f, 1.0f], or from -100 dB (no
215
+ * reflected sound at all) to 0 dB (the maximum amount). The gain is the
216
+ * master volume control for the reflected sound (both early reflections and
217
+ * reverberation) that the reverb effect adds to all sources. It sets the
218
+ * maximum amount of reflections and reverberation added to the final sound
219
+ * mix.
220
+ *
221
+ * @param reverb the reverb to set the gain of
222
+ * @param gain the gain
223
+ */
224
+ seal_err_t seal_set_rvb_gain(seal_rvb_t*, float /*gain*/);
225
+
226
+ /*
227
+ * Sets the high-frequency gain of a reverb in the interval [0.0f, 1.0f], or
228
+ * from -100 dB (virtually no reflected sound) to 0 dB (no filter). The high-
229
+ * frequency gain further tweaks reflected sound by attenuating it at high
230
+ * frequencies. It controls a low-pass filter that applies globally to the
231
+ * reflected sound of all sound sources feeding the particular instance of the
232
+ * reverb effect.
233
+ *
234
+ * @param reverb the reverb to set the high-frequency gain of
235
+ * @param hfgain the high-frequency gain
236
+ */
237
+ seal_err_t seal_set_rvb_hfgain(seal_rvb_t*, float /*hfgain*/);
238
+
239
+ /*
240
+ * Sets the decay time of a reverb in the interval [0.1f, 20.0f], typically
241
+ * from a small room with very dead surfaces to a large room with very live
242
+ * surfaces.
243
+ *
244
+ * @param reverb the reverb to set the decay time of
245
+ * @param time the decay time
246
+ */
247
+ seal_err_t seal_set_rvb_decay_time(seal_rvb_t*, float /*time*/);
248
+
249
+ /*
250
+ * Sets the high-frequency decay ratio, or the spectral quality of the decay
251
+ * time of a reverb in the interval [0.1, 20.0]. It is the ratio of high-
252
+ * frequency decay time relative to the time set by decay Time. 1.0 means
253
+ * neutral: the decay time is equal for all frequencies. As this value
254
+ * increases above 1.0, the high-frequency decay time increases so it's longer
255
+ * than the decay time at low frequencies. You hear a more brilliant
256
+ * reverberation with a longer decay at high frequencies. As this value
257
+ * decreases below 1.0, the high-frequency decay time decreases so it's
258
+ * shorter than the decay time of the low frequencies. You hear a more natural
259
+ * reverberation.
260
+ *
261
+ * @param reverb the reverb to set the decay high-frequency ratio of
262
+ * @param ratio the decay high-frequency ratio
263
+ */
264
+ seal_err_t seal_set_rvb_hfdecay_ratio(seal_rvb_t*, float /*ratio*/);
265
+
266
+ /*
267
+ * Sets the reflections gain, or the overall amount of initial reflections
268
+ * relative to the gain of a reverb in the interval [0.0f, 3.16f], or from
269
+ * -100 dB (no initial reflections at all) to 10 dB. The reflections gain is
270
+ * corrected by the value of the gain property and does not affect the
271
+ * subsequent reverberation decay.
272
+ *
273
+ * You can increase the amount of initial reflections to simulate a more
274
+ * narrow space or closer walls, especially effective if you associate the
275
+ * initial reflections increase with a reduction in reflections delays by
276
+ * lowering the value of the reflection delay property. To simulate open or
277
+ * semi-open environments, you can maintain the amount of early reflections
278
+ * while reducing the value of the late gain property, which controls later
279
+ * reflections.
280
+ *
281
+ * @param reverb the reverb to set the reflections gain of
282
+ * @param gain the reflections gain
283
+ */
284
+ seal_err_t seal_set_rvb_reflections_gain(seal_rvb_t*, float /*gain*/);
285
+
286
+ /*
287
+ * Sets the reflections delay of a reverb in the interval [0.0f, 0.3f] (in
288
+ * seconds). It is the amount of delay between the arrival time of the direct
289
+ * path from the source to the first reflection from the source. You can
290
+ * reduce or increase this delay to simulate closer or more distant reflective
291
+ * surfaces and therefore control the perceived size of the room.
292
+ *
293
+ * @param reverb the reverb to set the reflections delay of
294
+ * @param delay the reflections delay
295
+ */
296
+ seal_err_t seal_set_rvb_reflections_delay(seal_rvb_t*, float /*delay*/);
297
+
298
+ /*
299
+ * Sets the late gain, or the overall amount of later reverberation relative
300
+ * to the gain of a reverb in the interval [0.0f, 10.0f], or from -100 dB (no
301
+ * late reverberation at all) to 20 dB.
302
+ *
303
+ * Note that late gain and decay time are independent properties: if you
304
+ * adjust decay time without changing late gain, the total intensity (the
305
+ * averaged square of the amplitude) of the late reverberation remains
306
+ * constant.
307
+ *
308
+ * @param reverb the reverb to set the late gain of
309
+ * @param gain the late gain
310
+ */
311
+ seal_err_t seal_set_rvb_late_gain(seal_rvb_t*, float /*gain*/);
312
+
313
+ /*
314
+ * Sets the late delay of a reverb in the interval [0.0f, 0.1f] (in second)
315
+ * It defines the begin time of the late reverberation relative to the time of
316
+ * the initial reflection (the first of the early reflections). Reducing or
317
+ * increasing late delay is useful for simulating a smaller or larger room.
318
+ *
319
+ * @param reverb the reverb to set the late delay of
320
+ * @param delay the late delay
321
+ */
322
+ seal_err_t seal_set_rvb_late_delay(seal_rvb_t*, float /*delay*/);
323
+
324
+ /*
325
+ * Sets the air absorption high-frequency gain of a reverb in the interval
326
+ * [0.892f, 1.0f]. It controls the distance-dependent attenuation at high
327
+ * frequencies caused by the propagation medium. It applies to reflected sound
328
+ * only. You can use this value to simulate sound transmission through foggy
329
+ * air, dry air, smoky atmosphere, and so on. The default value 0.994
330
+ * (-0.05 dB) per meter, which roughly corresponds to typical condition of
331
+ * atmospheric humidity, temperature, and so on. Lowering the value simulates
332
+ * a more absorbent medium (more humidity in the air, for example); raising
333
+ * the value simulates a less absorbent medium (dry desert air, for example).
334
+ *
335
+ * @param reverb the reverb to set the air absorption gain of
336
+ * @param gain the air absorption high-frequency gain
337
+ */
338
+ seal_err_t seal_set_rvb_air_absorbtion_hfgain(seal_rvb_t*, float /*hfgain*/);
339
+
340
+ /*
341
+ * Sets the room rolloff factor of a reverb in the interval [0.0f, 10.0f]. It
342
+ * is one of two methods available to attenuate the reflected sound
343
+ * (containing both reflections and reverberation) according to source-
344
+ * listener distance. It is defined the same way as the global rolloff factor,
345
+ * but operates on reverb sound instead of direct-path sound. Setting the room
346
+ * rolloff factor value to 1.0 specifies that the reflected sound will decay
347
+ * by 6 dB every time the distance doubles. Any value other than 1.0 is
348
+ * equivalent to a scaling factor applied to the quantity specified by
349
+ * ((Source listener distance) - (Reference Distance)). Reference Distance is
350
+ * an OpenAL source parameter that specifies the inner border for distance
351
+ * rolloff effects: if the source comes closer to the listener than the
352
+ * reference distance, the direct-path sound isn't increased as the source
353
+ * comes closer to the listener, and neither is the reflected sound.
354
+ *
355
+ * The default value of Room Rolloff Factor is 0.0 because, by default, the
356
+ * reverb effect naturally manages the reflected sound level automatically for
357
+ * each sound source to simulate the natural rolloff of reflected sound vs.
358
+ * distance in typical rooms. (Note that this isn't the case if the source
359
+ * property @TODO is set to false.) You can use this value as an option to
360
+ * automatic control so you can exaggerate or replace the default
361
+ * automatically-controlled rolloff.
362
+ *
363
+ * @param reverb the reverb to set the room rolloff factor of
364
+ * @param factor the room rolloff factor
365
+ */
366
+ seal_err_t seal_set_rvb_room_rolloff_factor(seal_rvb_t*, float /*factor*/);
367
+
368
+ /*
369
+ * Sets whether the high-frequency decay time automatically stays below a
370
+ * limit value that's derived from the setting of the air absorption high-
371
+ * frequency gain. This limit applies regardless of the setting of the
372
+ * decay high-frequency ratio, and the limit doesn't affect the value of decay
373
+ * high-frequency ratio. This limit, when on, maintains a natural sounding
374
+ * reverberation decay by allowing you to increase the value of decay time
375
+ * without the risk of getting an unnaturally long decay time at high
376
+ * frequencies. If this flag is set to false, high-frequency decay time isn't
377
+ * automatically limited.
378
+ *
379
+ * @param reverb the reverb to set the high-frequency decay limit flag of
380
+ * @param limited 1 to set it limited or otherwise 0
381
+ */
382
+ seal_err_t seal_set_rvb_hfdecay_limited(seal_rvb_t*, char /*limited*/);
383
+
384
+ /*
385
+ * Gets the density of a reverb. The default is 1.0f.
386
+ *
387
+ * @see seal_set_rvb_density
388
+ * @param reverb the source to get the density of
389
+ * @param pdensity the receiver of the density
390
+ */
391
+ seal_err_t seal_get_rvb_density(seal_rvb_t*, float* /*pdensity*/);
392
+
393
+ /*
394
+ * Gets the diffusion of a reverb. The default is 1.0f.
395
+ *
396
+ * @see seal_set_rvb_diffusion
397
+ * @param reverb the source to get the diffusion of
398
+ * @param pdiffusion the receiver of diffusion
399
+ */
400
+ seal_err_t seal_get_rvb_diffusion(seal_rvb_t*, float* /*pdiffusion*/);
401
+
402
+ /*
403
+ * Gets the gain of a reverb. The default is 0.32f.
404
+ *
405
+ * @see seal_set_rvb_gain
406
+ * @param reverb the source to get the gain of
407
+ * @param pgain the receiver of the gain
408
+ */
409
+ seal_err_t seal_get_rvb_gain(seal_rvb_t*, float* /*pgain*/);
410
+
411
+ /*
412
+ * Gets the high-frequency gain of a reverb. The default is 0.89f.
413
+ *
414
+ * @see seal_set_rvb_hfgain
415
+ * @param reverb the source to get the high-frequency gain of
416
+ * @param phfgain the receiver of the high-frequency gain
417
+ */
418
+ seal_err_t seal_get_rvb_hfgain(seal_rvb_t*, float* /*phfgain*/);
419
+
420
+ /*
421
+ * Gets the decay time of a reverb. The default is 1.49f.
422
+ *
423
+ * @see seal_set_rvb_decay_time
424
+ * @param reverb the source to get the decay time of
425
+ * @param ptime the receiver of the decay time
426
+ */
427
+ seal_err_t seal_get_rvb_decay_time(seal_rvb_t*, float* /*ptime*/);
428
+
429
+ /*
430
+ * Gets the high-frequency decay ratio of a reverb. The default is 0.83f.
431
+ *
432
+ * @see seal_set_rvb_hfdecay_ratio
433
+ * @param reverb the source to get the high-frequency decay time of
434
+ * @param pratio the receiver of the high-frequency decay ratio
435
+ */
436
+ seal_err_t seal_get_rvb_hfdecay_ratio(seal_rvb_t*, float* /*pratio*/);
437
+
438
+ /*
439
+ * Gets the reflections gain of a reverb. The default is 0.05f.
440
+ *
441
+ * @see seal_set_rvb_reflections_gain
442
+ * @param reverb the source to get the reflections gain of
443
+ * @param pgain the receiver of the reflections gain
444
+ */
445
+ seal_err_t seal_get_rvb_reflections_gain(seal_rvb_t*, float* /*pgain*/);
446
+
447
+ /*
448
+ * Gets the reflections delay of a reverb. The default is 0.007f.
449
+ *
450
+ * @see seal_set_rvb_reflections_delay
451
+ * @param reverb the source to get the reflections delay of
452
+ * @param pdelay the receiver of the reflections delay
453
+ */
454
+ seal_err_t seal_get_rvb_reflections_delay(seal_rvb_t*, float* /*pdelay*/);
455
+
456
+ /*
457
+ * Gets the late gain of a reverb. The default is 1.26f.
458
+ *
459
+ * @see seal_set_rvb_late_gain
460
+ * @param reverb the source to get the late gain of
461
+ * @param pgain the receiver of the late gain
462
+ */
463
+ seal_err_t seal_get_rvb_late_gain(seal_rvb_t*, float* /*pgain*/);
464
+
465
+ /*
466
+ * Gets the late delay of a reverb. The default is 0.011f.
467
+ *
468
+ * @see seal_set_rvb_late_delay
469
+ * @param reverb the source to get the late delay of
470
+ * @param pdelay the receiver of the late delay
471
+ */
472
+ seal_err_t seal_get_rvb_late_delay(seal_rvb_t*, float* /*pdelay*/);
473
+
474
+ /*
475
+ * Gets the air absorbtion high-frequency gain of a reverb. The default is
476
+ * 0.994f.
477
+ *
478
+ * @see seal_set_rvb_air_absorbtion_hfgain
479
+ * @param reverb the source to get the gain of
480
+ * @param phfgain the receiver of the air absorbtion high-frequency gain
481
+ */
482
+ seal_err_t seal_get_rvb_air_absorbtion_hfgain(seal_rvb_t*,
483
+ float* /*phfgain*/);
484
+
485
+ /*
486
+ * Gets the room rolloff factor of a reverb. The default is 0.0f.
487
+ *
488
+ * @see seal_set_rvb_room_rolloff_factor
489
+ * @param reverb the source to get the factor of
490
+ * @param pfactor the receiver of the room rolloff factor
491
+ */
492
+ seal_err_t seal_get_rvb_room_rolloff_factor(seal_rvb_t*,
493
+ float* /*pfactor*/);
494
+
495
+ /*
496
+ * Determines if the high-frequency decay of a reverb is limited. The default
497
+ * is true (1).
498
+ *
499
+ * @see seal_set_rvb_hfdecay_limited
500
+ * @param reverb the source to get the limited flag of
501
+ * @param plimited the receiver of the limited flag
502
+ */
503
+ seal_err_t seal_is_rvb_hfdecay_limited(seal_rvb_t*, char* /*plimited*/);
504
+
505
+ #ifdef __cplusplus
506
+ }
507
+ #endif
508
+
509
+ /*
510
+ *****************************************************************************
511
+ * Below are **implementation details**.
512
+ *****************************************************************************
513
+ */
514
+
515
+ struct seal_rvb_t
516
+ {
517
+ unsigned int id;
518
+ };
519
+
520
+ #endif /* _SEAL_RVB_H_ */