comparison vamp-hostsdk/PluginLoader.h @ 460:b409560a805b

Merge from branch vampipe
author Chris Cannam
date Mon, 10 Oct 2016 15:48:35 +0100
parents 2819b5c9a395
children 86624d166f88
comparison
equal deleted inserted replaced
442:4101e3f80aa0 460:b409560a805b
41 #include <string> 41 #include <string>
42 #include <map> 42 #include <map>
43 43
44 #include "hostguard.h" 44 #include "hostguard.h"
45 #include "PluginWrapper.h" 45 #include "PluginWrapper.h"
46 #include "RequestResponse.h"
46 47
47 _VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h) 48 _VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h)
48 49
49 namespace Vamp { 50 namespace Vamp {
50 51
120 * \see getPluginCategory() 121 * \see getPluginCategory()
121 */ 122 */
122 typedef std::vector<std::string> PluginCategoryHierarchy; 123 typedef std::vector<std::string> PluginCategoryHierarchy;
123 124
124 /** 125 /**
126 * PluginStaticDataList is a list containing static information
127 * about a set of Vamp plugins.
128 *
129 * \see PluginStaticData, listPluginData()
130 */
131 typedef std::vector<PluginStaticData> PluginStaticDataList;
132
133 /**
125 * Search for all available Vamp plugins, and return a list of 134 * Search for all available Vamp plugins, and return a list of
126 * them in the order in which they were found. 135 * them in the order in which they were found.
127 */ 136 */
128 PluginKeyList listPlugins(); 137 PluginKeyList listPlugins();
138
139 /**
140 * Search for all available Vamp plugins, and return a list of
141 * static data about each plugin in the order in which they were
142 * found. This is slower but returns more comprehensive
143 * information than listPlugins().
144 */
145 PluginStaticDataList listPluginData();
129 146
130 /** 147 /**
131 * AdapterFlags contains a set of values that may be OR'd together 148 * AdapterFlags contains a set of values that may be OR'd together
132 * to indicate in which circumstances PluginLoader should use a 149 * to indicate in which circumstances PluginLoader should use a
133 * plugin adapter to make a plugin easier to use for a host that 150 * plugin adapter to make a plugin easier to use for a host that
200 Plugin *loadPlugin(PluginKey key, 217 Plugin *loadPlugin(PluginKey key,
201 float inputSampleRate, 218 float inputSampleRate,
202 int adapterFlags = 0); 219 int adapterFlags = 0);
203 220
204 /** 221 /**
222 * Load a Vamp plugin, given its key, inputSampleRate and the
223 * adapter flags, bundled into a LoadRequest structure. The loaded
224 * plugin is returned along with its static data and default
225 * configuration in a LoadResponse.
226 *
227 * \see AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter, LoadRequest, LoadResponse
228 */
229 LoadResponse loadPlugin(LoadRequest req);
230
231 /**
232 * Configure and initialise a Vamp plugin. This applies the
233 * parameter and program settings found in the PluginConfiguration
234 * part of the supplied ConfigurationRequest and initialises the
235 * plugin. (Many hosts will prefer to do this themselves in
236 * stages, by calling methods on the plugin directly.)
237 *
238 * Return a ConfigurationResponse containing the result of calling
239 * getOutputDescriptors() on the configured and initialised
240 * plugin, representing the outputs of the plugin following
241 * configuration (since output ranges etc can depend on the
242 * parameters). If initialisation fails, returns an empty list.
243 *
244 * \see PluginConfiguration, ConfigurationRequest, ConfigurationResponse
245 */
246 ConfigurationResponse configurePlugin(ConfigurationRequest req);
247
248 /**
205 * Given a Vamp plugin library name and plugin identifier, return 249 * Given a Vamp plugin library name and plugin identifier, return
206 * the corresponding plugin key in a form suitable for passing in to 250 * the corresponding plugin key in a form suitable for passing in to
207 * loadPlugin(). 251 * loadPlugin().
208 */ 252 */
209 PluginKey composePluginKey(std::string libraryName, 253 PluginKey composePluginKey(std::string libraryName,