annotate audioio/BufferingAudioCallbackRecordTarget.h @ 17:3cbd40805795 tip

Remove obsolete stuff from README
author Chris Cannam
date Tue, 03 Dec 2013 16:33:08 +0000
parents dbbd2b473eee
children
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"
Chris@16 7 #include "RingBuffer.h"
cannam@0 8
cannam@2 9 #define MAX_DISTINCT_STEP_SIZES 16
cannam@2 10
cannam@0 11 class BufferingAudioCallbackRecordTarget : public AudioCallbackRecordTarget
cannam@0 12 {
cannam@0 13 public:
cannam@0 14 BufferingAudioCallbackRecordTarget();
cannam@0 15 virtual ~BufferingAudioCallbackRecordTarget();
cannam@0 16
cannam@0 17 virtual size_t getPreferredSampleRate() const { return 0; }
cannam@0 18 virtual size_t getChannelCount() const { return 2; }
cannam@0 19
cannam@0 20 virtual void setSourceBlockSize(size_t bs) { m_sourceBlockSize = bs; }
cannam@0 21 virtual void setSourceSampleRate(size_t sr) { m_sourceSampleRate = sr; }
cannam@0 22 virtual void setSourceRecordLatency(size_t rl) { m_sourceRecordLatency = rl; }
cannam@0 23
cannam@0 24 size_t getSourceBlockSize() const { return m_sourceBlockSize; }
cannam@0 25 size_t getSourceSampleRate() const { return m_sourceSampleRate; }
cannam@0 26 size_t getSourceRecordLatency() const { return m_sourceRecordLatency; }
cannam@0 27
cannam@0 28 virtual void putSamples(size_t nframes, float **samples);
cannam@0 29
cannam@2 30 virtual size_t samplesReady(int reader = 0) const;
cannam@2 31 virtual size_t getSamples(size_t channel, size_t nframes, float *samples,
cannam@2 32 int reader = 0);
cannam@2 33 virtual size_t peekSamples(size_t channel, size_t nframes, float *samples,
cannam@2 34 int reader = 0);
cannam@2 35 virtual size_t skipSamples(size_t channel, size_t nframes, int reader = 0);
cannam@5 36 virtual size_t skipAllSamples(size_t channel, int reader = 0);
cannam@0 37
cannam@0 38 virtual void setInputLevels(float, float) { }
cannam@0 39
cannam@0 40 virtual void audioProcessingOverload() { }
cannam@0 41
cannam@0 42 protected:
cannam@2 43 std::vector<RingBuffer<float, MAX_DISTINCT_STEP_SIZES> *> m_buffers;
cannam@0 44
cannam@0 45 size_t m_sourceBlockSize;
cannam@0 46 size_t m_sourceSampleRate;
cannam@0 47 size_t m_sourceRecordLatency;
cannam@0 48 };
cannam@0 49
cannam@0 50 #endif
cannam@0 51