Move functions in pbd/clear_dir.h/cc into pbd/file_utils.h/cc
[ardour.git] / libs / ardour / midi_ui.cc
index 26005b5b9c228731babd2b990555f58513015401..e00ec587ec4da2f6180b397ee7c3ecb09ce0b92e 100644 (file)
@@ -52,7 +52,11 @@ MidiControlUI::MidiControlUI (Session& s)
 
 MidiControlUI::~MidiControlUI ()
 {
+       /* stop the thread */
+       quit ();
+       /* drop all ports as GIO::Sources */
        clear_ports ();
+       /* we no longer exist */
        _instance = 0;
 }
 
@@ -61,6 +65,8 @@ MidiControlUI::do_request (MidiUIRequest* req)
 {
        if (req->type == Quit) {
                BaseUI::quit ();
+       } else if (req->type == CallSlot) {
+               req->the_slot ();
        }
 }
 
@@ -116,6 +122,10 @@ MidiControlUI::reset_ports ()
        if ((p = dynamic_cast<AsyncMIDIPort*> (_session.mmc_input_port()))) {
                ports.push_back (p);
        }
+
+       if ((p = dynamic_cast<AsyncMIDIPort*> (_session.scene_input_port()))) {
+               ports.push_back (p);
+       }
        
        if (ports.empty()) {
                return;