00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef RESAMPLER_H
00023 #define RESAMPLER_H
00024
00025 #include "defines.h"
00026 #include <samplerate.h>
00027
00028
00029 class Resampler : public QObject
00030 {
00031 public :
00032 Resampler();
00033 ~Resampler();
00034
00035 void set_output_rate(uint rate);
00036 void set_input_rate(uint rate);
00037
00038 void set_input_buffer(audio_sample_t* buffer);
00039 void set_output_buffer(audio_sample_t* buffer);
00040
00041 int set_converter_type(int converter_type);
00042 int process(nframes_t frames);
00043 int prepare_process(nframes_t fileCnt);
00044
00045 void reset();
00046 void clear_buffers();
00047
00048 private:
00049
00050 SRC_STATE* m_srcState;
00051 SRC_DATA m_srcData;
00052 audio_sample_t* m_overflowBuffer;
00053 audio_sample_t* m_inputBuffer;
00054 audio_sample_t* m_outputBuffer;
00055 long m_overflowUsed;
00056 uint m_outputRate;
00057 uint m_inputRate;
00058 bool m_isResampleAvailable;
00059 nframes_t m_readExtraFrames;
00060 nframes_t bufferUsed;
00061 nframes_t framesRead;
00062 };
00063
00064
00065
00066 #endif