comparison vamp-sdk/hostext/PluginLoader.h @ 92:c94c066a4897

* Add Mark L's PluginBufferingAdapter
author cannam
date Fri, 02 Nov 2007 14:54:04 +0000
parents 6683f99107cf
children cd72c0473341
comparison
equal deleted inserted replaced
91:200a663bace1 92:c94c066a4897
140 * the plugin can handle and the number available in the host. 140 * the plugin can handle and the number available in the host.
141 * This enables a host to use plugins that may require the input 141 * This enables a host to use plugins that may require the input
142 * to be mixed down to mono, etc., without having to worry about 142 * to be mixed down to mono, etc., without having to worry about
143 * doing that itself. 143 * doing that itself.
144 * 144 *
145 * ADAPT_ALL - Perform all available adaptations, where meaningful. 145 * ADAPT_BUFFER_SIZE - Wrap the plugin in a PluginBufferingAdapter
146 * 146 * permitting the host to provide audio input using any block
147 * See PluginInputDomainAdapter and PluginChannelAdapter for more 147 * size, with no overlap, regardless of the plugin's preferred
148 * details of the classes that the loader may use if these flags 148 * block size (suitable for hosts that read from non-seekable
149 * are set. 149 * streaming media, for example). This adapter introduces some
150 * run-time overhead and also changes the semantics of the plugin
151 * slightly (see the PluginBufferingAdapter header documentation
152 * for details).
153 *
154 * ADAPT_ALL_SAFE - Perform all available adaptations that are
155 * meaningful for the plugin and "safe". Currently this means to
156 * ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input;
157 * ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE only if the
158 * input domain is being adapted but the plugin's preferred block
159 * size is not a power of two (the PluginInputDomainAdapter cannot
160 * handle non-power-of-two block sizes).
161 *
162 * ADAPT_ALL - Perform all available adaptations that are
163 * meaningful for the plugin.
164 *
165 * See PluginInputDomainAdapter, PluginChannelAdapter and
166 * PluginBufferingAdapter for more details of the classes that the
167 * loader may use if these flags are set.
150 */ 168 */
151 enum AdapterFlags { 169 enum AdapterFlags {
170
152 ADAPT_INPUT_DOMAIN = 0x01, 171 ADAPT_INPUT_DOMAIN = 0x01,
153 ADAPT_CHANNEL_COUNT = 0x02, 172 ADAPT_CHANNEL_COUNT = 0x02,
173 ADAPT_BUFFER_SIZE = 0x04,
174
175 ADAPT_ALL_SAFE = 0x80,
176
154 ADAPT_ALL = 0xff 177 ADAPT_ALL = 0xff
155 }; 178 };
156 179
157 /** 180 /**
158 * Load a Vamp plugin, given its identifying key. If the plugin 181 * Load a Vamp plugin, given its identifying key. If the plugin