comparison audioio/BufferingAudioCallbackRecordTarget.cpp @ 2:b8f6bbf172e7

...
author cannam
date Fri, 20 Oct 2006 15:32:33 +0000
parents a6020bf991cd
children 7fc28f7a935a
comparison
equal deleted inserted replaced
1:4342352b8ef3 2:b8f6bbf172e7
8 m_sourceBlockSize(0), 8 m_sourceBlockSize(0),
9 m_sourceSampleRate(0), 9 m_sourceSampleRate(0),
10 m_sourceRecordLatency(0) 10 m_sourceRecordLatency(0)
11 { 11 {
12 for (size_t c = 0; c < getChannelCount(); ++c) { 12 for (size_t c = 0; c < getChannelCount(); ++c) {
13 m_buffers.push_back(new RingBuffer<float>(RING_BUFFER_SIZE)); 13 m_buffers.push_back(new RingBuffer<float, MAX_DISTINCT_STEP_SIZES>
14 (RING_BUFFER_SIZE));
14 } 15 }
15 } 16 }
16 17
17 BufferingAudioCallbackRecordTarget::~BufferingAudioCallbackRecordTarget() 18 BufferingAudioCallbackRecordTarget::~BufferingAudioCallbackRecordTarget()
18 { 19 {
32 } 33 }
33 } 34 }
34 } 35 }
35 36
36 size_t 37 size_t
37 BufferingAudioCallbackRecordTarget::samplesReady() const 38 BufferingAudioCallbackRecordTarget::samplesReady(int reader) const
38 { 39 {
39 size_t ready = 0; 40 size_t ready = 0;
40 for (size_t c = 0; c < getChannelCount(); ++c) { 41 for (size_t c = 0; c < getChannelCount(); ++c) {
41 size_t readyHere = m_buffers[c]->getReadSpace(); 42 size_t readyHere = m_buffers[c]->getReadSpace(reader);
42 if (c == 0 || readyHere < ready) ready = readyHere; 43 if (c == 0 || readyHere < ready) ready = readyHere;
43 } 44 }
44 return ready; 45 return ready;
45 } 46 }
46 47
47 size_t 48 size_t
48 BufferingAudioCallbackRecordTarget::getSamples(size_t channel, size_t nframes, 49 BufferingAudioCallbackRecordTarget::getSamples(size_t channel, size_t nframes,
49 float *samples) 50 float *samples, int reader)
50 { 51 {
51 return m_buffers[channel]->read(samples, nframes); 52 return m_buffers[channel]->read(samples, nframes, reader);
52 } 53 }
53 54
55 size_t
56 BufferingAudioCallbackRecordTarget::peekSamples(size_t channel, size_t nframes,
57 float *samples, int reader)
58 {
59 return m_buffers[channel]->peek(samples, nframes, reader);
60 }
54 61
62 size_t
63 BufferingAudioCallbackRecordTarget::skipSamples(size_t channel, size_t nframes,
64 int reader)
65 {
66 return m_buffers[channel]->skip(nframes, reader);
67 }
68