00001
00002
00003
00004
00005
00006
00007
00008
#ifndef __WVAUDIOENCODER_H
00009
#define __WVAUDIOENCODER_H
00010
00011
#include "wvtypedencoder.h"
00012
00013
00014
00015
00016
00017 class WvAudioEncoder :
public WvTypedEncoder<float, unsigned char>
00018 {
00019
public:
00020
00021
00022
00023
00024
00025
virtual unsigned int channels()
const = 0;
00026
00027
00028
00029
00030
00031
virtual size_t
samplesperframe()
const = 0;
00032 };
00033
00034
00035 class WvAudioDecoder :
public WvTypedEncoder<unsigned char, float>
00036 {
00037
public:
00038
00039
00040
00041
00042
00043
virtual unsigned int channels()
const = 0;
00044
00045
00046
00047
00048
00049
virtual size_t
samplesperframe()
const = 0;
00050
00051
00052
00053
00054
00055
00056
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