Fix various issues when the engine disconnects:
authorRobin Gareus <robin@gareus.org>
Mon, 26 Nov 2018 01:39:55 +0000 (02:39 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 26 Nov 2018 01:39:55 +0000 (02:39 +0100)
commit13c984c216e1f6e85c29561d4c0ee9599fc512e5
tree99aa3334bc4a2da26fad8cd876067a28dd750aef
parent4bbfb6ce50e0de3db879f605d7afccfe4f89f458
Fix various issues when the engine disconnects:

Previously Port::PortDrop was never handled.
The signal was disconnected directly when the connection
is re-used by Port::PortSignalDrop.

Ports::drop() was not called when the engine was stopped
or disconnected, and port-handles were not invalidated.

This lead to crashes whenever a port-related operation was performed
while the engine was stopped. e.g. adding/removing tracks or plugins
(latency recompute, notify port-engine) and various other operations.
libs/ardour/ardour/port.h