blob: 840d0f3a1c1789ef4f0885e95181cd4ac2c8dd07 (
plain) (
tree)
|
|
#include "Acceleration.h"
#include <iostream>
#include <lv2wrapper.h>
namespace {
enum class PortIndex : uint32_t {
LIMIT,
DRYWET,
IN_L,
IN_R,
OUT_L,
OUT_R,
};
} // anon namespace
Acceleration::Acceleration(double rate)
: LV2Plugin(rate)
{
}
void Acceleration::connect_port(uint32_t port, void * data)
{
switch (static_cast<PortIndex>(port)) {
case PortIndex::LIMIT:
limit = (const float *) data;
break;
case PortIndex::DRYWET:
drywet = (const float *) data;
break;
case PortIndex::IN_L:
in[0] = (const float *) data;
break;
case PortIndex::IN_R:
in[1] = (const float *) data;
break;
case PortIndex::OUT_L:
out[0] = (float *) data;
break;
case PortIndex::OUT_R:
out[1] = (float *) data;
break;
default:
std::cerr << "Invalid port " << port << ": ignoring." << std::endl;
}
}
void Acceleration::run(uint32_t num_samples)
{
A = *limit;
B = *drywet;
processReplacing(const_cast<float **>(in), out, num_samples);
}
//
// Include the processing code from the VST version.
//
#include <cmath>
#include "../../../LinuxVST/src/Acceleration/AccelerationProc.cpp"
// Create the LV2Wrapper and register the plugin
LV2Wrapper<Acceleration> accel;
|