+ .endNamespace (); // Evoral
+
+ luabridge::getGlobalNamespace (L)
+ .beginNamespace ("Vamp")
+
+ .beginClass<Vamp::RealTime> ("RealTime")
+ .addConstructor <void (*) (int, int)> ()
+ .addData ("sec", &Vamp::RealTime::sec, false)
+ .addData ("nsec", &Vamp::RealTime::nsec, false)
+ .addFunction ("usec", &Vamp::RealTime::usec)
+ .addFunction ("msec", &Vamp::RealTime::msec)
+ .addFunction ("toString", &Vamp::RealTime::toString)
+ .addStaticFunction ("realTime2Frame", &Vamp::RealTime::realTime2Frame)
+ .addStaticFunction ("frame2RealTime", &Vamp::RealTime::frame2RealTime)
+ .endClass ()
+
+ .beginClass<Vamp::PluginBase> ("PluginBase")
+ .addFunction ("getIdentifier", &Vamp::PluginBase::getIdentifier)
+ .addFunction ("getName", &Vamp::PluginBase::getName)
+ .addFunction ("getDescription", &Vamp::PluginBase::getDescription)
+ .addFunction ("getMaker", &Vamp::PluginBase::getMaker)
+ .addFunction ("getCopyright", &Vamp::PluginBase::getCopyright)
+ .addFunction ("getPluginVersion", &Vamp::PluginBase::getPluginVersion)
+ .addFunction ("getParameterDescriptors", &Vamp::PluginBase::getParameterDescriptors)
+ .addFunction ("getParameter", &Vamp::PluginBase::getParameter)
+ .addFunction ("setParameter", &Vamp::PluginBase::setParameter)
+ .addFunction ("getPrograms", &Vamp::PluginBase::getPrograms)
+ .addFunction ("getCurrentProgram", &Vamp::PluginBase::getCurrentProgram)
+ .addFunction ("selectProgram", &Vamp::PluginBase::selectProgram)
+ .addFunction ("getType", &Vamp::PluginBase::getType)
+ .endClass ()
+
+ .beginNamespace ("PluginBase")
+ .beginClass<Vamp::PluginBase::ParameterDescriptor> ("ParameterDescriptor")
+ .addData ("identifier", &Vamp::PluginBase::ParameterDescriptor::identifier)
+ .addData ("name", &Vamp::PluginBase::ParameterDescriptor::name)
+ .addData ("description", &Vamp::PluginBase::ParameterDescriptor::description)
+ .addData ("unit", &Vamp::PluginBase::ParameterDescriptor::unit)
+ .addData ("minValue", &Vamp::PluginBase::ParameterDescriptor::minValue)
+ .addData ("maxValue", &Vamp::PluginBase::ParameterDescriptor::maxValue)
+ .addData ("defaultValue", &Vamp::PluginBase::ParameterDescriptor::defaultValue)
+ .addData ("isQuantized", &Vamp::PluginBase::ParameterDescriptor::isQuantized)
+ .addData ("quantizeStep", &Vamp::PluginBase::ParameterDescriptor::quantizeStep)
+ .addData ("valueNames", &Vamp::PluginBase::ParameterDescriptor::valueNames)
+ .endClass ()
+
+ .beginStdVector <Vamp::PluginBase::ParameterDescriptor> ("ParameterList")
+ .endClass ()
+ .endNamespace () // Vamp::PluginBase
+
+ .deriveClass<Vamp::Plugin, Vamp::PluginBase> ("Plugin")
+ //.addFunction ("process", &Vamp::Plugin::process) // unusable due to float*const* -> LuaAPI::Vamp::process
+ .addFunction ("initialise", &Vamp::Plugin::initialise)
+ .addFunction ("reset", &Vamp::Plugin::reset)
+ .addFunction ("getInputDomain", &Vamp::Plugin::getInputDomain)
+ .addFunction ("getPreferredBlockSize", &Vamp::Plugin::getPreferredBlockSize)
+ .addFunction ("getPreferredStepSize", &Vamp::Plugin::getPreferredStepSize)
+ .addFunction ("getMinChannelCount", &Vamp::Plugin::getMinChannelCount)
+ .addFunction ("getMaxChannelCount", &Vamp::Plugin::getMaxChannelCount)
+ .addFunction ("getOutputDescriptors", &Vamp::Plugin::getOutputDescriptors)
+ .addFunction ("getRemainingFeatures", &Vamp::Plugin::getRemainingFeatures)
+ .addFunction ("getType", &Vamp::Plugin::getType)
+ .endClass ()
+
+ .beginNamespace ("Plugin")
+ .beginClass<Vamp::Plugin::OutputDescriptor> ("OutputDescriptor")
+ .addData ("identifier", &Vamp::Plugin::OutputDescriptor::identifier)
+ .addData ("description", &Vamp::Plugin::OutputDescriptor::description)
+ .addData ("unit", &Vamp::Plugin::OutputDescriptor::unit)
+ .addData ("hasFixedBinCount", &Vamp::Plugin::OutputDescriptor::hasFixedBinCount)
+ .addData ("binCount", &Vamp::Plugin::OutputDescriptor::binCount)
+ .addData ("binNames", &Vamp::Plugin::OutputDescriptor::binNames)
+ .addData ("hasKnownExtents", &Vamp::Plugin::OutputDescriptor::hasKnownExtents)
+ .addData ("minValue", &Vamp::Plugin::OutputDescriptor::minValue)
+ .addData ("maxValue", &Vamp::Plugin::OutputDescriptor::maxValue)
+ .addData ("isQuantized", &Vamp::Plugin::OutputDescriptor::isQuantized)
+ .addData ("quantizeStep", &Vamp::Plugin::OutputDescriptor::quantizeStep)
+ .addData ("sampleType", &Vamp::Plugin::OutputDescriptor::sampleType)
+ .addData ("sampleRate", &Vamp::Plugin::OutputDescriptor::sampleRate)
+ .addData ("hasDuration", &Vamp::Plugin::OutputDescriptor::hasDuration)
+ .endClass ()
+
+ /* Vamp::Plugin enums */
+ .beginNamespace ("InputDomain")
+ .addConst ("TimeDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::TimeDomain))
+ .addConst ("FrequencyDomain", Vamp::Plugin::InputDomain(Vamp::Plugin::FrequencyDomain))
+ .endNamespace ()
+
+ /* Vamp::Plugin::OutputDescriptor enum */
+ .beginNamespace ("OutputDescriptor")
+ .beginNamespace ("SampleType")
+ .addConst ("OneSamplePerStep", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::OneSamplePerStep))
+ .addConst ("FixedSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::FixedSampleRate))
+ .addConst ("VariableSampleRate", Vamp::Plugin::OutputDescriptor::SampleType(Vamp::Plugin::OutputDescriptor::VariableSampleRate))
+ .endNamespace ()
+ .endNamespace () /* Vamp::Plugin::OutputDescriptor */
+
+ .beginClass<Vamp::Plugin::Feature> ("Feature")
+ .addData ("hasTimestamp", &Vamp::Plugin::Feature::hasTimestamp, false)
+ .addData ("timestamp", &Vamp::Plugin::Feature::timestamp, false)
+ .addData ("hasDuration", &Vamp::Plugin::Feature::hasDuration, false)
+ .addData ("duration", &Vamp::Plugin::Feature::duration, false)
+ .addData ("values", &Vamp::Plugin::Feature::values, false)
+ .addData ("label", &Vamp::Plugin::Feature::label, false)
+ .endClass ()
+
+ .beginStdVector <Vamp::Plugin::OutputDescriptor> ("OutputList")
+ .endClass ()