Mercurial > hg > vamp-plugin-sdk
changeset 462:6ac615fd02a3
Merge from branch vampipe
author | Chris Cannam |
---|---|
date | Mon, 10 Oct 2016 15:51:33 +0100 |
parents | b409560a805b (current diff) 85dadd0d482f (diff) |
children | 7cf38d7ad81d |
files | |
diffstat | 3 files changed, 65 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/src/vamp-hostsdk/PluginLoader.cpp Mon Oct 10 15:48:35 2016 +0100 +++ b/src/vamp-hostsdk/PluginLoader.cpp Mon Oct 10 15:51:33 2016 +0100 @@ -61,7 +61,8 @@ virtual ~Impl(); PluginKeyList listPlugins(); - PluginStaticDataList listPluginData(); + + ListResponse listPluginData(); Plugin *loadPlugin(PluginKey key, float inputSampleRate, @@ -149,7 +150,7 @@ return m_impl->listPlugins(); } -PluginLoader::PluginStaticDataList +ListResponse PluginLoader::listPluginData() { return m_impl->listPluginData(); @@ -222,23 +223,24 @@ return plugins; } -PluginLoader::PluginStaticDataList +ListResponse PluginLoader::Impl::listPluginData() { PluginKeyList keys = listPlugins(); - PluginStaticDataList dataList; + ListResponse response; for (PluginKeyList::const_iterator ki = keys.begin(); ki != keys.end(); ++ki) { string key = *ki; Plugin *p = loadPlugin(key, 44100, 0); if (p) { PluginCategoryHierarchy category = getPluginCategory(key); - dataList.push_back(PluginStaticData::fromPlugin(key, category, p)); + response.available.push_back + (PluginStaticData::fromPlugin(key, category, p)); } delete p; } - return dataList; + return response; } void @@ -469,6 +471,8 @@ ConfigurationResponse response; + response.plugin = req.plugin; + if (req.plugin->initialise(req.configuration.channelCount, req.configuration.stepSize, req.configuration.blockSize)) {
--- a/vamp-hostsdk/PluginLoader.h Mon Oct 10 15:48:35 2016 +0100 +++ b/vamp-hostsdk/PluginLoader.h Mon Oct 10 15:51:33 2016 +0100 @@ -123,14 +123,6 @@ typedef std::vector<std::string> PluginCategoryHierarchy; /** - * PluginStaticDataList is a list containing static information - * about a set of Vamp plugins. - * - * \see PluginStaticData, listPluginData() - */ - typedef std::vector<PluginStaticData> PluginStaticDataList; - - /** * Search for all available Vamp plugins, and return a list of * them in the order in which they were found. */ @@ -141,8 +133,10 @@ * static data about each plugin in the order in which they were * found. This is slower but returns more comprehensive * information than listPlugins(). + * + * \see ListResponse, PluginStaticData */ - PluginStaticDataList listPluginData(); + ListResponse listPluginData(); /** * AdapterFlags contains a set of values that may be OR'd together
--- a/vamp-hostsdk/RequestResponse.h Mon Oct 10 15:48:35 2016 +0100 +++ b/vamp-hostsdk/RequestResponse.h Mon Oct 10 15:51:33 2016 +0100 @@ -54,6 +54,25 @@ namespace HostExt { /** + * \class ListResponse RequestResponse.h <vamp-hostsdk/RequestResponse.h> + * + * Vamp::HostExt::ListResponse is a structure containing the + * information returned by PluginLoader when asked to list static + * information about the available plugins. + * + * \see PluginLoader::listPluginData, PluginStaticData + * + * \note This class was introduced in version 2.7 of the Vamp plugin + * SDK, along with the PluginLoader method that returns this structure. + */ +struct ListResponse +{ + ListResponse() { } // empty by default + + std::vector<PluginStaticData> available; +}; + +/** * \class LoadRequest RequestResponse.h <vamp-hostsdk/RequestResponse.h> * * Vamp::HostExt::LoadRequest is a structure containing the @@ -186,9 +205,10 @@ struct ConfigurationResponse { public: - ConfigurationResponse() // failed by default - { } + ConfigurationResponse() : // failed by default + plugin(0) { } + Plugin *plugin; Plugin::OutputList outputs; }; @@ -223,7 +243,7 @@ * * A structure that bundles the data returned by a process call and by * Plugin::getRemainingFeatures(). This is simply a FeatureSet - * wrapper, named for symmetry with the other request-response pairs. + * wrapper that happens to reference the plugin as well. * * \see Plugin::process(), Plugin::getRemainingFeatures() * @@ -235,12 +255,39 @@ struct ProcessResponse { public: - ProcessResponse() // empty by default - { } + ProcessResponse() : // invalid by default + plugin(0) { } + Plugin *plugin; Plugin::FeatureSet features; }; +/** + * \class FinishRequest RequestResponse.h <vamp-hostsdk/RequestResponse.h> + * + * A structure that bundles the necessary data for finishing + * processing, i.e. calling getRemainingFeatures(). This consists only + * of the plugin pointer. Caller retains ownership of the plugin. + * + * \see Plugin::getRemainingFeatures() + * + * \note This class was introduced in version 2.7 of the Vamp plugin + * SDK, but it is not currently used by the SDK. It is supplied as a + * convenience for code using the SDK, and for symmetry with the load + * and configuration request structs. + * + * \note The response to a finish request (getRemainingFeatures()) is + * a ProcessResponse, just as it is for a process request. + */ +struct FinishRequest +{ +public: + FinishRequest() : // invalid by default + plugin(0) { } + + Plugin *plugin; +}; + } }