summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-02-01 13:27:08 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-02-01 13:27:08 -0500
commitf40167cb40207364624854e1fbd00f2db9f6a27c (patch)
treedade16072856c1a241357aa17cacc627be857ac8
parent5153631d70a3bfa9aec2548a1ae33edcffbebfcb (diff)
faderport: turn out all lights from destructor, and use Port::drain() to make sure data gets out
-rw-r--r--libs/surfaces/faderport/faderport.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc
index 45dc9b82fa..922a329c3a 100644
--- a/libs/surfaces/faderport/faderport.cc
+++ b/libs/surfaces/faderport/faderport.cc
@@ -195,6 +195,8 @@ FaderPort::FaderPort (Session& s)
FaderPort::~FaderPort ()
{
+ all_lights_out ();
+
if (_input_port) {
DEBUG_TRACE (DEBUG::FaderPort, string_compose ("unregistering input port %1\n", boost::shared_ptr<ARDOUR::Port>(_input_port)->name()));
AudioEngine::instance()->unregister_port (_input_port);
@@ -202,7 +204,7 @@ FaderPort::~FaderPort ()
}
if (_output_port) {
-// _output_port->drain (10000); //ToDo: is this necessary? It hangs the shutdown, for me
+ _output_port->drain (10000, 250000); /* check every 10 msecs, wait up to 1/4 second for the port to drain */
DEBUG_TRACE (DEBUG::FaderPort, string_compose ("unregistering output port %1\n", boost::shared_ptr<ARDOUR::Port>(_output_port)->name()));
AudioEngine::instance()->unregister_port (_output_port);
_output_port.reset ();