faderport: turn out all lights from destructor, and use Port::drain() to make sure...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 1 Feb 2016 18:27:08 +0000 (13:27 -0500)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 1 Feb 2016 18:27:08 +0000 (13:27 -0500)
libs/surfaces/faderport/faderport.cc

index 45dc9b82fa5b223f005ccdb3ebda0e2780bab5c5..922a329c3a8d0bb7275e55488cebf2c6b519730e 100644 (file)
@@ -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 ();