}
bool
-Delivery::can_support_io_configuration (const ChanCount& in, ChanCount& out) const
+Delivery::can_support_io_configuration (const ChanCount& in, ChanCount& out)
{
if (_role == Main) {
bool
Delivery::configure_io (ChanCount in, ChanCount out)
{
- assert (!AudioEngine::instance()->process_lock().trylock());
+#ifndef NDEBUG
+ bool r = AudioEngine::instance()->process_lock().trylock();
+ assert (!r && "trylock inside Delivery::configure_io");
+#endif
/* check configuration by comparison with our I/O port configuration, if appropriate.
see ::can_support_io_configuration() for comments
processing pathway that wants to use this->output_buffers() for some reason.
*/
- output_buffers().get_jack_port_addresses (ports, nframes);
+ output_buffers().get_backend_port_addresses (ports, nframes);
// this Delivery processor is not a derived type, and thus we assume
// we really can modify the buffers passed in (it is almost certainly
if (_panshell) {
node.add_child_nocopy (_panshell->get_state ());
+ if (_panshell->pannable()) {
+ node.add_child_nocopy (_panshell->pannable()->get_state ());
+ }
}
return node;
reset_panner ();
+ XMLNode* pannnode = node.child (X_("Pannable"));
+ if (_panshell->panner() && pannnode) {
+ _panshell->pannable()->set_state (*pannnode, version);
+ }
+
return 0;
}
if (_panshell) {
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
- if (_role == Main) {
+ if (_role == Main || _role == Aux || _role == Send) {
_panshell->pannable()->set_panner (_panshell->panner());
}
}