# HG changeset patch # User Chris Cannam # Date 1512998531 0 # Node ID 4a86f866bb6bea4fd2d749396021a3ca10c82de6 # Parent 8ede825a54f686380ffb9ab3054fcabaab409e67 The PluginRateExtractor hack was exploiting undefined behaviour. Let's just give in and make that API official diff -r 8ede825a54f6 -r 4a86f866bb6b src/vamp-hostsdk/PluginWrapper.cpp --- a/src/vamp-hostsdk/PluginWrapper.cpp Mon Dec 11 09:27:57 2017 +0000 +++ b/src/vamp-hostsdk/PluginWrapper.cpp Mon Dec 11 13:22:11 2017 +0000 @@ -42,15 +42,8 @@ namespace HostExt { -class PluginRateExtractor : public Plugin -{ -public: - PluginRateExtractor() : Plugin(0) { } - float getRate() const { return m_inputSampleRate; } -}; - PluginWrapper::PluginWrapper(Plugin *plugin) : - Plugin(((PluginRateExtractor *)plugin)->getRate()), + Plugin(plugin->getInputSampleRate()), m_plugin(plugin) { } diff -r 8ede825a54f6 -r 4a86f866bb6b vamp-sdk/Plugin.h --- a/vamp-sdk/Plugin.h Mon Dec 11 09:27:57 2017 +0000 +++ b/vamp-sdk/Plugin.h Mon Dec 11 13:22:11 2017 +0000 @@ -437,6 +437,11 @@ */ virtual std::string getType() const { return "Feature Extraction Plugin"; } + /** + * Retrieve the input sample rate set on construction. + */ + float getInputSampleRate() const { return m_inputSampleRate; } + protected: Plugin(float inputSampleRate) : m_inputSampleRate(inputSampleRate) { }