00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __WVAUDIOENCODER_H
00009 #define __WVAUDIOENCODER_H
00010
00011 #include "wvtypedencoder.h"
00012
00017 class WvAudioEncoder : public WvTypedEncoder<float, unsigned char>
00018 {
00019 public:
00020
00025 virtual unsigned int channels() const = 0;
00026
00031 virtual size_t samplesperframe() const = 0;
00032 };
00033
00034
00035 class WvAudioDecoder : public WvTypedEncoder<unsigned char, float>
00036 {
00037 public:
00038
00043 virtual unsigned int channels() const = 0;
00044
00049 virtual size_t samplesperframe() const = 0;
00050
00057 virtual bool missing(OBuffer &outbuf) = 0;
00058 };
00059
00060
00061 class WvSimpleAudioEncoder : public WvAudioEncoder
00062 {
00063 public:
00064
00065 WvSimpleAudioEncoder(unsigned int channels, unsigned int samplerate);
00066
00067 virtual unsigned int channels() const { return _channels; }
00068
00069 virtual size_t samplesperframe() const { return _samplesperframe; }
00070
00071 protected:
00072
00073 virtual bool _typedencode(IBuffer &inbuf, OBuffer &outbuf, bool flush);
00074
00075 virtual bool _typedfinish(OBuffer &outbuf);
00076
00077 private:
00078
00079 unsigned int _channels;
00080 size_t _samplesperframe;
00081 };
00082
00083
00084 class WvSimpleAudioDecoder : public WvAudioDecoder
00085 {
00086 public:
00087
00088 WvSimpleAudioDecoder(unsigned int channels, unsigned int samplerate);
00089
00090 virtual unsigned int channels() const { return _channels; }
00091
00092 virtual size_t samplesperframe() const { return _samplesperframe; }
00093
00094 virtual bool missing(OBuffer &outbuf) { return false; }
00095
00096 protected:
00097
00098 virtual bool _typedencode(IBuffer &inbuf, OBuffer &outbuf, bool flush);
00099
00100 virtual bool _typedfinish(OBuffer &outbuf);
00101
00102 private:
00103
00104 unsigned int _channels;
00105 size_t _samplesperframe;
00106 };
00107
00108
00109 #endif // __WVAUDIOENCODER_H