summaryrefslogtreecommitdiffstats
path: root/src/server/internals/Controller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/internals/Controller.cpp')
-rw-r--r--src/server/internals/Controller.cpp36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/server/internals/Controller.cpp b/src/server/internals/Controller.cpp
index df9c6bfb..f29951c8 100644
--- a/src/server/internals/Controller.cpp
+++ b/src/server/internals/Controller.cpp
@@ -53,31 +53,36 @@ ControllerNode::ControllerNode(InternalPlugin* plugin,
_ports = new Raul::Array<PortImpl*>(6);
_midi_in_port = new InputPort(bufs, this, "input", 0, 1, PortType::EVENTS, Raul::Atom());
- _midi_in_port->set_property(uris.lv2_name, "Input");
+ _midi_in_port->set_property(uris.lv2_name, bufs.forge().make("Input"));
_ports->at(0) = _midi_in_port;
- _param_port = new InputPort(bufs, this, "controller", 1, 1, PortType::CONTROL, 0.0f);
- _param_port->set_property(uris.lv2_minimum, 0.0f);
- _param_port->set_property(uris.lv2_maximum, 127.0f);
- _param_port->set_property(uris.lv2_integer, true);
- _param_port->set_property(uris.lv2_name, "Controller");
+ _param_port = new InputPort(bufs, this, "controller", 1, 1,
+ PortType::CONTROL, bufs.forge().make(0.0f));
+ _param_port->set_property(uris.lv2_minimum, bufs.forge().make(0.0f));
+ _param_port->set_property(uris.lv2_maximum, bufs.forge().make(127.0f));
+ _param_port->set_property(uris.lv2_integer, bufs.forge().make(true));
+ _param_port->set_property(uris.lv2_name, bufs.forge().make("Controller"));
_ports->at(1) = _param_port;
- _log_port = new InputPort(bufs, this, "logarithmic", 2, 1, PortType::CONTROL, 0.0f);
+ _log_port = new InputPort(bufs, this, "logarithmic", 2, 1,
+ PortType::CONTROL, bufs.forge().make(0.0f));
_log_port->set_property(uris.lv2_portProperty, uris.lv2_toggled);
- _log_port->set_property(uris.lv2_name, "Logarithmic");
+ _log_port->set_property(uris.lv2_name, bufs.forge().make("Logarithmic"));
_ports->at(2) = _log_port;
- _min_port = new InputPort(bufs, this, "minimum", 3, 1, PortType::CONTROL, 0.0f);
- _min_port->set_property(uris.lv2_name, "Minimum");
+ _min_port = new InputPort(bufs, this, "minimum", 3, 1,
+ PortType::CONTROL, bufs.forge().make(0.0f));
+ _min_port->set_property(uris.lv2_name, bufs.forge().make("Minimum"));
_ports->at(3) = _min_port;
- _max_port = new InputPort(bufs, this, "maximum", 4, 1, PortType::CONTROL, 1.0f);
- _max_port->set_property(uris.lv2_name, "Maximum");
+ _max_port = new InputPort(bufs, this, "maximum", 4, 1,
+ PortType::CONTROL, bufs.forge().make(1.0f));
+ _max_port->set_property(uris.lv2_name, bufs.forge().make("Maximum"));
_ports->at(4) = _max_port;
- _audio_port = new OutputPort(bufs, this, "ar_output", 5, 1, PortType::AUDIO, 0.0f);
- _audio_port->set_property(uris.lv2_name, "Output");
+ _audio_port = new OutputPort(bufs, this, "ar_output", 5, 1,
+ PortType::AUDIO, bufs.forge().make(0.0f));
+ _audio_port->set_property(uris.lv2_name, bufs.forge().make("Output"));
_ports->at(5) = _audio_port;
}
@@ -115,7 +120,8 @@ ControllerNode::control(ProcessContext& context, uint8_t control_num, uint8_t va
const Sample nval = (val / 127.0f); // normalized [0, 1]
if (_learning) {
- _param_port->set_value(control_num);
+ // FIXME: not thread safe
+ _param_port->set_value(context.engine().world()->forge().make(control_num));
((AudioBuffer*)_param_port->buffer(0).get())->set_value(
(float)control_num, context.start(), context.end());
_param_port->broadcast_value(context, true);