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,95 @@
1
+ /*
2
+ * core.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
+ * core.h defines interfaces for low-level Seal operations.
7
+ */
8
+
9
+ #ifndef _SEAL_CORE_H_
10
+ #define _SEAL_CORE_H_
11
+
12
+ #include <stddef.h>
13
+ #include "err.h"
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ /*
20
+ * Initializes Seal by specifying the device name. This function is not
21
+ * re-entrant nor thread-safe and should be called only once per Seal session.
22
+ * Match a call to `seal_startup' with a call to `seal_cleanup' and never call
23
+ * `seal_starup' twice in a row.
24
+ *
25
+ * @param device_name the name of a device; 0 to use the default one
26
+ */
27
+ seal_err_t seal_startup(const char* /*device_name*/);
28
+
29
+ /* Uninitializes Seal and invalidate all Seal objects. Thread-unsafe. */
30
+ void seal_cleanup(void);
31
+
32
+ /*
33
+ * @return the maximum number of effect slots a source can feed concurrently.
34
+ */
35
+ int seal_get_per_src_effect_limit(void);
36
+
37
+ /*
38
+ * Gets the Seal version string.
39
+ *
40
+ * @return the version string
41
+ */
42
+ const char* seal_get_version(void);
43
+
44
+ #ifdef __cplusplus
45
+ }
46
+ #endif
47
+
48
+ /*
49
+ *****************************************************************************
50
+ * Below are **implementation details**.
51
+ *****************************************************************************
52
+ */
53
+
54
+ void _seal_sleep(unsigned int millisec);
55
+
56
+ /* Common types. */
57
+ typedef void _seal_openal_initializer_t(int, unsigned int*);
58
+ typedef void _seal_openal_destroyer_t(int, const unsigned int*);
59
+ typedef char _seal_openal_validator_t(unsigned int);
60
+ typedef void _seal_openal_setterf(unsigned int, int, float);
61
+ typedef void _seal_openal_getterf(unsigned int, int, float*);
62
+ typedef void _seal_openal_setteri(unsigned int, int, int);
63
+ typedef void _seal_openal_getteri(unsigned int, int, int*);
64
+
65
+ /* Common helpers. */
66
+ unsigned int _seal_openal_id(void*);
67
+ seal_err_t _seal_gen_objs(int, unsigned int*, _seal_openal_initializer_t*);
68
+ seal_err_t _seal_delete_objs(int, const unsigned int*,
69
+ _seal_openal_destroyer_t*);
70
+ seal_err_t _seal_init_obj(void*, _seal_openal_initializer_t*);
71
+ seal_err_t _seal_destroy_obj(void*, _seal_openal_destroyer_t*,
72
+ _seal_openal_validator_t*);
73
+ seal_err_t _seal_setf(void*, int, float, _seal_openal_setterf*);
74
+ seal_err_t _seal_getf(void*, int, float*, _seal_openal_getterf*);
75
+ seal_err_t _seal_seti(void*, int, int, _seal_openal_setteri*);
76
+ seal_err_t _seal_geti(void*, int, int*, _seal_openal_getteri*);
77
+ seal_err_t _seal_getb(void*, int, char*, _seal_openal_getteri*);
78
+
79
+ /* OpenAL effect extension functions. */
80
+ extern _seal_openal_initializer_t* alGenEffects;
81
+ extern _seal_openal_destroyer_t* alDeleteEffects;
82
+ extern _seal_openal_validator_t* alIsEffect;
83
+ extern _seal_openal_setterf* alEffectf;
84
+ extern void (*alEffecti)(unsigned int, int, int);
85
+ extern _seal_openal_getterf* alGetEffectf;
86
+ extern void (*alGetEffecti)(unsigned int, int, int*);
87
+ extern _seal_openal_initializer_t* alGenAuxiliaryEffectSlots;
88
+ extern _seal_openal_destroyer_t* alDeleteAuxiliaryEffectSlots;
89
+ extern _seal_openal_validator_t* alIsAuxiliaryEffectSlot;
90
+ extern void (*alAuxiliaryEffectSloti)(unsigned int, int, int);
91
+ extern void (*alAuxiliaryEffectSlotf)(unsigned int, int, float);
92
+ extern void (*alGetAuxiliaryEffectSloti)(unsigned int, int, int*);
93
+ extern void (*alGetAuxiliaryEffectSlotf)(unsigned int, int, float*);
94
+
95
+ #endif /* _SEAL_CORE_H_ */
@@ -0,0 +1,112 @@
1
+ /*
2
+ * efs.h is part of the Scorched End Audio Library (SEAL) and is
3
+ * licensed under the terms of the GNU Lesser General Public License. See
4
+ * COPYING attached with the library.
5
+ *
6
+ * efs.h defines the effect slot type, which is the container type for
7
+ * effects. A source can mix an effect in an effect slot to filter the output
8
+ * sound.
9
+ */
10
+
11
+ #ifndef _SEAL_EFS_H_
12
+ #define _SEAL_EFS_H_
13
+
14
+ #include "src.h"
15
+ #include "err.h"
16
+
17
+ typedef struct seal_efs_t seal_efs_t;
18
+
19
+ /*
20
+ * Initializes a new effect slot. If the effect slot is no longer needed, call
21
+ * `seal_destroy_efs' to release the resources used by the effect
22
+ * slot.
23
+ *
24
+ * @param efs the effect slot to initialize
25
+ */
26
+ seal_err_t seal_init_efs(seal_efs_t*);
27
+
28
+ /*
29
+ * Destroys an effect slot.
30
+ *
31
+ * @param efs the effect slot to destroy
32
+ */
33
+ seal_err_t seal_destroy_efs(seal_efs_t*);
34
+
35
+ /*
36
+ * Fills an effect slot with an effect object, then the effect Slot will
37
+ * become ready to be mixed with sources. Pass 0 to unfill the slot.
38
+ *
39
+ * @param efs the effect slot to fill
40
+ * @param effect the effect to fill the effect slot with
41
+ */
42
+ seal_err_t seal_set_efs_effect(seal_efs_t*, void* /*effect*/);
43
+
44
+ /*
45
+ * Mixes a sound effect loaded into an effect slot with a source's output.
46
+ * Later calls to this function with a different effect slot and the same
47
+ * index will override the old effect slot association.
48
+ *
49
+ * @see seal_get_neffects_per_src
50
+ * @param efs the slot that contains the effect to mix
51
+ * @param index the zero-based index of the effect
52
+ * @param src the source that feeds the effect slot
53
+ */
54
+ seal_err_t seal_feed_efs(seal_efs_t*, int /*index*/, seal_src_t*);
55
+
56
+ /*
57
+ * Sets the output level of an effect Slot in the interval [0.0f, 1.0f]. A
58
+ * value of 0.0 mutes the output.
59
+ *
60
+ * @param efs the effect slot to set the gain of
61
+ * @param gain the gain
62
+ */
63
+ seal_err_t seal_set_efs_gain(seal_efs_t*, float /*gain*/);
64
+
65
+ /*
66
+ * Sets whether the effect should have automatic adjustments based on the
67
+ * physical positions of the sources and the listener.
68
+ *
69
+ * @param efs the effect slot to set the auto adjust flag of
70
+ * @param automatic 1 to set it auto adjust or otherwise 0
71
+ */
72
+ seal_err_t seal_set_efs_auto(seal_efs_t*, char /*automatic*/);
73
+
74
+ /*
75
+ * Gets the effect object in an effect slot. The default is 0 (null pointer).
76
+ *
77
+ * @param efs the effect slot to get the effect object of
78
+ * @return the effect object
79
+ */
80
+ void* seal_get_efs_effect(seal_efs_t*);
81
+
82
+ /*
83
+ * Gets the output level of an effect Slot in the interval. The default is
84
+ * 1.0f.
85
+ *
86
+ * @param efs the effect slot to get the gain of
87
+ * @param pgain the receiver of the gain
88
+ */
89
+ seal_err_t seal_get_efs_gain(seal_efs_t*, float* /*pgain*/);
90
+
91
+ /*
92
+ * Determines if the effect is automatically adjusted. The default is true
93
+ * (nonzero).
94
+ *
95
+ * @param efs the effect slot to determine
96
+ * @param pauto the receiver of the auto adjust flag
97
+ */
98
+ seal_err_t seal_is_efs_auto(seal_efs_t*, char* /*pauto*/);
99
+
100
+ /*
101
+ *****************************************************************************
102
+ * Below are **implementation details**.
103
+ *****************************************************************************
104
+ */
105
+
106
+ struct seal_efs_t
107
+ {
108
+ unsigned int id;
109
+ void* effect;
110
+ };
111
+
112
+ #endif /* _SEAL_EFS_H_ */
@@ -0,0 +1,93 @@
1
+ /*
2
+ * err.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
+ * err.h defines Seal errors and provides subroutines for clearing and
7
+ * retriving errors. Seal functions will set a thread-local error flag when
8
+ * error strikes, so if the last Seal function call returns 0, the exact error
9
+ * and detailed error message can be retrieved using functions in this module.
10
+ */
11
+
12
+ #ifndef _SEAL_ERR_H_
13
+ #define _SEAL_ERR_H_
14
+
15
+ enum seal_err_t
16
+ {
17
+ SEAL_OK,
18
+
19
+ SEAL_BAD_OBJ,
20
+ SEAL_BAD_ENUM,
21
+ SEAL_BAD_VAL,
22
+ SEAL_BAD_OP,
23
+
24
+ SEAL_CANNOT_OPEN_DEVICE,
25
+ SEAL_NO_EFX,
26
+ SEAL_NO_EXT_FUNC,
27
+ SEAL_BAD_DEVICE,
28
+ SEAL_CANNOT_CREATE_CONTEXT,
29
+
30
+ SEAL_STREAM_UNOPENED,
31
+ SEAL_MIXING_STREAM_FMT,
32
+
33
+ SEAL_MIXING_SRC_TYPE,
34
+
35
+ SEAL_CANNOT_OPEN_FILE,
36
+ SEAL_BAD_AUDIO,
37
+
38
+ SEAL_CANNOT_ALLOC_MEM,
39
+
40
+ SEAL_BAD_PRESET,
41
+
42
+ SEAL_BAD_WAV_SUBTYPE,
43
+ SEAL_BAD_WAV_CHUNK,
44
+ SEAL_BAD_WAV_CHUNK_SIZE,
45
+ SEAL_ABSENT_WAV_CHUNK,
46
+ SEAL_BAD_WAV_BPS,
47
+ SEAL_BAD_WAV_NCHANNELS,
48
+ FILE_BAD_WAV_FREQ,
49
+ SEAL_CANNOT_REWIND_WAV,
50
+
51
+ SEAL_CANNOT_OPEN_OV,
52
+ SEAL_CANNOT_GET_OV_INFO,
53
+ SEAL_CANNOT_READ_OV,
54
+ SEAL_CANNOT_REWIND_OV,
55
+ SEAL_CANNOT_CLOSE_OV,
56
+
57
+ SEAL_CANNOT_INIT_MPG,
58
+ SEAL_CANNOT_GET_MPG_INFO,
59
+ SEAL_CANNOT_READ_MPG,
60
+ SEAL_CANNOT_REWIND_MPG,
61
+ SEAL_CANNOT_CLOSE_MPG,
62
+ };
63
+
64
+ typedef enum seal_err_t seal_err_t;
65
+
66
+ #ifdef __cplusplus
67
+ extern "C" {
68
+ #endif
69
+
70
+ /*
71
+ * Gets a Seal error message.
72
+ *
73
+ * @param err the error to get the message associated with
74
+ * @return the error message if there is any or otherwise 0
75
+ */
76
+ const char* seal_get_err_msg(seal_err_t);
77
+
78
+ #ifdef __cplusplus
79
+ }
80
+ #endif
81
+
82
+ /*
83
+ *****************************************************************************
84
+ * Below are **implementation details**.
85
+ *****************************************************************************
86
+ */
87
+
88
+ /*
89
+ * @return the OpenAL error as a Seal error
90
+ */
91
+ seal_err_t _seal_get_openal_err(void);
92
+
93
+ #endif /* _SEAL_ERR_H_ */
@@ -0,0 +1,58 @@
1
+ /*
2
+ * fmt.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
+ * fmt.h defines all the supported audio file format and provides utilities
7
+ * to deal with them.
8
+ */
9
+
10
+ #ifndef _SEAL_FMT_H_
11
+ #define _SEAL_FMT_H_
12
+
13
+ #include "err.h"
14
+
15
+ enum seal_fmt_t
16
+ {
17
+ SEAL_UNKNOWN_FMT,
18
+ SEAL_WAV_FMT,
19
+ SEAL_OV_FMT,
20
+ SEAL_MPG_FMT
21
+ };
22
+
23
+ /* Audio file formats. */
24
+ typedef enum seal_fmt_t seal_fmt_t;
25
+
26
+ #ifdef __cplusplus
27
+ extern "C" {
28
+ #endif
29
+
30
+ /*
31
+ * Tries to recognize an audio file's format by peeking its header. Use of
32
+ * this function is by no mean an accurate way to determine the exact encoding
33
+ * of the audio file; it only considers the format directly supported by Seal
34
+ * as if there are only these types of format in the world. Assumes `audio' is
35
+ * at the beginning.
36
+ *
37
+ * @param filename the filename of the audio
38
+ * @param pfmt the receiver of the format if recognized or otherwise
39
+ * `SEAL_UNKNOWN_FMT'
40
+ */
41
+ seal_err_t seal_recognize_fmt(const char* /*filename*/, seal_fmt_t* /*pfmt*/);
42
+
43
+ /*
44
+ * Ensures an audio format is known.
45
+ *
46
+ * @param filename the filename of the audio to check format of
47
+ * @param pfmt if `*pfmt' is not `SEAL_UNKNOWN_FMT' then do nothing;
48
+ * otherwise the file format is checked and `pfmt' receives
49
+ * the known format
50
+ */
51
+ seal_err_t seal_ensure_fmt_known(const char* /*filename*/,
52
+ seal_fmt_t* /*pfmt*/);
53
+
54
+ #ifdef __cplusplus
55
+ }
56
+ #endif
57
+
58
+ #endif /* _SEAL_FMT_H_ */
@@ -0,0 +1,103 @@
1
+ /*
2
+ * listener.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
+ * listener.h wraps up the listener singleton object, which is the abstract
7
+ * representation of the sole listener who hears the sound.
8
+ */
9
+
10
+ #ifndef _SEAL_LISTENER_H_
11
+ #define _SEAL_LISTENER_H_
12
+
13
+ #include "err.h"
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ /*
20
+ * Sets the master scalar amplitude multiplier of the listener which applies
21
+ * to all the sources. 1.0f means that the sound is unattenuated; 0.5f means
22
+ * an attenuation of 6 dB; 0.0f means silence.
23
+ *
24
+ * @param gain the scalar amplitude multiplier in the interval [0.0f, +inf.)
25
+ */
26
+ seal_err_t seal_set_listener_gain(float /*gain*/);
27
+
28
+ /*
29
+ * Sets the position of the listener in a right-handed Cartesian coordinate
30
+ * system. Use of NaN and infinity is undefined.
31
+ *
32
+ * @param x the x position to set
33
+ * @param y the y position to set
34
+ * @param z the z position to set
35
+ */
36
+ seal_err_t seal_set_listener_pos(float /*x*/, float /*y*/, float /*z*/);
37
+
38
+ /*
39
+ * Sets the velocity of the listener in a right-handed Cartesian coordinate
40
+ * system. The velocity of the listener does not affect its position but is a
41
+ * factor used during the Doppler effect emulation.
42
+ *
43
+ * @param x the x velocity to set
44
+ * @param y the y velocity to set
45
+ * @param z the z velocity to set
46
+ */
47
+ seal_err_t seal_set_listener_vel(float /*x*/, float /*y*/, float /*z*/);
48
+
49
+ /*
50
+ * Sets the orientation of the listener.
51
+ *
52
+ * @param orien a pair of 3-tuple consisting of an 'at' vector and an 'up'
53
+ * vector, where the 'at' vector represents the 'forward'
54
+ * direction of the listener and the 'up' vector represents the
55
+ * 'up' direction for the listener. These two vectors must be
56
+ * linearly independent, must not be NaN and must not be
57
+ * normalized. Otherwise, the operation is undefined
58
+ */
59
+ seal_err_t seal_set_listener_orien(float* /*orien*/);
60
+
61
+ /*
62
+ * Gets the gain of the listener. The default is 1.0f.
63
+ *
64
+ * @see seal_set_listener_gain
65
+ * @param pgain the receiver of the gain
66
+ */
67
+ seal_err_t seal_get_listener_gain(float* /*pgain*/);
68
+
69
+ /*
70
+ * Gets the position of the listener. The default is ( 0.0f, 0.0f, 0.0f ).
71
+ *
72
+ * @see seal_set_listener_pos
73
+ * @param px the receiver of the x position
74
+ * @param py the receiver of the y position
75
+ * @param pz the receiver of the z position
76
+ */
77
+ seal_err_t seal_get_listener_pos(float* /*px*/, float* /*py*/, float* /*pz*/);
78
+
79
+ /*
80
+ * Gets the velocity of the listener. The default is ( 0.0f, 0.0f, 0.0f ).
81
+ *
82
+ * @see seal_set_listener_vel
83
+ * @param px the receiver of the x velocity
84
+ * @param py the receiver of the y velocity
85
+ * @param pz the receiver of the z velocity
86
+ */
87
+ seal_err_t seal_get_listener_vel(float* /*px*/, float* /*py*/, float* /*pz*/);
88
+
89
+ /*
90
+ * Gets the orientation of the listener. The default is
91
+ * ( 0.0f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f ).
92
+ *
93
+ * @see seal_set_listener_orien
94
+ * @param orien the array of a pair of 3-tuple that receives the 'at' vector
95
+ * and the 'up' vector
96
+ */
97
+ seal_err_t seal_get_listener_orien(float* /*orien*/);
98
+
99
+ #ifdef __cplusplus
100
+ }
101
+ #endif
102
+
103
+ #endif /* _SEAL_LISTENER_H_ */