Mercurial > hg > vamp-live-host
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 |