00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #if !defined(__INCLUDE_SoundBufferDynamicOVh_INCLUDE__)
00022 #define __INCLUDE_SoundBufferDynamicOVh_INCLUDE__
00023
00024 #ifdef HAVE_OGG
00025
00026 #include <sound/SoundBuffer.h>
00027 #ifdef __DARWIN__
00028 #include <OpenAL/al.h>
00029 #else
00030 #include <AL/al.h>
00031 #endif
00032 #include <ogg/ogg.h>
00033 #include <vorbis/codec.h>
00034 #include <vorbis/vorbisfile.h>
00035
00036 class SoundBufferDynamicOVSourceInstance : public SoundBufferSourceInstance
00037 {
00038 public:
00039 SoundBufferDynamicOVSourceInstance(
00040 unsigned int source, const char *fileName);
00041 virtual ~SoundBufferDynamicOVSourceInstance();
00042
00043 virtual void play(bool loop);
00044 virtual void stop();
00045 virtual void simulate(bool loop);
00046
00047 protected:
00048 unsigned int buffers_[2];
00049 ALenum format_;
00050 OggVorbis_File oggStream_;
00051 vorbis_info *vorbisInfo_;
00052
00053 bool addDataToBuffer(unsigned int buffer, bool loop);
00054 };
00055
00056 #endif // HAVEOGG
00057
00058 #endif // __INCLUDE_SoundBufferDynamicOVh_INCLUDE__