00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackResampler__
00021 #define __JackResampler__
00022
00023 #include "ringbuffer.h"
00024 #include "JackError.h"
00025
00026 namespace Jack
00027 {
00028
00029 #define DEFAULT_RB_SIZE 16384 * 2
00030
00035 class JackResampler
00036 {
00037
00038 protected:
00039
00040 jack_ringbuffer_t* fRingBuffer;
00041 unsigned int fNum;
00042 unsigned int fDenom;
00043
00044 public:
00045
00046 JackResampler();
00047 virtual ~JackResampler();
00048
00049 virtual void Reset();
00050
00051 virtual unsigned int ReadResample(float* buffer, unsigned int frames);
00052 virtual unsigned int WriteResample(float* buffer, unsigned int frames);
00053
00054 virtual unsigned int Read(float* buffer, unsigned int frames);
00055 virtual unsigned int Write(float* buffer, unsigned int frames);
00056
00057 virtual unsigned int ReadSpace();
00058 virtual unsigned int WriteSpace();
00059
00060 virtual void SetRatio(unsigned int num, unsigned int denom)
00061 {
00062 fNum = num;
00063 fDenom = denom;
00064 }
00065 virtual void GetRatio(unsigned int& num, unsigned int& denom)
00066 {
00067 num = fNum;
00068 denom = fDenom;
00069 }
00070
00071 };
00072 }
00073
00074 #endif