diff options
author | David Robillard <d@drobilla.net> | 2006-06-21 03:27:16 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2006-06-21 03:27:16 +0000 |
commit | a603f4a917bd5a7d806ff8394e2bfbe0f64acc64 (patch) | |
tree | cb2fe94e1bb08c8d603918bf94d8ee362e98d4eb /src/libs/engine/Buffer.cpp | |
parent | 032d526710d174b30e0c9f33ff9f7e60e99fb172 (diff) | |
download | ingen-a603f4a917bd5a7d806ff8394e2bfbe0f64acc64.tar.gz ingen-a603f4a917bd5a7d806ff8394e2bfbe0f64acc64.tar.bz2 ingen-a603f4a917bd5a7d806ff8394e2bfbe0f64acc64.zip |
Got the audio flowing
git-svn-id: http://svn.drobilla.net/lad/grauph@70 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/engine/Buffer.cpp')
-rw-r--r-- | src/libs/engine/Buffer.cpp | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/src/libs/engine/Buffer.cpp b/src/libs/engine/Buffer.cpp index 4e94a943..9d88f806 100644 --- a/src/libs/engine/Buffer.cpp +++ b/src/libs/engine/Buffer.cpp @@ -180,7 +180,7 @@ Buffer<T>::copy(const Buffer<T>* src, size_t start_sample, size_t end_sample) assert(src->data() != NULL); assert(m_data != NULL); - const T* const src_data = src->data(); + register const T* const src_data = src->data(); for (size_t i=start_sample; i <= end_sample; ++i) m_data[i] = src_data[i]; @@ -205,7 +205,7 @@ Buffer<T>::accumulate(const Buffer<T>* const src, size_t start_sample, size_t en assert(src->data() != NULL); assert(m_data != NULL); - const T* const src_data = src->data(); + register const T* const src_data = src->data(); for (size_t i=start_sample; i <= end_sample; ++i) m_data[i] += src_data[i]; @@ -267,8 +267,30 @@ Buffer<sample>::prepare(samplecount nframes) } -////// DriverBuffer //////// +template<> +void +Buffer<MidiMessage>::prepare(samplecount nframes) +{ +} + + +/** Set the buffer (data) used. + * + * This is only to be used by Drivers (to provide zero-copy processing). + */ +template<typename T> +void +Buffer<T>::set_data(T* data) +{ + assert(!m_is_joined); + m_data = data; +} +template void Buffer<sample>::set_data(sample* data); +template void Buffer<MidiMessage>::set_data(MidiMessage* data); + +////// DriverBuffer //////// +#if 0 template <typename T> DriverBuffer<T>::DriverBuffer(size_t size) : Buffer<T>(size) @@ -293,6 +315,6 @@ DriverBuffer<T>::set_data(T* data) } template void DriverBuffer<sample>::set_data(sample* data); template void DriverBuffer<MidiMessage>::set_data(MidiMessage* data); - +#endif } // namespace Om |