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,25 @@
1
+ #ifndef __CONFIG_TYPES_H__
2
+ #define __CONFIG_TYPES_H__
3
+
4
+ /* these are filled in by configure */
5
+ #define INCLUDE_INTTYPES_H 1
6
+ #define INCLUDE_STDINT_H 1
7
+ #define INCLUDE_SYS_TYPES_H 1
8
+
9
+ #if INCLUDE_INTTYPES_H
10
+ # include <inttypes.h>
11
+ #endif
12
+ #if INCLUDE_STDINT_H
13
+ # include <stdint.h>
14
+ #endif
15
+ #if INCLUDE_SYS_TYPES_H
16
+ # include <sys/types.h>
17
+ #endif
18
+
19
+ typedef int16_t ogg_int16_t;
20
+ typedef uint16_t ogg_uint16_t;
21
+ typedef int32_t ogg_int32_t;
22
+ typedef uint32_t ogg_uint32_t;
23
+ typedef int64_t ogg_int64_t;
24
+
25
+ #endif
@@ -0,0 +1,210 @@
1
+ /********************************************************************
2
+ * *
3
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7
+ * *
8
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 *
9
+ * by the Xiph.Org Foundation http://www.xiph.org/ *
10
+ * *
11
+ ********************************************************************
12
+
13
+ function: toplevel libogg include
14
+ last mod: $Id: ogg.h 18044 2011-08-01 17:55:20Z gmaxwell $
15
+
16
+ ********************************************************************/
17
+ #ifndef _OGG_H
18
+ #define _OGG_H
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+ #include <stddef.h>
25
+ #include <ogg/os_types.h>
26
+
27
+ typedef struct {
28
+ void *iov_base;
29
+ size_t iov_len;
30
+ } ogg_iovec_t;
31
+
32
+ typedef struct {
33
+ long endbyte;
34
+ int endbit;
35
+
36
+ unsigned char *buffer;
37
+ unsigned char *ptr;
38
+ long storage;
39
+ } oggpack_buffer;
40
+
41
+ /* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/
42
+
43
+ typedef struct {
44
+ unsigned char *header;
45
+ long header_len;
46
+ unsigned char *body;
47
+ long body_len;
48
+ } ogg_page;
49
+
50
+ /* ogg_stream_state contains the current encode/decode state of a logical
51
+ Ogg bitstream **********************************************************/
52
+
53
+ typedef struct {
54
+ unsigned char *body_data; /* bytes from packet bodies */
55
+ long body_storage; /* storage elements allocated */
56
+ long body_fill; /* elements stored; fill mark */
57
+ long body_returned; /* elements of fill returned */
58
+
59
+
60
+ int *lacing_vals; /* The values that will go to the segment table */
61
+ ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact
62
+ this way, but it is simple coupled to the
63
+ lacing fifo */
64
+ long lacing_storage;
65
+ long lacing_fill;
66
+ long lacing_packet;
67
+ long lacing_returned;
68
+
69
+ unsigned char header[282]; /* working space for header encode */
70
+ int header_fill;
71
+
72
+ int e_o_s; /* set when we have buffered the last packet in the
73
+ logical bitstream */
74
+ int b_o_s; /* set after we've written the initial page
75
+ of a logical bitstream */
76
+ long serialno;
77
+ long pageno;
78
+ ogg_int64_t packetno; /* sequence number for decode; the framing
79
+ knows where there's a hole in the data,
80
+ but we need coupling so that the codec
81
+ (which is in a separate abstraction
82
+ layer) also knows about the gap */
83
+ ogg_int64_t granulepos;
84
+
85
+ } ogg_stream_state;
86
+
87
+ /* ogg_packet is used to encapsulate the data and metadata belonging
88
+ to a single raw Ogg/Vorbis packet *************************************/
89
+
90
+ typedef struct {
91
+ unsigned char *packet;
92
+ long bytes;
93
+ long b_o_s;
94
+ long e_o_s;
95
+
96
+ ogg_int64_t granulepos;
97
+
98
+ ogg_int64_t packetno; /* sequence number for decode; the framing
99
+ knows where there's a hole in the data,
100
+ but we need coupling so that the codec
101
+ (which is in a separate abstraction
102
+ layer) also knows about the gap */
103
+ } ogg_packet;
104
+
105
+ typedef struct {
106
+ unsigned char *data;
107
+ int storage;
108
+ int fill;
109
+ int returned;
110
+
111
+ int unsynced;
112
+ int headerbytes;
113
+ int bodybytes;
114
+ } ogg_sync_state;
115
+
116
+ /* Ogg BITSTREAM PRIMITIVES: bitstream ************************/
117
+
118
+ extern void oggpack_writeinit(oggpack_buffer *b);
119
+ extern int oggpack_writecheck(oggpack_buffer *b);
120
+ extern void oggpack_writetrunc(oggpack_buffer *b,long bits);
121
+ extern void oggpack_writealign(oggpack_buffer *b);
122
+ extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits);
123
+ extern void oggpack_reset(oggpack_buffer *b);
124
+ extern void oggpack_writeclear(oggpack_buffer *b);
125
+ extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
126
+ extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits);
127
+ extern long oggpack_look(oggpack_buffer *b,int bits);
128
+ extern long oggpack_look1(oggpack_buffer *b);
129
+ extern void oggpack_adv(oggpack_buffer *b,int bits);
130
+ extern void oggpack_adv1(oggpack_buffer *b);
131
+ extern long oggpack_read(oggpack_buffer *b,int bits);
132
+ extern long oggpack_read1(oggpack_buffer *b);
133
+ extern long oggpack_bytes(oggpack_buffer *b);
134
+ extern long oggpack_bits(oggpack_buffer *b);
135
+ extern unsigned char *oggpack_get_buffer(oggpack_buffer *b);
136
+
137
+ extern void oggpackB_writeinit(oggpack_buffer *b);
138
+ extern int oggpackB_writecheck(oggpack_buffer *b);
139
+ extern void oggpackB_writetrunc(oggpack_buffer *b,long bits);
140
+ extern void oggpackB_writealign(oggpack_buffer *b);
141
+ extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits);
142
+ extern void oggpackB_reset(oggpack_buffer *b);
143
+ extern void oggpackB_writeclear(oggpack_buffer *b);
144
+ extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes);
145
+ extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits);
146
+ extern long oggpackB_look(oggpack_buffer *b,int bits);
147
+ extern long oggpackB_look1(oggpack_buffer *b);
148
+ extern void oggpackB_adv(oggpack_buffer *b,int bits);
149
+ extern void oggpackB_adv1(oggpack_buffer *b);
150
+ extern long oggpackB_read(oggpack_buffer *b,int bits);
151
+ extern long oggpackB_read1(oggpack_buffer *b);
152
+ extern long oggpackB_bytes(oggpack_buffer *b);
153
+ extern long oggpackB_bits(oggpack_buffer *b);
154
+ extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b);
155
+
156
+ /* Ogg BITSTREAM PRIMITIVES: encoding **************************/
157
+
158
+ extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op);
159
+ extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov,
160
+ int count, long e_o_s, ogg_int64_t granulepos);
161
+ extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og);
162
+ extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill);
163
+ extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og);
164
+ extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill);
165
+
166
+ /* Ogg BITSTREAM PRIMITIVES: decoding **************************/
167
+
168
+ extern int ogg_sync_init(ogg_sync_state *oy);
169
+ extern int ogg_sync_clear(ogg_sync_state *oy);
170
+ extern int ogg_sync_reset(ogg_sync_state *oy);
171
+ extern int ogg_sync_destroy(ogg_sync_state *oy);
172
+ extern int ogg_sync_check(ogg_sync_state *oy);
173
+
174
+ extern char *ogg_sync_buffer(ogg_sync_state *oy, long size);
175
+ extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes);
176
+ extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og);
177
+ extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og);
178
+ extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og);
179
+ extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op);
180
+ extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op);
181
+
182
+ /* Ogg BITSTREAM PRIMITIVES: general ***************************/
183
+
184
+ extern int ogg_stream_init(ogg_stream_state *os,int serialno);
185
+ extern int ogg_stream_clear(ogg_stream_state *os);
186
+ extern int ogg_stream_reset(ogg_stream_state *os);
187
+ extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno);
188
+ extern int ogg_stream_destroy(ogg_stream_state *os);
189
+ extern int ogg_stream_check(ogg_stream_state *os);
190
+ extern int ogg_stream_eos(ogg_stream_state *os);
191
+
192
+ extern void ogg_page_checksum_set(ogg_page *og);
193
+
194
+ extern int ogg_page_version(const ogg_page *og);
195
+ extern int ogg_page_continued(const ogg_page *og);
196
+ extern int ogg_page_bos(const ogg_page *og);
197
+ extern int ogg_page_eos(const ogg_page *og);
198
+ extern ogg_int64_t ogg_page_granulepos(const ogg_page *og);
199
+ extern int ogg_page_serialno(const ogg_page *og);
200
+ extern long ogg_page_pageno(const ogg_page *og);
201
+ extern int ogg_page_packets(const ogg_page *og);
202
+
203
+ extern void ogg_packet_clear(ogg_packet *op);
204
+
205
+
206
+ #ifdef __cplusplus
207
+ }
208
+ #endif
209
+
210
+ #endif /* _OGG_H */
@@ -0,0 +1,147 @@
1
+ /********************************************************************
2
+ * *
3
+ * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4
+ * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5
+ * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6
+ * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7
+ * *
8
+ * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
9
+ * by the Xiph.Org Foundation http://www.xiph.org/ *
10
+ * *
11
+ ********************************************************************
12
+
13
+ function: #ifdef jail to whip a few platforms into the UNIX ideal.
14
+ last mod: $Id: os_types.h 17712 2010-12-03 17:10:02Z xiphmont $
15
+
16
+ ********************************************************************/
17
+ #ifndef _OS_TYPES_H
18
+ #define _OS_TYPES_H
19
+
20
+ /* make it easy on the folks that want to compile the libs with a
21
+ different malloc than stdlib */
22
+ #define _ogg_malloc malloc
23
+ #define _ogg_calloc calloc
24
+ #define _ogg_realloc realloc
25
+ #define _ogg_free free
26
+
27
+ #if defined(_WIN32)
28
+
29
+ # if defined(__CYGWIN__)
30
+ # include <stdint.h>
31
+ typedef int16_t ogg_int16_t;
32
+ typedef uint16_t ogg_uint16_t;
33
+ typedef int32_t ogg_int32_t;
34
+ typedef uint32_t ogg_uint32_t;
35
+ typedef int64_t ogg_int64_t;
36
+ typedef uint64_t ogg_uint64_t;
37
+ # elif defined(__MINGW32__)
38
+ # include <sys/types.h>
39
+ typedef short ogg_int16_t;
40
+ typedef unsigned short ogg_uint16_t;
41
+ typedef int ogg_int32_t;
42
+ typedef unsigned int ogg_uint32_t;
43
+ typedef long long ogg_int64_t;
44
+ typedef unsigned long long ogg_uint64_t;
45
+ # elif defined(__MWERKS__)
46
+ typedef long long ogg_int64_t;
47
+ typedef int ogg_int32_t;
48
+ typedef unsigned int ogg_uint32_t;
49
+ typedef short ogg_int16_t;
50
+ typedef unsigned short ogg_uint16_t;
51
+ # else
52
+ /* MSVC/Borland */
53
+ typedef __int64 ogg_int64_t;
54
+ typedef __int32 ogg_int32_t;
55
+ typedef unsigned __int32 ogg_uint32_t;
56
+ typedef __int16 ogg_int16_t;
57
+ typedef unsigned __int16 ogg_uint16_t;
58
+ # endif
59
+
60
+ #elif defined(__MACOS__)
61
+
62
+ # include <sys/types.h>
63
+ typedef SInt16 ogg_int16_t;
64
+ typedef UInt16 ogg_uint16_t;
65
+ typedef SInt32 ogg_int32_t;
66
+ typedef UInt32 ogg_uint32_t;
67
+ typedef SInt64 ogg_int64_t;
68
+
69
+ #elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */
70
+
71
+ # include <inttypes.h>
72
+ typedef int16_t ogg_int16_t;
73
+ typedef uint16_t ogg_uint16_t;
74
+ typedef int32_t ogg_int32_t;
75
+ typedef uint32_t ogg_uint32_t;
76
+ typedef int64_t ogg_int64_t;
77
+
78
+ #elif defined(__HAIKU__)
79
+
80
+ /* Haiku */
81
+ # include <sys/types.h>
82
+ typedef short ogg_int16_t;
83
+ typedef unsigned short ogg_uint16_t;
84
+ typedef int ogg_int32_t;
85
+ typedef unsigned int ogg_uint32_t;
86
+ typedef long long ogg_int64_t;
87
+
88
+ #elif defined(__BEOS__)
89
+
90
+ /* Be */
91
+ # include <inttypes.h>
92
+ typedef int16_t ogg_int16_t;
93
+ typedef uint16_t ogg_uint16_t;
94
+ typedef int32_t ogg_int32_t;
95
+ typedef uint32_t ogg_uint32_t;
96
+ typedef int64_t ogg_int64_t;
97
+
98
+ #elif defined (__EMX__)
99
+
100
+ /* OS/2 GCC */
101
+ typedef short ogg_int16_t;
102
+ typedef unsigned short ogg_uint16_t;
103
+ typedef int ogg_int32_t;
104
+ typedef unsigned int ogg_uint32_t;
105
+ typedef long long ogg_int64_t;
106
+
107
+ #elif defined (DJGPP)
108
+
109
+ /* DJGPP */
110
+ typedef short ogg_int16_t;
111
+ typedef int ogg_int32_t;
112
+ typedef unsigned int ogg_uint32_t;
113
+ typedef long long ogg_int64_t;
114
+
115
+ #elif defined(R5900)
116
+
117
+ /* PS2 EE */
118
+ typedef long ogg_int64_t;
119
+ typedef int ogg_int32_t;
120
+ typedef unsigned ogg_uint32_t;
121
+ typedef short ogg_int16_t;
122
+
123
+ #elif defined(__SYMBIAN32__)
124
+
125
+ /* Symbian GCC */
126
+ typedef signed short ogg_int16_t;
127
+ typedef unsigned short ogg_uint16_t;
128
+ typedef signed int ogg_int32_t;
129
+ typedef unsigned int ogg_uint32_t;
130
+ typedef long long int ogg_int64_t;
131
+
132
+ #elif defined(__TMS320C6X__)
133
+
134
+ /* TI C64x compiler */
135
+ typedef signed short ogg_int16_t;
136
+ typedef unsigned short ogg_uint16_t;
137
+ typedef signed int ogg_int32_t;
138
+ typedef unsigned int ogg_uint32_t;
139
+ typedef long long int ogg_int64_t;
140
+
141
+ #else
142
+
143
+ # include <ogg/config_types.h>
144
+
145
+ #endif
146
+
147
+ #endif /* _OS_TYPES_H */
@@ -0,0 +1,23 @@
1
+ /*
2
+ * seal.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
+ * seal.h is the master header file for the Scorched End Audio Library. By
7
+ * including seal.h, there will be no need to include the inidividual modules'
8
+ * header files.
9
+ */
10
+
11
+ #ifndef _SEAL_SEAL_H_
12
+ #define _SEAL_SEAL_H_
13
+
14
+ #include "seal/core.h"
15
+ #include "seal/buf.h"
16
+ #include "seal/stream.h"
17
+ #include "seal/src.h"
18
+ #include "seal/listener.h"
19
+ #include "seal/efs.h"
20
+ #include "seal/rvb.h"
21
+ #include "seal/err.h"
22
+
23
+ #endif /* _SEAL_SEAL_H_ */
@@ -0,0 +1,143 @@
1
+ /*
2
+ * buf.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
+ * buf.h wraps up the abstract data type `seal_buf_t'. Buffers are essentially
7
+ * abstract representations of the (raw) audio data and are used by sources.
8
+ * Buffers are most suitable for small-sized sound effect which can be
9
+ * efficiently loaded to memory at once. Streams, on the other hand, are more
10
+ * suitable for long audio such as background music.
11
+ */
12
+
13
+ #ifndef _SEAL_BUF_H_
14
+ #define _SEAL_BUF_H_
15
+
16
+ #include <stddef.h>
17
+ #include "raw.h"
18
+ #include "fmt.h"
19
+ #include "err.h"
20
+
21
+ typedef struct seal_buf_t seal_buf_t;
22
+
23
+ #ifdef __cplusplus
24
+ extern "C" {
25
+ #endif
26
+
27
+ /*
28
+ * Initializes a new buffer. If the buffer is no longer needed, call
29
+ * `seal_destroy_buf' to release the resources used by the buffer.
30
+ *
31
+ * @param buf the buffer to initialize
32
+ */
33
+ seal_err_t seal_init_buf(seal_buf_t*);
34
+
35
+ /*
36
+ * Destroys a buffer that is not currently used by any source.
37
+ *
38
+ * @param buf the buffer to destroy
39
+ */
40
+ seal_err_t seal_destroy_buf(seal_buf_t*);
41
+
42
+ /*
43
+ * Loads audio from a file to a buffer that is not currently used by any
44
+ * source. Sets all the attributes appropriately.
45
+ *
46
+ * @param buf the buffer to receive the loaded data
47
+ * @param filename the filename of the audio
48
+ * @param fmt the format of the audio file; automatic recognition of the
49
+ * audio format will be attempted if `fmt' is
50
+ * `SEAL_UNKNOWN_FMT'
51
+ */
52
+ seal_err_t seal_load2buf(seal_buf_t*, const char* /*filename*/, seal_fmt_t);
53
+
54
+ /*
55
+ * Copies raw PCM data to a buffer that is not currently used by any source.
56
+ * Sets all the attributes appropriately.
57
+ *
58
+ * @param buf the destination buffer to receive the copied data
59
+ * @param raw the source raw data to copy
60
+ */
61
+ seal_err_t seal_raw2buf(seal_buf_t*, seal_raw_t*);
62
+
63
+ /*
64
+ * Gets the size, in bytes, of a buffer. The default is 0.
65
+ *
66
+ * @param buf the buffer to retrive the size of
67
+ * @param psize the receiver of the size
68
+ */
69
+ seal_err_t seal_get_buf_size(seal_buf_t*, int* /*psize*/);
70
+
71
+ /*
72
+ * Gets the frequency (sample rate) of the audio contained in a buffer. The
73
+ * default is 0.
74
+ *
75
+ * @param buf the buffer to retrive the frequency of
76
+ * @param pfreq the receiver of the frequency
77
+ */
78
+ seal_err_t seal_get_buf_freq(seal_buf_t*, int* /*pfreq*/);
79
+
80
+ /*
81
+ * Gets the bit depth (bits per sample) of the audio contained in a buffer.
82
+ * The default is 16.
83
+ *
84
+ * @param buf the buffer to retrive the bit depth of
85
+ * @param pbps the receiver of the bit depth
86
+ */
87
+ seal_err_t seal_get_buf_bps(seal_buf_t*, int* /*pbps*/);
88
+
89
+ /*
90
+ * Gets the number of channels of the audio contained in a buffer. The default
91
+ * is 1.
92
+ *
93
+ * @param buf the buffer to retrive the number of channels of
94
+ * @param pnchannels the receiver of the number of channels
95
+ */
96
+ seal_err_t seal_get_buf_nchannels(seal_buf_t*, int* /*pnchannels*/);
97
+
98
+ /*
99
+ * Loads an audio file and extracts the whole PCM data to memory. This is the
100
+ * front-end for loading various audio formats.
101
+ *
102
+ * @param raw the receiver of the loaded PCM data; `raw->data' will be
103
+ * dynamically allocated so the caller is responsible for
104
+ * deallocating it
105
+ * @param filename the filename of the audio
106
+ * @param fmt the format of the audio file; automatic recognition of the
107
+ * audio format will be attempted if the passed-in `fmt' is
108
+ * `SEAL_UNKNOWN_FMT'
109
+ */
110
+ seal_err_t seal_load(seal_raw_t*, const char* /*filename*/, seal_fmt_t);
111
+
112
+ #ifdef __cplusplus
113
+ }
114
+ #endif
115
+
116
+ /*
117
+ *****************************************************************************
118
+ * Below are **implementation details**.
119
+ *****************************************************************************
120
+ */
121
+
122
+ /*
123
+ * Gets the OpenAL buffer format based on the number of channels and bit
124
+ * depth.
125
+ *
126
+ * @param nchannels number of channels
127
+ * @param bit_depth bits per sample
128
+ * @return one of:
129
+ * AL_FORMAT_MONO8
130
+ * AL_FORMAT_MONO16
131
+ * AL_FORMAT_STEREO8
132
+ * AL_FORMAT_STEREO16
133
+ */
134
+ int _seal_get_buf_fmt(int /*nchannels*/, int /*bit_depth*/);
135
+
136
+ seal_err_t _seal_raw2buf(unsigned int /*buf*/, seal_raw_t*);
137
+
138
+ struct seal_buf_t
139
+ {
140
+ unsigned int id;
141
+ };
142
+
143
+ #endif /* _SEAL_BUF_H_ */