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,38 @@
1
+ /*
2
+ mpg123clr: MPEG Audio Decoder library Common Language Runtime version.
3
+
4
+ copyright 2009 by Malcolm Boczek - free software under the terms of the LGPL 2.1
5
+ mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply.
6
+
7
+ All rights to this work freely assigned to the mpg123 project.
8
+ */
9
+ /*
10
+ libmpg123: MPEG Audio Decoder library
11
+
12
+ copyright 1995-2008 by the mpg123 project - free software under the terms of the LGPL 2.1
13
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
14
+
15
+ */
16
+ /*
17
+ 1.8.1.0 04-Aug-09 Initial release.
18
+ */
19
+
20
+ // stdafx.h : include file for standard system include files,
21
+ // or project specific include files that are used frequently, but
22
+ // are changed infrequently
23
+ //
24
+
25
+ #pragma once
26
+
27
+ #include "targetver.h"
28
+
29
+ #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
30
+ // Windows Header Files:
31
+ #include <windows.h>
32
+
33
+
34
+
35
+ // TODO: reference additional headers your program requires here
36
+
37
+ struct mpg123_pars_struct{};
38
+ struct mpg123_handle_struct{};
@@ -0,0 +1,166 @@
1
+ /*
2
+ mpg123clr: MPEG Audio Decoder library Common Language Runtime version.
3
+
4
+ copyright 2009-2011 by Malcolm Boczek - free software under the terms of the LGPL 2.1
5
+ mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply.
6
+
7
+ All rights to this work freely assigned to the mpg123 project.
8
+ */
9
+ /*
10
+ libmpg123: MPEG Audio Decoder library
11
+
12
+ copyright 1995-2011 by the mpg123 project - free software under the terms of the LGPL 2.1
13
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
14
+
15
+ */
16
+ /*
17
+ 1.8.1.0 04-Aug-09 Initial release.
18
+ 1.9.0.0 24-Sep-09 Function names harmonized with libmpg123 (mb)
19
+ 1.9.0.0 01-Oct-09 Technical cleanup - subst nullptr for NULL (mb)
20
+ 1.13.0.0 13-Jan-11 release match - added strlen (mb)
21
+ */
22
+
23
+ #include "StdAfx.h"
24
+ #include "string.h"
25
+
26
+ // Constructor for overlaid instance (instanced)
27
+ mpg123clr::mpg123str::mpg123str(void)
28
+ {
29
+ instanced = true;
30
+ sb = new ::mpg123_string;
31
+ mpg123_init_string();
32
+
33
+ }
34
+
35
+ // Constructor for mpg123_string handle instance (referenced)
36
+ mpg123clr::mpg123str::mpg123str(mpg123_string* sb)
37
+ {
38
+ instanced = false;
39
+ this->sb = sb;
40
+ }
41
+
42
+ mpg123clr::mpg123str::mpg123str(const char* str)
43
+ {
44
+ instanced = true;
45
+ sb = new ::mpg123_string;
46
+ mpg123_init_string();
47
+
48
+ ::mpg123_set_string(sb, str);
49
+ }
50
+
51
+ // Destructor cleans up all resources
52
+ mpg123clr::mpg123str::~mpg123str(void)
53
+ {
54
+ // clean up code to release managed resources
55
+ // ...
56
+
57
+ // call Finalizer to clean up unmanaged resources
58
+ this->!mpg123str();
59
+ }
60
+
61
+ // Finalizer cleans up unmanaged resources
62
+ mpg123clr::mpg123str::!mpg123str(void)
63
+ {
64
+ if (instanced && (sb != nullptr)) mpg123_free_string();
65
+ }
66
+
67
+ int mpg123clr::mpg123str::mpg123_add_string(String ^ s)
68
+ {
69
+ return mpg123_add_substring(s, 0, s->Length);
70
+ }
71
+
72
+ int mpg123clr::mpg123str::mpg123_add_substring(String ^ s, int from, int count)
73
+ {
74
+ // convert CLR string to CLI string
75
+ using namespace Runtime::InteropServices;
76
+ const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s->Substring(from, count))).ToPointer();
77
+
78
+ // add mpg123_string info
79
+ int ret = ::mpg123_add_string(sb, chars);
80
+
81
+ // free temporary memory
82
+ Marshal::FreeHGlobal(IntPtr((void*)chars));
83
+
84
+ return ret;
85
+ }
86
+
87
+ int mpg123clr::mpg123str::mpg123_copy_string(mpg123str^ to)
88
+ {
89
+ return ::mpg123_copy_string(sb, to->sb);
90
+ }
91
+
92
+ void mpg123clr::mpg123str::mpg123_free_string()
93
+ {
94
+ ::mpg123_free_string(sb);
95
+ }
96
+
97
+ int mpg123clr::mpg123str::mpg123_grow_string(int newSize)
98
+ {
99
+ return ::mpg123_grow_string(sb, newSize);
100
+ }
101
+
102
+ int mpg123clr::mpg123str::mpg123_resize_string(int newSize)
103
+ {
104
+ return ::mpg123_resize_string(sb, newSize);
105
+ }
106
+
107
+ void mpg123clr::mpg123str::mpg123_init_string()
108
+ {
109
+ ::mpg123_init_string(sb);
110
+ }
111
+
112
+ int mpg123clr::mpg123str::mpg123_set_string(String ^ s)
113
+ {
114
+ return mpg123_set_substring(s, 0, s->Length);
115
+ }
116
+
117
+ int mpg123clr::mpg123str::mpg123_set_substring(String ^ s, int from, int count)
118
+ {
119
+ // convert CLR string to CLI string
120
+ using namespace Runtime::InteropServices;
121
+ const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(s->Substring(from, count))).ToPointer();
122
+
123
+ // set mpg123_string info
124
+ int ret = ::mpg123_set_string(sb, chars);
125
+
126
+ // free temporary memory
127
+ Marshal::FreeHGlobal(IntPtr((void*)chars));
128
+
129
+ return ret;
130
+ }
131
+
132
+ long long mpg123clr::mpg123str::mpg123_strlen(bool utf8)
133
+ {
134
+ // TODO: determine use for utf8 vs ansi
135
+ return ::mpg123_strlen(sb, utf8);
136
+ }
137
+
138
+ int mpg123clr::mpg123str::Fill::get()
139
+ {
140
+ // WARN 4267 - clr limited to 32bit-length-size strings by PtrToStringAnsi
141
+ return (int)sb->fill;
142
+ }
143
+
144
+ int mpg123clr::mpg123str::Size::get()
145
+ {
146
+ // WARN 4267 - clr limited to 32bit-length-size strings by PtrToStringAnsi
147
+ return (int)sb->size;
148
+ }
149
+
150
+ String^ mpg123clr::mpg123str::Text::get()
151
+ {
152
+ if (sb->fill == 0) return gcnew String("");
153
+
154
+ // WARN 4267 - clr limited to 32bit-length-size strings by PtrToStringAnsi
155
+ return Marshal::PtrToStringAnsi((IntPtr)sb->p, (int)strnlen(sb->p, sb->fill));
156
+ }
157
+
158
+ mpg123clr::mpg123str::text_encoding mpg123clr::mpg123str::mpg123_enc_from_id3(unsigned char id3_enc_byte)
159
+ {
160
+ return (mpg123clr::mpg123str::text_encoding) ::mpg123_enc_from_id3(id3_enc_byte);
161
+ }
162
+
163
+ int mpg123clr::mpg123str::mpg123_store_utf8(text_encoding enc, const unsigned char *source, size_t source_size)
164
+ {
165
+ return ::mpg123_store_utf8(sb, (mpg123_text_encoding)enc, source, source_size);
166
+ }
@@ -0,0 +1,265 @@
1
+ /*
2
+ mpg123clr: MPEG Audio Decoder library Common Language Runtime version.
3
+
4
+ copyright 2009-2011 by Malcolm Boczek - free software under the terms of the LGPL 2.1
5
+ mpg123clr.dll is a derivative work of libmpg123 - all original mpg123 licensing terms apply.
6
+
7
+ All rights to this work freely assigned to the mpg123 project.
8
+ */
9
+ /*
10
+ libmpg123: MPEG Audio Decoder library
11
+
12
+ copyright 1995-2011 by the mpg123 project - free software under the terms of the LGPL 2.1
13
+ see COPYING and AUTHORS files in distribution or http://mpg123.org
14
+
15
+ */
16
+ /*
17
+ 1.8.1.0 04-Aug-09 Initial release.
18
+ 1.9.0.0 16-Sep-09 1.9.0 Update - add enc_from_id3, store_utf8
19
+ 1.9.0.0 24-Sep-09 Function names harmonized with libmpg123 (mb)
20
+ 1.13.0.0 13-Jan-11 release match - added strlen (mb)
21
+ */
22
+
23
+ #pragma once
24
+
25
+ #pragma warning(disable : 4635)
26
+ #include "mpg123.h"
27
+ #pragma warning(default : 4635)
28
+
29
+ #include <string>
30
+ #include <iostream>
31
+
32
+ #include <vcclr.h>
33
+ using namespace std;
34
+ using namespace System;
35
+ using namespace System::Runtime::InteropServices;
36
+
37
+ namespace mpg123clr
38
+ {
39
+
40
+ // Recommended usage when creating reference type on the managed heap (not using stack semantics
41
+ // for reference types...) [see Destructors and Finalizers in Visual C++]
42
+ //
43
+ // A ^ myA = gcnew A;
44
+ // try
45
+ // {
46
+ // use myA
47
+ // }
48
+ // finally
49
+ // {
50
+ // delete myA;
51
+ // }
52
+
53
+
54
+ ///<summary>Wrapper for mpg123_string.
55
+ ///<para>mpg123str can be used as both (publicly) an instance object and (privately) a reference object.
56
+ /// Construction and Finalizer operations perform differently depending on the instance type...
57
+ ///</para>
58
+ ///<para>Instanced: i.e. new mpg123str();
59
+ /// Normal operation of any object. Construction initializes memory and Destruction frees memory.
60
+ ///</para>
61
+ ///<para>Referenced: i.e. new mpg123str(sb);
62
+ /// Construction and Destruction have no effect on the referenced object, mpg123str objects may be freely
63
+ /// made and deleted without affecting the referenced object.
64
+ ///</para>
65
+ ///<para>However!
66
+ ///</para>
67
+ ///<para>All methods operate on the referenced object (and NOT a copy of the object), the underlying mpg123_string
68
+ /// is directly modified in situ. Therefore the referenced object can be initialized and disposed by
69
+ /// explicitly calling Init() and Free().</para>
70
+ ///<para>The length of strings is limited to a 32bit value due to limitations of the CLI marshaler.
71
+ ///</para>
72
+ ///</summary>
73
+ [StructLayout(LayoutKind::Sequential, CharSet=CharSet::Ansi)]
74
+ public ref struct mpg123str
75
+ {
76
+
77
+ public:
78
+
79
+ ///<summary>text_encoding enumeration.</summary>
80
+ enum class text_encoding
81
+ {
82
+ text_unknown = mpg123_text_unknown, /// Unkown encoding... mpg123_id3_encoding can return that on invalid codes.
83
+ text_utf8 = mpg123_text_utf8, /// UTF-8
84
+ text_latin1 = mpg123_text_latin1, /// ISO-8859-1. Note that sometimes latin1 in ID3 is abused for totally different encodings.
85
+ text_icy = mpg123_text_icy, /// ICY metadata encoding, usually CP-1252 but we take it as UTF-8 if it qualifies as such.
86
+ text_cp1252 = mpg123_text_cp1252, /// Really CP-1252 without any guessing.
87
+ text_utf16 = mpg123_text_utf16, /// Some UTF-16 encoding. The last of a set of leading BOMs (byte order mark) rules.
88
+ /// When there is no BOM, big endian ordering is used. Note that UCS-2 qualifies as UTF-8 when
89
+ /// you don't mess with the reserved code points. If you want to decode little endian data
90
+ /// without BOM you need to prepend 0xff 0xfe yourself.
91
+ text_utf16bom = mpg123_text_utf16bom, /// Just an alias for UTF-16, ID3v2 has this as distinct code.
92
+ text_utf16be = mpg123_text_utf16be, /// Another alias for UTF16 from ID3v2. Note, that, because of the mess that is reality,
93
+ /// BOMs are used if encountered. There really is not much distinction between the UTF16 types for mpg123
94
+ /// One exception: Since this is seen in ID3v2 tags, leading null bytes are skipped for all other UTF16
95
+ /// types (we expect a BOM before real data there), not so for utf16be!
96
+ text_max = mpg123_text_max /// Placeholder for the maximum encoding value.
97
+ };
98
+
99
+ ///<summary>id3_enc enumeration.</summary>
100
+ enum class id3_enc
101
+ {
102
+ id3_latin1 = mpg123_id3_latin1, /// Note: This sometimes can mean anything in practice...
103
+ id3_utf16bom = mpg123_id3_utf16bom, /// UTF16, UCS-2 ... it's all the same for practical purposes.
104
+ id3_utf16be = mpg123_id3_utf16be, /// Big-endian UTF-16, BOM see note for mpg123_text_utf16be.
105
+ id3_utf8 = mpg123_id3_utf8, /// Our lovely overly ASCII-compatible 8 byte encoding for the world.
106
+ id3_enc_max = mpg123_id3_enc_max /// Placeholder to check valid range of encoding byte.
107
+ };
108
+
109
+
110
+ private:
111
+ mpg123_string* sb;
112
+ bool instanced;
113
+
114
+ internal:
115
+ ///<summary>Reference Constructor. Does nothing to referenced mpg123_string structure.
116
+ ///<para>Reference objects may be freely created and deleted without affecting the underlying mpg123_string object.
117
+ /// However, operations on the referenced object do modify the object in-situ (i.e. 'this' is not a 'copy'), and
118
+ /// the referenced object may be explicitly initialized and disposed by calling the appropriate methods. (Init() and Free())</para>
119
+ ///<para>Recommended usage: using(mpg123str obj = new mpg123str(sb)){ use obj here }</para>
120
+ ///</summary>
121
+ mpg123str(mpg123_string* sb);
122
+
123
+ ///<summary>Internal Constructor.
124
+ ///<para>Only used on empty fields.</para>
125
+ ///</summary>
126
+ mpg123str(const char* str);
127
+
128
+ protected:
129
+ ///<summary>Finalizer.
130
+ ///<para>Cleanly handles mpg123_free_string of instanced mpg123_string object.</para>
131
+ ///<para>Does not dispose referenced mpg123_string object. Referenced objects may be explicitly disposed by using Free().</para>
132
+ ///</summary>
133
+ /// Implementation of CLR Finalize().
134
+ !mpg123str(void);
135
+
136
+ public:
137
+ ///<summary>Constructor, also initializes underlying mpg123_string structure.
138
+ ///<para>Instanced objects automatically dispose of underlying mpg123_string object.</para>
139
+ ///<para>Recommended usage: using(mpg123str obj = new mpg123str(sb)){ use obj here }</para>
140
+ ///</summary>
141
+ mpg123str(void);
142
+
143
+ ///<summary>Destructor. Used for final object deletion.
144
+ ///<para>Instance objects call the finalizer for clean disposal of internal mpg123_string object.</para>
145
+ ///<para>Reference objects may be freely deleted without affecting the underlying mpg123_string object.
146
+ /// However, the referenced object may be explicitly disposed by calling Free()</para>
147
+ ///</summary>
148
+ // Implementation of CLR Dispose().
149
+ // ~Destructor and !Finalizer are the prescribed implementation of Dispose() and Finalize().
150
+ // See Destructors and Finalizers in Visual C++
151
+ ~mpg123str(void);
152
+
153
+ ///<summary>Append a C# string to this mpg123str.
154
+ ///<para>Returns 0 on error, 1 on success.</para>
155
+ ///</summary>
156
+ ///<param name="s">String to be appended.</param>
157
+ ///<returns>0 on error, 1 on success.</returns>
158
+ int __clrcall mpg123_add_string(String ^ s);
159
+
160
+ ///<summary>Append a C# substring to this mpg123str.
161
+ ///<para>Returns 0 on error, 1 on success.</para>
162
+ ///</summary>
163
+ ///<param name="s">String to be appended.</param>
164
+ ///<param name="from">String offset to copy from.</param>
165
+ ///<param name="count">Number of characters to copy. (a null byte is always appended)</param>
166
+ ///<returns>0 on error, 1 on success.</returns>
167
+ int __clrcall mpg123_add_substring(String ^ s, int from, int count);
168
+
169
+ ///<summary>Copy the contents of this string to another.
170
+ ///<para>Returns 0 on error, 1 on success.</para>
171
+ ///</summary>
172
+ ///<param name="to">Where to copy this string to.</param>
173
+ ///<returns>0 on error, 1 on success.</returns>
174
+ int __clrcall mpg123_copy_string(mpg123str^ to);
175
+
176
+ ///<summary>Free-up mempory for an existing mpg123_string.
177
+ ///</summary>
178
+ void __clrcall mpg123_free_string(void);
179
+
180
+ ///<summary>Increase size of a mpg123_string if necessary (it may stay larger).
181
+ ///<para>Returns 0 on error, 1 on success.</para>
182
+ ///</summary>
183
+ ///<param name="newSize">Required size.</param>
184
+ ///<returns>0 on error, 1 on success.</returns>
185
+ int __clrcall mpg123_grow_string(int newSize);
186
+
187
+ ///<summary>Change the size of a mpg123_string.
188
+ ///<para>Returns 0 on error, 1 on success.</para>
189
+ ///</summary>
190
+ ///<param name="newSize">Required size.</param>
191
+ ///<returns>0 on error, 1 on success.</returns>
192
+ int __clrcall mpg123_resize_string(int newSize);
193
+
194
+ ///<summary>Create and allocate memory for a new mpg123_string.
195
+ ///</summary>
196
+ void __clrcall mpg123_init_string(void);
197
+
198
+ ///<summary>Set the contents to a C# string.
199
+ ///<para>Returns 0 on error, 1 on success.</para>
200
+ ///</summary>
201
+ ///<param name="s">String to be applied.</param>
202
+ ///<returns>0 on error, 1 on success.</returns>
203
+ int __clrcall mpg123_set_string(String ^ s);
204
+
205
+ ///<summary>Set the contents to a C# substring.
206
+ ///<para>Returns 0 on error, 1 on success.</para>
207
+ ///</summary>
208
+ ///<param name="s">String to be applied.</param>
209
+ ///<param name="from">String offset to copy from.</param>
210
+ ///<param name="count">Number of characters to copy. (a null byte is always appended)</param>
211
+ ///<returns>0 on error, 1 on success.</returns>
212
+ int __clrcall mpg123_set_substring(String ^ s, int from, int count);
213
+
214
+ ///<summary>Count characters in a mpg123 string (non-null bytes or UTF-8 characters).
215
+ ///<para>Even with the fill property, the character count is not obvious as there could be multiple trailing null bytes.</para>
216
+ ///<para>Returns the character count.</para>
217
+ ///</summary>
218
+ ///<param name="utf8">Flag to tell if the string is in utf8 encoding.</param>
219
+ ///<returns>Character count.</returns>
220
+ long long __clrcall mpg123_strlen(bool utf8);
221
+
222
+ ///<summary>Get the number of used bytes. (including closing zero byte).
223
+ ///<para>Property returns the number of used bytes.</para>
224
+ ///</summary>
225
+ ///<value>The number of used bytes.</value>
226
+ property int Fill{int __clrcall get();} // property
227
+
228
+ ///<summary>Get the number of bytes allocated.
229
+ ///<para>Property returns the number of bytes allocated.</para>
230
+ ///</summary>
231
+ ///<value>The number of bytes allocated.</value>
232
+ property int Size{int __clrcall get();} // property
233
+
234
+ ///<summary>Get a C# string representation of the mpg123str.
235
+ ///<para>Property returns C# string text.</para>
236
+ ///</summary>
237
+ ///<value>C# string text.</value>
238
+ property String^ Text{String^ __clrcall get();}
239
+
240
+ // 1.9.0.0 +add
241
+
242
+ ///<summary>Convert ID3 encoding byte to mpg123 encoding index.
243
+ ///<para>Returns the text_encoding enum of the converted value.</para>
244
+ ///</summary>
245
+ ///<param name="id3_enc_byte">The ID3 encoding byte to be converted.</param>
246
+ ///<returns>The text_encoding enum of the converted value.</returns>
247
+ static text_encoding __clrcall mpg123_enc_from_id3(unsigned char id3_enc_byte);
248
+
249
+ ///<summary>Store text data in string, after converting to UTF-8 from indicated encoding.
250
+ ///<para>A prominent error can be that you provided an unknown encoding value, or this build of libmpg123 lacks support for certain encodings (ID3 or ICY stuff missing).
251
+ /// Also, you might want to take a bit of care with preparing the data; for example, strip leading zeroes (I have seen that).</para>
252
+ ///<para>CLR - e.g. UnicodeEncoding(true, true) works with utf16be.</para>
253
+ ///<para>Returns 0 on error, 1 on success (on error, mpg123_free_string is called on sb).</para>
254
+ ///</summary>
255
+ ///<param name="enc">Mpg123 text encoding value.</param>
256
+ ///<param name="source">Source buffer with plain unsigned bytes.</param>
257
+ ///<param name="source_size">Number of bytes in the source buffer.</param>
258
+ ///<returns>0 on error, 1 on success (on error, mpg123_free_string is called on sb).</returns>
259
+ int __clrcall mpg123_store_utf8(text_encoding enc, const unsigned char *source, size_t source_size);
260
+
261
+ // 1.9.0.0 -add
262
+
263
+ };
264
+
265
+ }