part two of: make region gain line visibility global, not per-region
[ardour.git] / libs / ardour / ardour / midi_ui.h
index e1f322ddd105fe1cf491d19c9c9ed08460c673eb..51e3ca254458392fefd485b26c736ef64c56fa64 100644 (file)
@@ -2,10 +2,12 @@
 #define __libardour_midi_ui_h__
 
 #include <list>
+
 #include "pbd/abstract_ui.h"
+#include "pbd/signals.h"
 
-namespace MIDI { 
-       class port;
+namespace MIDI {
+       class Port;
 }
 
 namespace ARDOUR {
@@ -28,23 +30,28 @@ class MidiControlUI : public AbstractUI<MidiUIRequest>
   public:
        MidiControlUI (Session& s);
        ~MidiControlUI ();
-       
+
+       static MidiControlUI* instance() { return _instance; }
+
        static BaseUI::RequestType PortChange;
-       
+
        void change_midi_ports ();
-       
+
   protected:
        void thread_init ();
        void do_request (MidiUIRequest*);
-       
+
   private:
-       typedef std::list<Glib::RefPtr<Glib::IOSource> > PortSources;
+       typedef std::list<GSource*> PortSources;
        PortSources port_sources;
        ARDOUR::Session& _session;
-       
+       PBD::ScopedConnection rebind_connection;
+
        bool midi_input_handler (Glib::IOCondition, MIDI::Port*);
        void reset_ports ();
        void clear_ports ();
+
+       static MidiControlUI* _instance;
 };
 
 }