MIDI port options now tracks dynamic port register/unregister
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 20 Oct 2016 14:21:44 +0000 (10:21 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 20 Oct 2016 14:21:44 +0000 (10:21 -0400)
gtk2_ardour/rc_option_editor.cc

index 74e38831a10aa481a5e26e7bc52a11c022f2b77a..e8350b01678105ed8a86fd9e06a8f8b8cf4e58d5 100644 (file)
@@ -1854,7 +1854,7 @@ private:
 };
 
 
-class MidiPortOptions : public OptionEditorBox
+class MidiPortOptions : public OptionEditorBox, public sigc::trackable
 {
   public:
        MidiPortOptions() {
@@ -1879,8 +1879,16 @@ class MidiPortOptions : public OptionEditorBox
 
        void parameter_changed (string const&) {}
        void set_state_from_config() {}
+
        void on_show () {
+               refill ();
+               AudioEngine::instance()->PortRegisteredOrUnregistered.connect (port_connection,
+                                                                              invalidator (*this),
+                                                                              boost::bind (&MidiPortOptions::refill, this),
+                                                                              gui_context());
+       }
 
+       void refill () {
                if (refill_midi_ports (true, midi_input_view)) {
                        input_label.show ();
                } else {
@@ -1894,6 +1902,7 @@ class MidiPortOptions : public OptionEditorBox
        }
 
   private:
+       PBD::ScopedConnection port_connection;
 
        /* MIDI port management */
        struct MidiPortColumns : public Gtk::TreeModel::ColumnRecord {