summaryrefslogtreecommitdiff
path: root/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h')
-rw-r--r--libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h135
1 files changed, 0 insertions, 135 deletions
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h b/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
deleted file mode 100644
index 2cc060548f..0000000000
--- a/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
+++ /dev/null
@@ -1,135 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
-
-/*
- Vamp
-
- An API for audio analysis and feature extraction plugins.
-
- Centre for Digital Music, Queen Mary, University of London.
- Copyright 2006-2009 Chris Cannam and QMUL.
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documentation
- files (the "Software"), to deal in the Software without
- restriction, including without limitation the rights to use, copy,
- modify, merge, publish, distribute, sublicense, and/or sell copies
- of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be
- included in all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
- ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
- CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the names of the Centre for
- Digital Music; Queen Mary, University of London; and Chris Cannam
- shall not be used in advertising or otherwise to promote the sale,
- use or other dealings in this Software without prior written
- authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_WRAPPER_H_
-#define _VAMP_PLUGIN_WRAPPER_H_
-
-#include "hostguard.h"
-#include "vamp-hostsdk/Plugin.h"
-
-_VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.h)
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginWrapper PluginWrapper.h <vamp-hostsdk/PluginWrapper.h>
- *
- * PluginWrapper is a simple base class for adapter plugins. It takes
- * a pointer to a "to be wrapped" Vamp plugin on construction, and
- * provides implementations of all the Vamp plugin methods that simply
- * delegate through to the wrapped plugin. A subclass can therefore
- * override only the methods that are meaningful for the particular
- * adapter.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginWrapper : public Plugin
-{
-public:
- virtual ~PluginWrapper();
-
- bool initialise(size_t channels, size_t stepSize, size_t blockSize);
- void reset();
-
- InputDomain getInputDomain() const;
-
- unsigned int getVampApiVersion() const;
- std::string getIdentifier() const;
- std::string getName() const;
- std::string getDescription() const;
- std::string getMaker() const;
- int getPluginVersion() const;
- std::string getCopyright() const;
-
- ParameterList getParameterDescriptors() const;
- float getParameter(std::string) const;
- void setParameter(std::string, float);
-
- ProgramList getPrograms() const;
- std::string getCurrentProgram() const;
- void selectProgram(std::string);
-
- size_t getPreferredStepSize() const;
- size_t getPreferredBlockSize() const;
-
- size_t getMinChannelCount() const;
- size_t getMaxChannelCount() const;
-
- OutputList getOutputDescriptors() const;
-
- FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
- FeatureSet getRemainingFeatures();
-
- /**
- * Return a pointer to the plugin wrapper of type WrapperType
- * surrounding this wrapper's plugin, if present.
- *
- * This is useful in situations where a plugin is wrapped by
- * multiple different wrappers (one inside another) and the host
- * wants to call some wrapper-specific function on one of the
- * layers without having to care about the order in which they are
- * wrapped. For example, the plugin returned by
- * PluginLoader::loadPlugin may have more than one wrapper; if the
- * host wanted to query or fine-tune some property of one of them,
- * it would be hard to do so without knowing the order of the
- * wrappers. This function therefore gives direct access to the
- * wrapper of a particular type.
- */
- template <typename WrapperType>
- WrapperType *getWrapper() {
- WrapperType *w = dynamic_cast<WrapperType *>(this);
- if (w) return w;
- PluginWrapper *pw = dynamic_cast<PluginWrapper *>(m_plugin);
- if (pw) return pw->getWrapper<WrapperType>();
- return 0;
- }
-
-protected:
- PluginWrapper(Plugin *plugin); // I take ownership of plugin
- Plugin *m_plugin;
-};
-
-}
-
-}
-
-_VAMP_SDK_HOSTSPACE_END(PluginWrapper.h)
-
-#endif