cannam@0
|
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
|
cannam@0
|
2
|
cannam@0
|
3 #ifndef _BUFFERING_AUDIO_CALLBACK_RECORD_TARGET_H_
|
cannam@0
|
4 #define _BUFFERING_AUDIO_CALLBACK_RECORD_TARGET_H_
|
cannam@0
|
5
|
cannam@0
|
6 #include "AudioCallbackRecordTarget.h"
|
cannam@0
|
7 #include "base/RingBuffer.h"
|
cannam@0
|
8
|
cannam@0
|
9 class BufferingAudioCallbackRecordTarget : public AudioCallbackRecordTarget
|
cannam@0
|
10 {
|
cannam@0
|
11 public:
|
cannam@0
|
12 BufferingAudioCallbackRecordTarget();
|
cannam@0
|
13 virtual ~BufferingAudioCallbackRecordTarget();
|
cannam@0
|
14
|
cannam@0
|
15 virtual size_t getPreferredSampleRate() const { return 0; }
|
cannam@0
|
16 virtual size_t getChannelCount() const { return 2; }
|
cannam@0
|
17
|
cannam@0
|
18 virtual void setSourceBlockSize(size_t bs) { m_sourceBlockSize = bs; }
|
cannam@0
|
19 virtual void setSourceSampleRate(size_t sr) { m_sourceSampleRate = sr; }
|
cannam@0
|
20 virtual void setSourceRecordLatency(size_t rl) { m_sourceRecordLatency = rl; }
|
cannam@0
|
21
|
cannam@0
|
22 size_t getSourceBlockSize() const { return m_sourceBlockSize; }
|
cannam@0
|
23 size_t getSourceSampleRate() const { return m_sourceSampleRate; }
|
cannam@0
|
24 size_t getSourceRecordLatency() const { return m_sourceRecordLatency; }
|
cannam@0
|
25
|
cannam@0
|
26 virtual void putSamples(size_t nframes, float **samples);
|
cannam@0
|
27
|
cannam@0
|
28 virtual size_t samplesReady() const;
|
cannam@0
|
29 virtual size_t getSamples(size_t channel, size_t nframes, float *samples);
|
cannam@0
|
30
|
cannam@0
|
31 virtual void setInputLevels(float, float) { }
|
cannam@0
|
32
|
cannam@0
|
33 virtual void audioProcessingOverload() { }
|
cannam@0
|
34
|
cannam@0
|
35 protected:
|
cannam@0
|
36 std::vector<RingBuffer<float> *> m_buffers;
|
cannam@0
|
37
|
cannam@0
|
38 size_t m_sourceBlockSize;
|
cannam@0
|
39 size_t m_sourceSampleRate;
|
cannam@0
|
40 size_t m_sourceRecordLatency;
|
cannam@0
|
41 };
|
cannam@0
|
42
|
cannam@0
|
43 #endif
|
cannam@0
|
44
|