Mercurial > hg > vamp-plugin-sdk
changeset 104:08d8c8ee6097
* implement reset() in PluginBufferingAdapter
author | cannam |
---|---|
date | Thu, 31 Jan 2008 09:24:47 +0000 |
parents | 2cb46126ef59 |
children | 92997b6cef48 |
files | vamp-sdk/hostext/PluginBufferingAdapter.cpp vamp-sdk/hostext/PluginBufferingAdapter.h |
diffstat | 2 files changed, 30 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/vamp-sdk/hostext/PluginBufferingAdapter.cpp Tue Jan 29 16:13:22 2008 +0000 +++ b/vamp-sdk/hostext/PluginBufferingAdapter.cpp Thu Jan 31 09:24:47 2008 +0000 @@ -57,6 +57,8 @@ OutputList getOutputDescriptors() const; + void reset(); + FeatureSet process(const float *const *inputBuffers, RealTime timestamp); FeatureSet getRemainingFeatures(); @@ -225,7 +227,8 @@ vector<RingBuffer *> m_queue; float **m_buffers; float m_inputSampleRate; - RealTime m_timestamp; + RealTime m_timestamp; + bool m_unrun; OutputList m_outputs; void processBlock(FeatureSet& allFeatureSets, RealTime timestamp); @@ -253,6 +256,12 @@ { return m_impl->getOutputDescriptors(); } + +void +PluginBufferingAdapter::reset() +{ + m_impl->reset(); +} PluginBufferingAdapter::FeatureSet PluginBufferingAdapter::process(const float *const *inputBuffers, @@ -277,7 +286,8 @@ m_queue(0), m_buffers(0), m_inputSampleRate(inputSampleRate), - m_timestamp() + m_timestamp(RealTime::zeroTime), + m_unrun(true) { m_outputs = plugin->getOutputDescriptors(); } @@ -365,11 +375,27 @@ return outs; } +void +PluginBufferingAdapter::Impl::reset() +{ + m_timestamp = RealTime::zeroTime; + m_unrun = true; + + for (size_t i = 0; i < m_queue.size(); ++i) { + m_queue[i]->reset(); + } +} + PluginBufferingAdapter::FeatureSet PluginBufferingAdapter::Impl::process(const float *const *inputBuffers, RealTime timestamp) { FeatureSet allFeatureSets; + + if (m_unrun) { + m_timestamp = timestamp; + m_unrun = false; + } // queue the new input
--- a/vamp-sdk/hostext/PluginBufferingAdapter.h Tue Jan 29 16:13:22 2008 +0000 +++ b/vamp-sdk/hostext/PluginBufferingAdapter.h Thu Jan 31 09:24:47 2008 +0000 @@ -81,6 +81,8 @@ OutputList getOutputDescriptors() const; + void reset(); + FeatureSet process(const float *const *inputBuffers, RealTime timestamp); FeatureSet getRemainingFeatures();