Fix internal (aux) send to call ::use_target() when Session::AfterConnect is emitted

This commit is contained in:
Paul Davis 2021-11-03 15:07:46 -06:00
parent 016206e18a
commit 4ea2fdd5bd
2 changed files with 6 additions and 5 deletions

View File

@ -79,7 +79,7 @@ private:
void send_from_going_away ();
void send_to_going_away ();
void send_to_property_changed (const PBD::PropertyChange&);
int connect_when_legal ();
int after_connect ();
void init_gain ();
int use_target (boost::shared_ptr<Route>, bool update_name = true);
void target_io_changed ();

View File

@ -421,12 +421,13 @@ InternalSend::set_state (const XMLNode& node, int version)
* exist.
*/
if (!IO::connecting_legal) {
IO::ConnectingLegal.connect_same_thread (connect_c, boost::bind (&InternalSend::connect_when_legal, this));
if (_session.loading()) {
Session::AfterConnect.connect_same_thread (connect_c, boost::bind (&InternalSend::after_connect, this));
} else {
connect_when_legal ();
after_connect ();
}
}
allow_pan_reset ();
if (!is_foldback ()) {
@ -439,7 +440,7 @@ InternalSend::set_state (const XMLNode& node, int version)
}
int
InternalSend::connect_when_legal ()
InternalSend::after_connect ()
{
connect_c.disconnect ();