13
0

update internal-send port-count when target port-count changes

This commit is contained in:
Robin Gareus 2014-01-13 10:48:23 +01:00 committed by Paul Davis
parent b4dea5309d
commit 0da58eeebf
3 changed files with 13 additions and 2 deletions

View File

@ -70,6 +70,7 @@ class LIBARDOUR_API InternalSend : public Send
int connect_when_legal ();
void init_gain ();
int use_target (boost::shared_ptr<Route>);
void target_io_changed ();
};
} // namespace ARDOUR

View File

@ -388,7 +388,7 @@ Delivery::reset_panner ()
if (_panshell) {
_panshell->configure_io (ChanCount (DataType::AUDIO, pans_required()), ChanCount (DataType::AUDIO, pan_outs()));
if (_role == Main) {
if (_role == Main || _role == Aux) {
_panshell->pannable()->set_panner (_panshell->panner());
}
}

View File

@ -95,11 +95,21 @@ InternalSend::use_target (boost::shared_ptr<Route> sendto)
target_connections.drop_connections ();
_send_to->DropReferences.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_going_away, this));
_send_to->PropertyChanged.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_property_changed, this, _1));;
_send_to->PropertyChanged.connect_same_thread (target_connections, boost::bind (&InternalSend::send_to_property_changed, this, _1));
_send_to->io_changed.connect_same_thread (target_connections, boost::bind (&InternalSend::target_io_changed, this));
return 0;
}
void
InternalSend::target_io_changed ()
{
assert (_send_to);
mixbufs.ensure_buffers (_send_to->internal_return()->input_streams(), _session.get_block_size());
mixbufs.set_count (_send_to->internal_return()->input_streams());
reset_panner();
}
void
InternalSend::send_to_going_away ()
{