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.
- data/.yardopts +1 -0
- data/LICENSE +13 -0
- data/README.md +265 -0
- data/ext/seal/extconf.rb +45 -0
- data/include/al/al.h +724 -0
- data/include/al/alc.h +277 -0
- data/include/al/efx-presets.h +402 -0
- data/include/al/efx.h +758 -0
- data/include/mpg123/mpg123.h +1034 -0
- data/include/ogg/config_types.h +25 -0
- data/include/ogg/ogg.h +210 -0
- data/include/ogg/os_types.h +147 -0
- data/include/seal.h +23 -0
- data/include/seal/buf.h +143 -0
- data/include/seal/core.h +95 -0
- data/include/seal/efs.h +112 -0
- data/include/seal/err.h +93 -0
- data/include/seal/fmt.h +58 -0
- data/include/seal/listener.h +103 -0
- data/include/seal/raw.h +86 -0
- data/include/seal/rvb.h +520 -0
- data/include/seal/src.h +413 -0
- data/include/seal/stream.h +81 -0
- data/include/vorbis/codec.h +243 -0
- data/include/vorbis/vorbisfile.h +206 -0
- data/mpg123/AUTHORS +150 -0
- data/mpg123/COPYING +773 -0
- data/mpg123/ChangeLog +3 -0
- data/mpg123/INSTALL +111 -0
- data/mpg123/Makefile.am +99 -0
- data/mpg123/Makefile.in +1043 -0
- data/mpg123/NEWS +1200 -0
- data/mpg123/NEWS.libmpg123 +133 -0
- data/mpg123/README +203 -0
- data/mpg123/TODO +38 -0
- data/mpg123/aclocal.m4 +1168 -0
- data/mpg123/build/config.guess +1530 -0
- data/mpg123/build/config.sub +1782 -0
- data/mpg123/build/depcomp +707 -0
- data/mpg123/build/install-sh +527 -0
- data/mpg123/build/ltmain.sh +9655 -0
- data/mpg123/build/missing +330 -0
- data/mpg123/configure +20267 -0
- data/mpg123/configure.ac +2178 -0
- data/mpg123/doc/ACCURACY +2 -0
- data/mpg123/doc/BENCHMARKING +110 -0
- data/mpg123/doc/BUGS +3 -0
- data/mpg123/doc/CONTACT +17 -0
- data/mpg123/doc/LICENSE +22 -0
- data/mpg123/doc/Makefile.am +32 -0
- data/mpg123/doc/Makefile.in +490 -0
- data/mpg123/doc/PATENTS +39 -0
- data/mpg123/doc/README.3DNOW +56 -0
- data/mpg123/doc/README.gain +171 -0
- data/mpg123/doc/README.remote +218 -0
- data/mpg123/doc/ROAD_TO_LGPL +270 -0
- data/mpg123/doc/THANKS +13 -0
- data/mpg123/doc/TODO +63 -0
- data/mpg123/doc/doxy_examples.c +21 -0
- data/mpg123/doc/doxygen.conf +41 -0
- data/mpg123/doc/doxyhead.xhtml +12 -0
- data/mpg123/doc/examples/dump_seekindex.c +41 -0
- data/mpg123/doc/examples/extract_frames.c +92 -0
- data/mpg123/doc/examples/feedseek.c +238 -0
- data/mpg123/doc/examples/id3dump.c +178 -0
- data/mpg123/doc/examples/mpg123_to_wav.c +118 -0
- data/mpg123/doc/examples/mpglib.c +92 -0
- data/mpg123/doc/examples/scan.c +47 -0
- data/mpg123/doc/libmpg123_speed.txt +84 -0
- data/mpg123/equalize.dat +37 -0
- data/mpg123/libmpg123.pc.in +11 -0
- data/mpg123/m4/addrconfig.m4 +34 -0
- data/mpg123/m4/libtool.m4 +7982 -0
- data/mpg123/m4/ltoptions.m4 +384 -0
- data/mpg123/m4/ltsugar.m4 +123 -0
- data/mpg123/m4/ltversion.m4 +23 -0
- data/mpg123/m4/lt~obsolete.m4 +98 -0
- data/mpg123/makedll.sh +19 -0
- data/mpg123/man1/mpg123.1 +512 -0
- data/mpg123/mpg123.spec +68 -0
- data/mpg123/mpg123.spec.in +68 -0
- data/mpg123/ports/MSVC++/2005/libmpg123/libmpg123.vcproj +741 -0
- data/mpg123/ports/MSVC++/2008/dump_seekindex/dump_seekindex.vcproj +194 -0
- data/mpg123/ports/MSVC++/2008/feedseek/feedseek.vcproj +195 -0
- data/mpg123/ports/MSVC++/2008/libmpg123/libmpg123.vcproj +1357 -0
- data/mpg123/ports/MSVC++/2008/mpg123.sln +44 -0
- data/mpg123/ports/MSVC++/2008/mpglib/mpglib.vcproj +191 -0
- data/mpg123/ports/MSVC++/2008/scan/scan.vcproj +195 -0
- data/mpg123/ports/MSVC++/2008clr/2008clr.sln +81 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Program.cs +435 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/ReplaceReaderclr/ReplaceReaderclr.csproj +72 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Program.cs +331 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/feedseekclr/feedseekclr.csproj +71 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Program.cs +79 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/Properties/AssemblyInfo.cs +36 -0
- data/mpg123/ports/MSVC++/2008clr/examples/scanclr/scanclr.csproj +70 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/AssemblyInfo.cpp +76 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/ReadMe.txt +165 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.cpp +91 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/advanced.h +130 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/dllmain.cpp +19 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/enum.h +218 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.cpp +48 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/error.h +134 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.cpp +92 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v1.h +132 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.cpp +138 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/id3v2.h +152 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.cpp +896 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.h +953 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.rc +102 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/mpg123clr.vcproj +328 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/resource.h +14 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.cpp +8 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/stdafx.h +38 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.cpp +166 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/string.h +265 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/targetver.h +24 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.cpp +67 -0
- data/mpg123/ports/MSVC++/2008clr/mpg123clr/text.h +111 -0
- data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj +90 -0
- data/mpg123/ports/MSVC++/2010/dump_seekindex/dump_seekindex.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj +95 -0
- data/mpg123/ports/MSVC++/2010/feedseek/feedseek.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj +960 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/libmpg123.vcxproj.user +3 -0
- data/mpg123/ports/MSVC++/2010/libmpg123/yasm.exe +0 -0
- data/mpg123/ports/MSVC++/2010/mpg123.sln +38 -0
- data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj +93 -0
- data/mpg123/ports/MSVC++/2010/scan/scan.vcxproj.filters +6 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/CORE_FileIn.H +15 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/CORE/SourceFilter_MP3.H +139 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_Def.H +206 -0
- data/mpg123/ports/MSVC++/CMP3Stream/INCLUDE/IIEP_FileIn.H +167 -0
- data/mpg123/ports/MSVC++/CMP3Stream/README +4 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_FileIn.CPP +462 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Log.CPP +122 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/CORE_Mutex.CPP +35 -0
- data/mpg123/ports/MSVC++/CMP3Stream/SOURCE/SourceFilter_MP3Stream.CPP +586 -0
- data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/PLACE_LIBMPG123_SOURCES_HERE +0 -0
- data/mpg123/ports/MSVC++/CMP3Stream/libMPG123/libMPG123.vcproj +245 -0
- data/mpg123/ports/MSVC++/config.h +35 -0
- data/mpg123/ports/MSVC++/examples/feedseek.c +240 -0
- data/mpg123/ports/MSVC++/examples/scan.c +47 -0
- data/mpg123/ports/MSVC++/mpg123.h +46 -0
- data/mpg123/ports/MSVC++/msvc.c +59 -0
- data/mpg123/ports/README +26 -0
- data/mpg123/ports/Sony_PSP/Makefile.psp +38 -0
- data/mpg123/ports/Sony_PSP/README +11 -0
- data/mpg123/ports/Sony_PSP/config.h +368 -0
- data/mpg123/ports/Sony_PSP/readers.c.patch +2 -0
- data/mpg123/ports/Xcode/config.h +197 -0
- data/mpg123/ports/Xcode/mpg123.h +17 -0
- data/mpg123/ports/Xcode/mpg123.xcodeproj/project.pbxproj +670 -0
- data/mpg123/ports/mpg123_.pas +478 -0
- data/mpg123/scripts/benchmark-cpu.pl +56 -0
- data/mpg123/scripts/tag_lyrics.py +76 -0
- data/mpg123/src/Makefile.am +186 -0
- data/mpg123/src/Makefile.in +1097 -0
- data/mpg123/src/audio.c +725 -0
- data/mpg123/src/audio.h +106 -0
- data/mpg123/src/buffer.c +312 -0
- data/mpg123/src/buffer.h +45 -0
- data/mpg123/src/common.c +240 -0
- data/mpg123/src/common.h +29 -0
- data/mpg123/src/config.h.in +436 -0
- data/mpg123/src/control_generic.c +809 -0
- data/mpg123/src/equalizer.c +48 -0
- data/mpg123/src/genre.c +271 -0
- data/mpg123/src/genre.h +15 -0
- data/mpg123/src/getlopt.c +148 -0
- data/mpg123/src/getlopt.h +77 -0
- data/mpg123/src/httpget.c +700 -0
- data/mpg123/src/httpget.h +66 -0
- data/mpg123/src/legacy_module.c +74 -0
- data/mpg123/src/libmpg123/Makefile.am +141 -0
- data/mpg123/src/libmpg123/Makefile.in +919 -0
- data/mpg123/src/libmpg123/compat.c +138 -0
- data/mpg123/src/libmpg123/compat.h +178 -0
- data/mpg123/src/libmpg123/dct36_3dnow.S +505 -0
- data/mpg123/src/libmpg123/dct36_3dnowext.S +512 -0
- data/mpg123/src/libmpg123/dct64.c +174 -0
- data/mpg123/src/libmpg123/dct64_3dnow.S +712 -0
- data/mpg123/src/libmpg123/dct64_3dnowext.S +714 -0
- data/mpg123/src/libmpg123/dct64_altivec.c +315 -0
- data/mpg123/src/libmpg123/dct64_i386.c +336 -0
- data/mpg123/src/libmpg123/dct64_i486.c +342 -0
- data/mpg123/src/libmpg123/dct64_mmx.S +811 -0
- data/mpg123/src/libmpg123/dct64_neon.S +297 -0
- data/mpg123/src/libmpg123/dct64_neon_float.S +270 -0
- data/mpg123/src/libmpg123/dct64_sse.S +454 -0
- data/mpg123/src/libmpg123/dct64_sse_float.S +401 -0
- data/mpg123/src/libmpg123/dct64_x86_64.S +464 -0
- data/mpg123/src/libmpg123/dct64_x86_64_float.S +426 -0
- data/mpg123/src/libmpg123/debug.h +171 -0
- data/mpg123/src/libmpg123/decode.h +268 -0
- data/mpg123/src/libmpg123/dither.c +119 -0
- data/mpg123/src/libmpg123/dither.h +23 -0
- data/mpg123/src/libmpg123/equalizer.c +17 -0
- data/mpg123/src/libmpg123/equalizer_3dnow.S +70 -0
- data/mpg123/src/libmpg123/feature.c +106 -0
- data/mpg123/src/libmpg123/format.c +521 -0
- data/mpg123/src/libmpg123/frame.c +1046 -0
- data/mpg123/src/libmpg123/frame.h +410 -0
- data/mpg123/src/libmpg123/gapless.h +119 -0
- data/mpg123/src/libmpg123/getbits.h +100 -0
- data/mpg123/src/libmpg123/getcpuflags.S +91 -0
- data/mpg123/src/libmpg123/getcpuflags.h +47 -0
- data/mpg123/src/libmpg123/huffman.h +340 -0
- data/mpg123/src/libmpg123/icy.c +32 -0
- data/mpg123/src/libmpg123/icy.h +38 -0
- data/mpg123/src/libmpg123/icy2utf8.c +438 -0
- data/mpg123/src/libmpg123/icy2utf8.h +10 -0
- data/mpg123/src/libmpg123/id3.c +999 -0
- data/mpg123/src/libmpg123/id3.h +43 -0
- data/mpg123/src/libmpg123/index.c +134 -0
- data/mpg123/src/libmpg123/index.h +59 -0
- data/mpg123/src/libmpg123/intsym.h +256 -0
- data/mpg123/src/libmpg123/l12_integer_tables.h +278 -0
- data/mpg123/src/libmpg123/l2tables.h +164 -0
- data/mpg123/src/libmpg123/l3_integer_tables.h +1002 -0
- data/mpg123/src/libmpg123/layer1.c +155 -0
- data/mpg123/src/libmpg123/layer2.c +371 -0
- data/mpg123/src/libmpg123/layer3.c +2053 -0
- data/mpg123/src/libmpg123/lfs_alias.c +252 -0
- data/mpg123/src/libmpg123/lfs_wrap.c +751 -0
- data/mpg123/src/libmpg123/libmpg123.c +1607 -0
- data/mpg123/src/libmpg123/mangle.h +74 -0
- data/mpg123/src/libmpg123/mpeghead.h +87 -0
- data/mpg123/src/libmpg123/mpg123.h.in +1075 -0
- data/mpg123/src/libmpg123/mpg123lib_intern.h +338 -0
- data/mpg123/src/libmpg123/ntom.c +148 -0
- data/mpg123/src/libmpg123/optimize.c +964 -0
- data/mpg123/src/libmpg123/optimize.h +219 -0
- data/mpg123/src/libmpg123/parse.c +1179 -0
- data/mpg123/src/libmpg123/parse.h +25 -0
- data/mpg123/src/libmpg123/reader.h +137 -0
- data/mpg123/src/libmpg123/readers.c +1235 -0
- data/mpg123/src/libmpg123/sample.h +152 -0
- data/mpg123/src/libmpg123/stringbuf.c +163 -0
- data/mpg123/src/libmpg123/synth.c +816 -0
- data/mpg123/src/libmpg123/synth.h +196 -0
- data/mpg123/src/libmpg123/synth_3dnow.S +318 -0
- data/mpg123/src/libmpg123/synth_3dnowext.S +6 -0
- data/mpg123/src/libmpg123/synth_8bit.c +142 -0
- data/mpg123/src/libmpg123/synth_8bit.h +86 -0
- data/mpg123/src/libmpg123/synth_altivec.c +1057 -0
- data/mpg123/src/libmpg123/synth_arm.S +271 -0
- data/mpg123/src/libmpg123/synth_arm_accurate.S +287 -0
- data/mpg123/src/libmpg123/synth_i486.c +252 -0
- data/mpg123/src/libmpg123/synth_i586.S +336 -0
- data/mpg123/src/libmpg123/synth_i586_dither.S +375 -0
- data/mpg123/src/libmpg123/synth_mmx.S +125 -0
- data/mpg123/src/libmpg123/synth_mono.h +64 -0
- data/mpg123/src/libmpg123/synth_neon.S +123 -0
- data/mpg123/src/libmpg123/synth_neon_accurate.S +173 -0
- data/mpg123/src/libmpg123/synth_neon_float.S +149 -0
- data/mpg123/src/libmpg123/synth_neon_s32.S +168 -0
- data/mpg123/src/libmpg123/synth_ntom.h +213 -0
- data/mpg123/src/libmpg123/synth_real.c +404 -0
- data/mpg123/src/libmpg123/synth_s32.c +411 -0
- data/mpg123/src/libmpg123/synth_sse.S +6 -0
- data/mpg123/src/libmpg123/synth_sse3d.h +246 -0
- data/mpg123/src/libmpg123/synth_sse_accurate.S +294 -0
- data/mpg123/src/libmpg123/synth_sse_float.S +241 -0
- data/mpg123/src/libmpg123/synth_sse_s32.S +306 -0
- data/mpg123/src/libmpg123/synth_stereo_neon.S +175 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_accurate.S +262 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_float.S +220 -0
- data/mpg123/src/libmpg123/synth_stereo_neon_s32.S +247 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_accurate.S +508 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_float.S +416 -0
- data/mpg123/src/libmpg123/synth_stereo_sse_s32.S +540 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64.S +335 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_accurate.S +454 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_float.S +396 -0
- data/mpg123/src/libmpg123/synth_stereo_x86_64_s32.S +473 -0
- data/mpg123/src/libmpg123/synth_x86_64.S +244 -0
- data/mpg123/src/libmpg123/synth_x86_64_accurate.S +301 -0
- data/mpg123/src/libmpg123/synth_x86_64_float.S +259 -0
- data/mpg123/src/libmpg123/synth_x86_64_s32.S +312 -0
- data/mpg123/src/libmpg123/synths.h +52 -0
- data/mpg123/src/libmpg123/tabinit.c +294 -0
- data/mpg123/src/libmpg123/tabinit_mmx.S +210 -0
- data/mpg123/src/libmpg123/testcpu.c +35 -0
- data/mpg123/src/libmpg123/true.h +14 -0
- data/mpg123/src/local.c +63 -0
- data/mpg123/src/local.h +21 -0
- data/mpg123/src/metaprint.c +373 -0
- data/mpg123/src/metaprint.h +17 -0
- data/mpg123/src/module.c +306 -0
- data/mpg123/src/module.h +48 -0
- data/mpg123/src/mpg123.c +1405 -0
- data/mpg123/src/mpg123app.h +171 -0
- data/mpg123/src/output/Makefile.am +213 -0
- data/mpg123/src/output/Makefile.in +1238 -0
- data/mpg123/src/output/aix.c +300 -0
- data/mpg123/src/output/alib.c +209 -0
- data/mpg123/src/output/alsa.c +297 -0
- data/mpg123/src/output/arts.c +117 -0
- data/mpg123/src/output/coreaudio.c +370 -0
- data/mpg123/src/output/dummy.c +78 -0
- data/mpg123/src/output/esd.c +167 -0
- data/mpg123/src/output/hp.c +184 -0
- data/mpg123/src/output/jack.c +450 -0
- data/mpg123/src/output/mint.c +197 -0
- data/mpg123/src/output/nas.c +335 -0
- data/mpg123/src/output/openal.c +197 -0
- data/mpg123/src/output/os2.c +665 -0
- data/mpg123/src/output/oss.c +319 -0
- data/mpg123/src/output/portaudio.c +255 -0
- data/mpg123/src/output/pulse.c +164 -0
- data/mpg123/src/output/sdl.c +206 -0
- data/mpg123/src/output/sgi.c +213 -0
- data/mpg123/src/output/sndio.c +161 -0
- data/mpg123/src/output/sun.c +281 -0
- data/mpg123/src/output/win32.c +229 -0
- data/mpg123/src/playlist.c +596 -0
- data/mpg123/src/playlist.h +52 -0
- data/mpg123/src/resolver.c +319 -0
- data/mpg123/src/resolver.h +25 -0
- data/mpg123/src/sfifo.c +146 -0
- data/mpg123/src/sfifo.h +95 -0
- data/mpg123/src/streamdump.c +74 -0
- data/mpg123/src/streamdump.h +20 -0
- data/mpg123/src/term.c +479 -0
- data/mpg123/src/term.h +81 -0
- data/mpg123/src/tests/noise.c +52 -0
- data/mpg123/src/tests/plain_id3.c +109 -0
- data/mpg123/src/tests/seek_accuracy.c +261 -0
- data/mpg123/src/tests/seek_whence.c +56 -0
- data/mpg123/src/tests/testtext.h +34 -0
- data/mpg123/src/tests/text.c +80 -0
- data/mpg123/src/wav.c +464 -0
- data/mpg123/src/wavhead.h +68 -0
- data/mpg123/src/win32_net.c +599 -0
- data/mpg123/src/win32_support.c +191 -0
- data/mpg123/src/win32_support.h +152 -0
- data/mpg123/src/xfermem.c +321 -0
- data/mpg123/src/xfermem.h +74 -0
- data/mpg123/windows-builds.sh +137 -0
- data/msvc/lib/OpenAL32.lib +0 -0
- data/spec/fixtures/heal.ogg +0 -0
- data/spec/fixtures/tone_up.wav +0 -0
- data/spec/seal/buffer_spec.rb +37 -0
- data/spec/seal/core_spec.rb +29 -0
- data/spec/seal/effect_slot_spec.rb +38 -0
- data/spec/seal/listener_spec.rb +33 -0
- data/spec/seal/reverb_spec.rb +51 -0
- data/spec/seal/source_spec.rb +370 -0
- data/spec/seal/stream_spec.rb +38 -0
- data/spec/spec_helper.rb +45 -0
- data/spec/support/attribute_examples.rb +75 -0
- data/spec/support/audio_object_with_format.rb +27 -0
- data/spec/support/movable_object.rb +22 -0
- data/src/libogg/bitwise.c +857 -0
- data/src/libogg/framing.c +2093 -0
- data/src/libvorbis/backends.h +144 -0
- data/src/libvorbis/bitrate.c +253 -0
- data/src/libvorbis/bitrate.h +59 -0
- data/src/libvorbis/block.c +1046 -0
- data/src/libvorbis/codebook.c +484 -0
- data/src/libvorbis/codebook.h +119 -0
- data/src/libvorbis/codec_internal.h +167 -0
- data/src/libvorbis/envelope.c +375 -0
- data/src/libvorbis/envelope.h +80 -0
- data/src/libvorbis/floor0.c +221 -0
- data/src/libvorbis/floor1.c +1100 -0
- data/src/libvorbis/highlevel.h +58 -0
- data/src/libvorbis/info.c +668 -0
- data/src/libvorbis/lookup.c +94 -0
- data/src/libvorbis/lookup.h +32 -0
- data/src/libvorbis/lookup_data.h +192 -0
- data/src/libvorbis/lpc.c +160 -0
- data/src/libvorbis/lpc.h +29 -0
- data/src/libvorbis/lsp.c +456 -0
- data/src/libvorbis/lsp.h +28 -0
- data/src/libvorbis/mapping0.c +816 -0
- data/src/libvorbis/masking.h +785 -0
- data/src/libvorbis/mdct.c +563 -0
- data/src/libvorbis/mdct.h +71 -0
- data/src/libvorbis/misc.h +57 -0
- data/src/libvorbis/os.h +186 -0
- data/src/libvorbis/psy.c +1206 -0
- data/src/libvorbis/psy.h +154 -0
- data/src/libvorbis/registry.c +45 -0
- data/src/libvorbis/registry.h +32 -0
- data/src/libvorbis/res0.c +889 -0
- data/src/libvorbis/scales.h +90 -0
- data/src/libvorbis/sharedbook.c +579 -0
- data/src/libvorbis/smallft.c +1255 -0
- data/src/libvorbis/smallft.h +34 -0
- data/src/libvorbis/synthesis.c +184 -0
- data/src/libvorbis/vorbisfile.c +2337 -0
- data/src/libvorbis/window.c +2135 -0
- data/src/libvorbis/window.h +26 -0
- data/src/rubyext.c +2329 -0
- data/src/seal/buf.c +124 -0
- data/src/seal/core.c +283 -0
- data/src/seal/efs.c +74 -0
- data/src/seal/err.c +118 -0
- data/src/seal/fmt.c +86 -0
- data/src/seal/listener.c +111 -0
- data/src/seal/mpg.c +174 -0
- data/src/seal/mpg.h +24 -0
- data/src/seal/ov.c +180 -0
- data/src/seal/ov.h +22 -0
- data/src/seal/raw.c +59 -0
- data/src/seal/reader.c +102 -0
- data/src/seal/reader.h +59 -0
- data/src/seal/rvb.c +368 -0
- data/src/seal/src.c +654 -0
- data/src/seal/stream.c +109 -0
- data/src/seal/threading.c +66 -0
- data/src/seal/threading.h +20 -0
- data/src/seal/wav.c +297 -0
- data/src/seal/wav.h +23 -0
- data/src/win32api.rb +29 -0
- 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
|
data/include/ogg/ogg.h
ADDED
@@ -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 */
|
data/include/seal.h
ADDED
@@ -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_ */
|
data/include/seal/buf.h
ADDED
@@ -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_ */
|