FLACPushDecoder.h

Go to the documentation of this file.
00001 #pragma once
00002 #include <libOOOgg/dllstuff.h>
00003 #include <libOOOgg/StampedOggPacket.h>
00004 #include <libOOOgg/OggPacket.h>
00005 #include "FLAC++/decoder.h"
00006 using namespace FLAC::Decoder;
00007 class FLACPushDecoder
00008         :       protected Stream
00009 {
00010 public:
00011         FLACPushDecoder(void);
00012         virtual ~FLACPushDecoder(void);
00013 
00014         StampedOggPacket* decodeFLAC(OggPacket* inPacket);
00015         bool acceptMetadata(OggPacket* inPacket);
00016 
00017         void initCodec();
00018         void flushCodec();
00019         //Probably shouldn't be public... but who cares for now.
00020         unsigned long mNumChannels;
00021         unsigned long mFrameSize;
00022         unsigned long mSampleRate;
00023 protected:
00024         static const int SIZE_16_BITS = 2;
00025         //Virtuals frmo FLAC decoder
00026         virtual ::FLAC__StreamDecoderReadStatus read_callback(FLAC__byte buffer[], unsigned *bytes);
00027         virtual ::FLAC__StreamDecoderWriteStatus write_callback(const ::FLAC__Frame *frame, const FLAC__int32 * const buffer[]);
00028         virtual void metadata_callback(const ::FLAC__StreamMetadata *metadata);
00029         virtual void error_callback(::FLAC__StreamDecoderErrorStatus status);
00030 
00031         OggPacket* mInPacket;
00032         StampedOggPacket* mOutPacket;
00033         bool mBegun;
00034         bool mGotMetaData;
00035         
00036 };

Generated on Tue Feb 15 14:54:15 2005 for oggdsf by  doxygen 1.3.9