20 #ifndef __JackAudioAdapterInterface__
21 #define __JackAudioAdapterInterface__
23 #include "JackResampler.h"
24 #include "JackFilters.h"
32 #define TABLE_MAX 100000
48 Measure fTable[TABLE_MAX];
51 MeasureTable() :fCount(0)
54 void Write(
int time1,
int time2,
float r1,
float r2,
int pos1,
int pos2);
55 void Save(
unsigned int fHostBufferSize,
unsigned int fHostSampleRate,
unsigned int fAdaptedSampleRate,
unsigned int fAdaptedBufferSize);
75 int fPlaybackChannels;
78 jack_nframes_t fHostBufferSize;
79 jack_nframes_t fHostSampleRate;
82 jack_nframes_t fAdaptedBufferSize;
83 jack_nframes_t fAdaptedSampleRate;
91 unsigned int fQuality;
92 unsigned int fRingbufferCurSize;
93 jack_time_t fPullAndPushTime;
98 void ResetRingBuffers();
99 void AdaptRingBufferSize();
100 void GrowRingBufferSize();
104 JackAudioAdapterInterface(jack_nframes_t buffer_size, jack_nframes_t sample_rate, jack_nframes_t ring_buffer_size = DEFAULT_ADAPTATIVE_SIZE):
106 fPlaybackChannels(0),
107 fHostBufferSize(buffer_size),
108 fHostSampleRate(sample_rate),
109 fAdaptedBufferSize(buffer_size),
110 fAdaptedSampleRate(sample_rate),
111 fPIControler(sample_rate / sample_rate, 256),
112 fCaptureRingBuffer(NULL), fPlaybackRingBuffer(NULL),
114 fRingbufferCurSize(ring_buffer_size),
121 jack_nframes_t host_sample_rate,
122 jack_nframes_t adapted_buffer_size,
123 jack_nframes_t adapted_sample_rate,
124 jack_nframes_t ring_buffer_size = DEFAULT_ADAPTATIVE_SIZE) :
126 fPlaybackChannels(0),
127 fHostBufferSize(host_buffer_size),
128 fHostSampleRate(host_sample_rate),
129 fAdaptedBufferSize(adapted_buffer_size),
130 fAdaptedSampleRate(adapted_sample_rate),
131 fPIControler(host_sample_rate / host_sample_rate, 256),
133 fRingbufferCurSize(ring_buffer_size),
142 virtual void Reset();
144 virtual void Create();
145 virtual void Destroy();
157 virtual int SetHostBufferSize(jack_nframes_t buffer_size);
158 virtual int SetAdaptedBufferSize(jack_nframes_t buffer_size);
159 virtual int SetBufferSize(jack_nframes_t buffer_size);
160 virtual int SetHostSampleRate(jack_nframes_t sample_rate);
161 virtual int SetAdaptedSampleRate(jack_nframes_t sample_rate);
162 virtual int SetSampleRate(jack_nframes_t sample_rate);
163 void SetInputs(
int inputs);
164 void SetOutputs(
int outputs);
168 virtual int GetInputLatency(
int port_index) {
return 0; }
169 virtual int GetOutputLatency(
int port_index) {
return 0; }
171 int PushAndPull(jack_default_audio_sample_t** inputBuffer, jack_default_audio_sample_t** outputBuffer,
unsigned int frames);
172 int PullAndPush(jack_default_audio_sample_t** inputBuffer, jack_default_audio_sample_t** outputBuffer,
unsigned int frames);
Base class for Resampler.
Base class for audio adapters.