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,92 @@
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
+ 1.9.0.0 01-Oct-09 Technical cleanup - subst nullptr for NULL (mb)
19
+ */
20
+
21
+ #include "StdAfx.h"
22
+ #include "id3v1.h"
23
+
24
+ mpg123clr::id3::mpg123id3v1::mpg123id3v1(void)
25
+ {
26
+ }
27
+
28
+ mpg123clr::id3::mpg123id3v1::mpg123id3v1(mpg123_id3v1* sb)
29
+ {
30
+ this->sb = sb;
31
+ }
32
+
33
+
34
+ // Destructor
35
+ mpg123clr::id3::mpg123id3v1::~mpg123id3v1(void)
36
+ {
37
+ // clean up code to release managed resources
38
+ // ...
39
+
40
+ // call Finalizer to clean up unmanaged resources
41
+ this->!mpg123id3v1();
42
+ }
43
+
44
+ // Finalizer
45
+ mpg123clr::id3::mpg123id3v1::!mpg123id3v1(void)
46
+ {
47
+ // we do not create the underlying structure, so shouldn't dispose it either...
48
+ }
49
+
50
+ String^ mpg123clr::id3::mpg123id3v1::tag::get()
51
+ {
52
+ if (sb == nullptr || sb->tag == nullptr) return gcnew String("");
53
+
54
+ return Marshal::PtrToStringAnsi((IntPtr)sb->tag, (int)strnlen(sb->tag, 3));
55
+ }
56
+
57
+ String^ mpg123clr::id3::mpg123id3v1::title::get()
58
+ {
59
+ if (sb == nullptr || sb->title == nullptr) return gcnew String("");
60
+
61
+ return Marshal::PtrToStringAnsi((IntPtr)sb->title, (int)strnlen(sb->title, 30));
62
+ }
63
+
64
+ String^ mpg123clr::id3::mpg123id3v1::artist::get()
65
+ {
66
+ if (sb == nullptr || sb->artist == nullptr) return gcnew String("");
67
+
68
+ return Marshal::PtrToStringAnsi((IntPtr)sb->artist, (int)strnlen(sb->artist, 30));
69
+ }
70
+
71
+ String^ mpg123clr::id3::mpg123id3v1::album::get()
72
+ {
73
+ if (sb == nullptr || sb->album == nullptr) return gcnew String("");
74
+
75
+ return Marshal::PtrToStringAnsi((IntPtr)sb->album, (int)strnlen(sb->album, 30));
76
+ }
77
+
78
+ String^ mpg123clr::id3::mpg123id3v1::comment::get()
79
+ {
80
+ if (sb == nullptr || sb->comment == nullptr) return gcnew String("");
81
+
82
+ return Marshal::PtrToStringAnsi((IntPtr)sb->comment, (int)strnlen(sb->comment, 30));
83
+ }
84
+
85
+ int mpg123clr::id3::mpg123id3v1::genre::get()
86
+ {
87
+ if (sb == nullptr) return 0;
88
+
89
+ return sb->genre;
90
+ }
91
+
92
+
@@ -0,0 +1,132 @@
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
+ #pragma once
21
+
22
+ #pragma warning(disable : 4635)
23
+ #include "mpg123.h"
24
+ #pragma warning(default : 4635)
25
+
26
+ #include <string>
27
+ #include <iostream>
28
+
29
+ #include <vcclr.h>
30
+ using namespace std;
31
+ using namespace System;
32
+ using namespace System::Runtime::InteropServices;
33
+
34
+ namespace mpg123clr
35
+ {
36
+ namespace id3
37
+ {
38
+ ///<summary>id3check enumeration.</summary>
39
+ public enum class id3check
40
+ {
41
+ none = 0,
42
+ id3 = 2, /**< 0010 There is some ID3 info. */
43
+ upd_id3 = MPG123_ID3, /**< 0011 There is some ID3 info. Also matches 0010 or NEW_ID3. */
44
+ new_id3 = MPG123_NEW_ID3, /**< 0001 There is ID3 info that changed since last call to mpg123_id3. */
45
+ icy = 8, /**< 1100 There is some ICY info. Also matches 0100 or NEW_ICY.*/
46
+ upd_icy = MPG123_ICY, /**< 1100 There is some ICY info. Also matches 0100 or NEW_ICY.*/
47
+ new_icy = MPG123_NEW_ICY, /**< 0100 There is ICY info that changed since last call to mpg123_icy. */
48
+ };
49
+
50
+ // Recommended usage when creating reference type on the managed heap (not using stack semantics
51
+ // for reference types...) [see Destructors and Finalizers in Visual C++]
52
+ //
53
+ // A ^ myA = gcnew A;
54
+ // try
55
+ // {
56
+ // use myA
57
+ // }
58
+ // finally
59
+ // {
60
+ // delete myA;
61
+ // }
62
+
63
+ ///<summary>Wrapper for mpg123_id3v1.</summary>
64
+ [StructLayout(LayoutKind::Sequential)]
65
+ public ref struct mpg123id3v1
66
+ {
67
+ private:
68
+ mpg123_id3v1* sb;
69
+ protected:
70
+ ///<summary>Finalizer.
71
+ ///<para>Cleanly handles mpg123_delete of internal (unmanaged) mpg123 handle.</para></summary>
72
+ /// Implementation of CLR Finalize().
73
+ !mpg123id3v1(void);
74
+ internal:
75
+ ///<summary>Working Constructor.
76
+ ///<para>Maps to mpg123_id3v1 memory.</para>
77
+ ///</summary>
78
+ mpg123id3v1(mpg123_id3v1* sb);
79
+ public:
80
+ ///<summary>Constructor.
81
+ ///<para>Only creates object for use as "out" target in ID3 constructor.</para>
82
+ ///</summary>
83
+ mpg123id3v1(void);
84
+
85
+ ///<summary>Destructor. Used for final object deletion.
86
+ ///<para>Calls finalizer for clean disposal of internal (unmanaged) library handles.</para>
87
+ ///</summary>
88
+ /// Implementation of CLR Dispose().
89
+ /// ~Destructor and !Finalizer are the prescribed implementation of Dispose() and Finalize().
90
+ /// See Destructors and Finalizers in Visual C++
91
+ ~mpg123id3v1(void);
92
+
93
+ ///<summary>Get the ID3v1 tag descriptor.
94
+ ///<para>Property returns the ID3v1 tag (should always be "TAG").</para>
95
+ ///</summary>
96
+ ///<value>The ID3v1 tag (should always be "TAG").</value>
97
+ property String^ tag{String^ __clrcall get();}
98
+
99
+ ///<summary>Get the ID3v1 title text.
100
+ ///<para>Property returns the ID3v1 title text.</para>
101
+ ///</summary>
102
+ ///<value>The ID3v1 title text.</value>
103
+ property String^ title{String^ __clrcall get();}
104
+
105
+ ///<summary>Get the ID3v1 artist text.
106
+ ///<para>Property returns the ID3v1 artist text.</para>
107
+ ///</summary>
108
+ ///<value>The ID3v1 artist text.</value>
109
+ property String^ artist{String^ __clrcall get();}
110
+
111
+ ///<summary>Get the ID3v1 album text.
112
+ ///<para>Property returns the ID3v1 album text.</para>
113
+ ///</summary>
114
+ ///<value>The ID3v1 album text.</value>
115
+ property String^ album{String^ __clrcall get();}
116
+
117
+ ///<summary>Get the ID3v1 comment text.
118
+ ///<para>Property returns the ID3v1 comment text.</para>
119
+ ///</summary>
120
+ ///<value>The ID3v1 comment text.</value>
121
+ property String^ comment{String^ __clrcall get();}
122
+
123
+ ///<summary>Get the ID3v1 genre index.
124
+ ///<para>Property returns the ID3v1 genre index.</para>
125
+ ///</summary>
126
+ ///<value>The ID3v1 genre index.</value>
127
+ property int genre{int __clrcall get();}
128
+
129
+
130
+ };
131
+ }
132
+ }
@@ -0,0 +1,138 @@
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
+ 1.9.0.0 01-Oct-09 Technical cleanup - subst nullptr for NULL (mb)
19
+ 1.10.0.0 30-Nov-09 Add test for null base (sb) - in addition to null string test (mb)
20
+ (required if v2 referenced prior to file scan)
21
+ */
22
+
23
+ #include "StdAfx.h"
24
+ #include "id3v2.h"
25
+
26
+ mpg123clr::id3::mpg123id3v2::mpg123id3v2(void)
27
+ {
28
+ }
29
+
30
+ mpg123clr::id3::mpg123id3v2::mpg123id3v2(mpg123_id3v2* sb)
31
+ {
32
+ this->sb = sb;
33
+ }
34
+
35
+
36
+ // Destructor
37
+ mpg123clr::id3::mpg123id3v2::~mpg123id3v2(void)
38
+ {
39
+ // clean up code to release managed resources
40
+ // ...
41
+
42
+ // call Finalizer to clean up unmanaged resources
43
+ this->!mpg123id3v2();
44
+ }
45
+
46
+ // Finalizer
47
+ mpg123clr::id3::mpg123id3v2::!mpg123id3v2(void)
48
+ {
49
+ // we do not create the underlying structure, so shouldn't dispose it either...
50
+ }
51
+
52
+ String^ mpg123clr::id3::mpg123id3v2::title::get()
53
+ {
54
+ // updated: more efficient "union style" mpg123str
55
+ mpg123str^ str = (sb == nullptr || sb->title == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->title);
56
+
57
+ // Deprecated remnant - uses "overlayed style" mpg123str - note inefficient PtrToStrucure...
58
+ // mpg123str^% str = gcnew mpg123str;
59
+ // Marshal::PtrToStructure((IntPtr)sb->title, str);
60
+
61
+ return str->Text;
62
+ }
63
+
64
+ String^ mpg123clr::id3::mpg123id3v2::artist::get()
65
+ {
66
+ mpg123str^ str = (sb == nullptr || sb->artist == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->artist);
67
+
68
+ return str->Text;
69
+ }
70
+
71
+ String^ mpg123clr::id3::mpg123id3v2::album::get()
72
+ {
73
+ mpg123str^ str = (sb == nullptr || sb->album == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->album);
74
+
75
+ return str->Text;
76
+ }
77
+
78
+ String^ mpg123clr::id3::mpg123id3v2::comment::get()
79
+ {
80
+ mpg123str^ str = (sb == nullptr || sb->comment == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->comment);
81
+
82
+ return str->Text;
83
+ }
84
+
85
+ String^ mpg123clr::id3::mpg123id3v2::year::get()
86
+ {
87
+ mpg123str^ str = (sb == nullptr || sb->year == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->year);
88
+
89
+ return str->Text;
90
+ }
91
+
92
+ String^ mpg123clr::id3::mpg123id3v2::genre::get()
93
+ {
94
+ mpg123str^ str = (sb == nullptr || sb->genre == nullptr) ? gcnew mpg123str("") : gcnew mpg123str(sb->genre);
95
+
96
+ return str->Text;
97
+ }
98
+
99
+ int mpg123clr::id3::mpg123id3v2::version::get()
100
+ {
101
+ return sb->version;
102
+ }
103
+
104
+ array<mpg123clr::mpg123text^>^ mpg123clr::id3::mpg123id3v2::MakeTextList(mpg123_text* ptr, size_t count)
105
+ {
106
+ // WARN 4267 - clr limited to 32bit-length-size arrays!!
107
+ array<mpg123clr::mpg123text^>^ ary = gcnew array<mpg123clr::mpg123text^>((int)count);
108
+
109
+ for (int ii = 0; ii < ary->Length; ii++)
110
+ {
111
+ // Remnant - for explicit layout
112
+ // mpg123text^% txt = gcnew mpg123text;
113
+ // Marshal::PtrToStructure((IntPtr)ptr++, txt);
114
+
115
+ // New code - for "handle style" structure
116
+ mpg123text^% txt = gcnew mpg123text(ptr++);
117
+
118
+ ary[ii] = txt;
119
+ }
120
+
121
+ return ary;
122
+ }
123
+
124
+ array<mpg123clr::mpg123text^>^ mpg123clr::id3::mpg123id3v2::Comments::get()
125
+ {
126
+ return MakeTextList(sb->comment_list, sb->comments);
127
+ }
128
+
129
+ array<mpg123clr::mpg123text^>^ mpg123clr::id3::mpg123id3v2::Texts::get()
130
+ {
131
+ return MakeTextList(sb->text, sb->texts);
132
+ }
133
+
134
+ array<mpg123clr::mpg123text^>^ mpg123clr::id3::mpg123id3v2::Extras::get()
135
+ {
136
+ return MakeTextList(sb->extra, sb->extras);
137
+ }
138
+
@@ -0,0 +1,152 @@
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
+ #pragma once
21
+
22
+ #pragma warning(disable : 4635)
23
+ #include "mpg123.h"
24
+ #pragma warning(default : 4635)
25
+
26
+ #include "string.h"
27
+ #include "text.h"
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
+ namespace id3
40
+ {
41
+ // Recommended usage when creating reference type on the managed heap (not using stack semantics
42
+ // for reference types...) [see Destructors and Finalizers in Visual C++]
43
+ //
44
+ // A ^ myA = gcnew A;
45
+ // try
46
+ // {
47
+ // use myA
48
+ // }
49
+ // finally
50
+ // {
51
+ // delete myA;
52
+ // }
53
+
54
+ ///<summary>Wrapper for mpg123_id3v2.</summary>
55
+ [StructLayout(LayoutKind::Sequential)]
56
+ public ref struct mpg123id3v2
57
+ {
58
+ private:
59
+ mpg123_id3v2* sb;
60
+
61
+ array<mpg123text^>^ __clrcall MakeTextList(mpg123_text* ptr, size_t count);
62
+
63
+ protected:
64
+ ///<summary>Finalizer.
65
+ ///<para>Does nothing - wrapper points to underlying memory, this class doesn't allocate memory.</para></summary>
66
+ /// Implementation of CLR Finalize().
67
+ !mpg123id3v2(void);
68
+
69
+ internal:
70
+ ///<summary>Working Constructor.
71
+ ///<para>Maps to mpg123_id3v2 memory.</para>
72
+ ///</summary>
73
+ mpg123id3v2(mpg123_id3v2* sb);
74
+
75
+ public:
76
+ ///<summary>Constructor.
77
+ ///<para>Only creates object for use as "out" target in ID3 constructor.</para>
78
+ ///</summary>
79
+ mpg123id3v2(void);
80
+
81
+ ///<summary>Destructor. Used for final object deletion.
82
+ ///<para>Calls finalizer for clean disposal of internal (unmanaged) library handles.</para>
83
+ ///</summary>
84
+ /// Implementation of CLR Dispose().
85
+ /// ~Destructor and !Finalizer are the prescribed implementation of Dispose() and Finalize().
86
+ /// See Destructors and Finalizers in Visual C++
87
+ ~mpg123id3v2(void);
88
+
89
+ ///<summary>Get the ID3v2 title text.
90
+ ///<para>Property returns the last encountered ID3v2 title text.</para>
91
+ ///</summary>
92
+ ///<value>The last encountered ID3v2 title text.</value>
93
+ property String^ title{String^ __clrcall get();}
94
+
95
+ ///<summary>Get the ID3v2 artist text.
96
+ ///<para>Property returns the last encountered ID3v2 artist text.</para>
97
+ ///</summary>
98
+ ///<value>The last encountered ID3v2 artist text.</value>
99
+ property String^ artist{String^ __clrcall get();}
100
+
101
+ ///<summary>Get the ID3v2 album text.
102
+ ///<para>Property returns the last encountered ID3v2 album text.</para>
103
+ ///</summary>
104
+ ///<value>The last encountered ID3v2 album text.</value>
105
+ property String^ album{String^ __clrcall get();}
106
+
107
+ ///<summary>Get the ID3v2 comment text.
108
+ ///<para>Property returns the last encountered ID3v2 comment text.</para>
109
+ ///</summary>
110
+ ///<value>The last encountered ID3v2 comment text.</value>
111
+ property String^ comment{String^ __clrcall get();}
112
+
113
+ ///<summary>Get the ID3v2 year text.
114
+ ///<para>Property returns the last encountered ID3v2 year text.</para>
115
+ ///</summary>
116
+ ///<value>The last encountered ID3v2 year text.</value>
117
+ property String^ year{String^ __clrcall get();}
118
+
119
+ ///<summary>Get the ID3v2 genre text.
120
+ ///<para>Property returns the last encountered ID3v2 genre text.</para>
121
+ ///</summary>
122
+ ///<value>The last encountered ID3v2 genre text.</value>
123
+ property String^ genre{String^ __clrcall get();}
124
+
125
+ ///<summary>Get the ID3v2 version.
126
+ ///<para>Property returns the ID3v2 version.</para>
127
+ ///</summary>
128
+ ///<value>The ID3v2 version.</value>
129
+ property int version{int __clrcall get();}
130
+
131
+
132
+ ///<summary>Get an array of Comments.
133
+ ///<para>Property returns an array of Comments.</para>
134
+ ///</summary>
135
+ ///<value>An array of Comments.</value>
136
+ property array<mpg123clr::mpg123text^>^ Comments{array<mpg123clr::mpg123text^>^ __clrcall get();};
137
+
138
+ ///<summary>Get an array of ID3v2 text fields (including USLT).
139
+ ///<para>Property returns an array of ID3v2 text fields (including USLT).</para>
140
+ ///</summary>
141
+ ///<value>An array of ID3v2 text fields (including USLT).</value>
142
+ property array<mpg123clr::mpg123text^>^ Texts{array<mpg123clr::mpg123text^>^ __clrcall get();};
143
+
144
+ ///<summary>Get an array of extra (TXXX) fields.
145
+ ///<para>Property returns an array of extra (TXXX) fields.</para>
146
+ ///</summary>
147
+ ///<value>An array of extra (TXXX) fields.</value>
148
+ property array<mpg123clr::mpg123text^>^ Extras{array<mpg123clr::mpg123text^>^ __clrcall get();};
149
+
150
+ };
151
+ }
152
+ }