annotate audioio/BufferingAudioCallbackRecordTarget.h @ 0:a6020bf991cd

* Initial import of what may or may not become a simple live visual-response host for causal Vamp plugins
author cannam
date Thu, 19 Oct 2006 16:53:48 +0000
parents
children b8f6bbf172e7
rev   line source
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