ensure that when a Session emits Port::PortDrop, transport master ports are left in place
This commit is contained in:
parent
afcc95167e
commit
e6b12bd0aa
@ -185,6 +185,7 @@ private:
|
||||
|
||||
void port_connected_or_disconnected (boost::weak_ptr<Port>, boost::weak_ptr<Port>, bool);
|
||||
void signal_drop ();
|
||||
void session_global_drop ();
|
||||
void drop ();
|
||||
PBD::ScopedConnectionList drop_connection;
|
||||
PBD::ScopedConnection engine_connection;
|
||||
|
@ -83,7 +83,7 @@ Port::Port (std::string const & n, DataType t, PortFlags f)
|
||||
}
|
||||
DEBUG_TRACE (DEBUG::Ports, string_compose ("registed port %1 handle %2\n", name(), _port_handle));
|
||||
|
||||
PortDrop.connect_same_thread (drop_connection, boost::bind (&Port::drop, this));
|
||||
PortDrop.connect_same_thread (drop_connection, boost::bind (&Port::session_global_drop, this));
|
||||
PortSignalDrop.connect_same_thread (drop_connection, boost::bind (&Port::signal_drop, this));
|
||||
port_manager->PortConnectedOrDisconnected.connect_same_thread (engine_connection, boost::bind (&Port::port_connected_or_disconnected, this, _1, _3, _5));
|
||||
}
|
||||
@ -127,6 +127,16 @@ Port::set_pretty_name(const std::string& n)
|
||||
return false;
|
||||
}
|
||||
|
||||
void
|
||||
Port::session_global_drop()
|
||||
{
|
||||
if (_flags & TransportMasterPort) {
|
||||
return;
|
||||
}
|
||||
|
||||
drop ();
|
||||
}
|
||||
|
||||
void
|
||||
Port::signal_drop ()
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user