diff options
Diffstat (limited to 'src/server/internals/Controller.cpp')
-rw-r--r-- | src/server/internals/Controller.cpp | 36 |
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); |