annotate src/vamp-hostsdk/PluginWrapper.cpp @ 263:4454843ff384

* OK, we're going to have to place the host stuff in its own namespace too. Otherwise our new SV build on OSX fails to load old plugins because they pull in the host namespace PluginBase and thus report the wrong Vamp version... *sigh*
author cannam
date Thu, 20 Nov 2008 15:01:30 +0000
parents 521734d2b498
children c97e70ed5abc
rev   line source
cannam@233 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
cannam@233 2
cannam@233 3 /*
cannam@233 4 Vamp
cannam@233 5
cannam@233 6 An API for audio analysis and feature extraction plugins.
cannam@233 7
cannam@233 8 Centre for Digital Music, Queen Mary, University of London.
cannam@233 9 Copyright 2006-2007 Chris Cannam and QMUL.
cannam@233 10
cannam@233 11 Permission is hereby granted, free of charge, to any person
cannam@233 12 obtaining a copy of this software and associated documentation
cannam@233 13 files (the "Software"), to deal in the Software without
cannam@233 14 restriction, including without limitation the rights to use, copy,
cannam@233 15 modify, merge, publish, distribute, sublicense, and/or sell copies
cannam@233 16 of the Software, and to permit persons to whom the Software is
cannam@233 17 furnished to do so, subject to the following conditions:
cannam@233 18
cannam@233 19 The above copyright notice and this permission notice shall be
cannam@233 20 included in all copies or substantial portions of the Software.
cannam@233 21
cannam@233 22 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
cannam@233 23 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
cannam@233 24 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
cannam@233 25 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
cannam@233 26 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
cannam@233 27 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
cannam@233 28 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
cannam@233 29
cannam@233 30 Except as contained in this notice, the names of the Centre for
cannam@233 31 Digital Music; Queen Mary, University of London; and Chris Cannam
cannam@233 32 shall not be used in advertising or otherwise to promote the sale,
cannam@233 33 use or other dealings in this Software without prior written
cannam@233 34 authorization.
cannam@233 35 */
cannam@233 36
cannam@233 37 #include <vamp-hostsdk/PluginWrapper.h>
cannam@233 38
cannam@263 39 _VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.cpp)
cannam@263 40
cannam@233 41 namespace Vamp {
cannam@233 42
cannam@233 43 namespace HostExt {
cannam@233 44
cannam@233 45 class PluginRateExtractor : public Plugin
cannam@233 46 {
cannam@233 47 public:
cannam@233 48 PluginRateExtractor() : Plugin(0) { }
cannam@233 49 float getRate() const { return m_inputSampleRate; }
cannam@233 50 };
cannam@233 51
cannam@233 52 PluginWrapper::PluginWrapper(Plugin *plugin) :
cannam@233 53 Plugin(((PluginRateExtractor *)plugin)->getRate()),
cannam@233 54 m_plugin(plugin)
cannam@233 55 {
cannam@233 56 }
cannam@233 57
cannam@233 58 PluginWrapper::~PluginWrapper()
cannam@233 59 {
cannam@233 60 delete m_plugin;
cannam@233 61 }
cannam@233 62
cannam@233 63 bool
cannam@233 64 PluginWrapper::initialise(size_t channels, size_t stepSize, size_t blockSize)
cannam@233 65 {
cannam@233 66 return m_plugin->initialise(channels, stepSize, blockSize);
cannam@233 67 }
cannam@233 68
cannam@233 69 void
cannam@233 70 PluginWrapper::reset()
cannam@233 71 {
cannam@233 72 m_plugin->reset();
cannam@233 73 }
cannam@233 74
cannam@233 75 Plugin::InputDomain
cannam@233 76 PluginWrapper::getInputDomain() const
cannam@233 77 {
cannam@233 78 return m_plugin->getInputDomain();
cannam@233 79 }
cannam@233 80
cannam@233 81 unsigned int
cannam@233 82 PluginWrapper::getVampApiVersion() const
cannam@233 83 {
cannam@233 84 return m_plugin->getVampApiVersion();
cannam@233 85 }
cannam@233 86
cannam@233 87 std::string
cannam@233 88 PluginWrapper::getIdentifier() const
cannam@233 89 {
cannam@233 90 return m_plugin->getIdentifier();
cannam@233 91 }
cannam@233 92
cannam@233 93 std::string
cannam@233 94 PluginWrapper::getName() const
cannam@233 95 {
cannam@233 96 return m_plugin->getName();
cannam@233 97 }
cannam@233 98
cannam@233 99 std::string
cannam@233 100 PluginWrapper::getDescription() const
cannam@233 101 {
cannam@233 102 return m_plugin->getDescription();
cannam@233 103 }
cannam@233 104
cannam@233 105 std::string
cannam@233 106 PluginWrapper::getMaker() const
cannam@233 107 {
cannam@233 108 return m_plugin->getMaker();
cannam@233 109 }
cannam@233 110
cannam@233 111 int
cannam@233 112 PluginWrapper::getPluginVersion() const
cannam@233 113 {
cannam@233 114 return m_plugin->getPluginVersion();
cannam@233 115 }
cannam@233 116
cannam@233 117 std::string
cannam@233 118 PluginWrapper::getCopyright() const
cannam@233 119 {
cannam@233 120 return m_plugin->getCopyright();
cannam@233 121 }
cannam@233 122
cannam@233 123 PluginBase::ParameterList
cannam@233 124 PluginWrapper::getParameterDescriptors() const
cannam@233 125 {
cannam@233 126 return m_plugin->getParameterDescriptors();
cannam@233 127 }
cannam@233 128
cannam@233 129 float
cannam@233 130 PluginWrapper::getParameter(std::string parameter) const
cannam@233 131 {
cannam@233 132 return m_plugin->getParameter(parameter);
cannam@233 133 }
cannam@233 134
cannam@233 135 void
cannam@233 136 PluginWrapper::setParameter(std::string parameter, float value)
cannam@233 137 {
cannam@233 138 m_plugin->setParameter(parameter, value);
cannam@233 139 }
cannam@233 140
cannam@233 141 PluginBase::ProgramList
cannam@233 142 PluginWrapper::getPrograms() const
cannam@233 143 {
cannam@233 144 return m_plugin->getPrograms();
cannam@233 145 }
cannam@233 146
cannam@233 147 std::string
cannam@233 148 PluginWrapper::getCurrentProgram() const
cannam@233 149 {
cannam@233 150 return m_plugin->getCurrentProgram();
cannam@233 151 }
cannam@233 152
cannam@233 153 void
cannam@233 154 PluginWrapper::selectProgram(std::string program)
cannam@233 155 {
cannam@233 156 m_plugin->selectProgram(program);
cannam@233 157 }
cannam@233 158
cannam@233 159 size_t
cannam@233 160 PluginWrapper::getPreferredStepSize() const
cannam@233 161 {
cannam@233 162 return m_plugin->getPreferredStepSize();
cannam@233 163 }
cannam@233 164
cannam@233 165 size_t
cannam@233 166 PluginWrapper::getPreferredBlockSize() const
cannam@233 167 {
cannam@233 168 return m_plugin->getPreferredBlockSize();
cannam@233 169 }
cannam@233 170
cannam@233 171 size_t
cannam@233 172 PluginWrapper::getMinChannelCount() const
cannam@233 173 {
cannam@233 174 return m_plugin->getMinChannelCount();
cannam@233 175 }
cannam@233 176
cannam@233 177 size_t PluginWrapper::getMaxChannelCount() const
cannam@233 178 {
cannam@233 179 return m_plugin->getMaxChannelCount();
cannam@233 180 }
cannam@233 181
cannam@233 182 Plugin::OutputList
cannam@233 183 PluginWrapper::getOutputDescriptors() const
cannam@233 184 {
cannam@233 185 return m_plugin->getOutputDescriptors();
cannam@233 186 }
cannam@233 187
cannam@233 188 Plugin::FeatureSet
cannam@233 189 PluginWrapper::process(const float *const *inputBuffers, RealTime timestamp)
cannam@233 190 {
cannam@233 191 return m_plugin->process(inputBuffers, timestamp);
cannam@233 192 }
cannam@233 193
cannam@233 194 Plugin::FeatureSet
cannam@233 195 PluginWrapper::getRemainingFeatures()
cannam@233 196 {
cannam@233 197 return m_plugin->getRemainingFeatures();
cannam@233 198 }
cannam@233 199
cannam@233 200 }
cannam@233 201
cannam@233 202 }
cannam@233 203
cannam@263 204 _VAMP_SDK_HOSTSPACE_END(PluginWrapper.cpp)