only the last step-edited note remains selected after each note addition; waf install...
[ardour.git] / gtk2_ardour / io_selector.h
index a4545dbfc43c34133ce4757d8bdab5c277539a4f..32946fb1b7718c4687eddd126ef0e005d104ee1b 100644 (file)
@@ -22,7 +22,6 @@
 
 #include "ardour_dialog.h"
 #include "port_matrix.h"
-#include "i18n.h"
 
 namespace ARDOUR {
        class PortInsert;
@@ -36,13 +35,8 @@ class IOSelector : public PortMatrix
        void set_state (ARDOUR::BundleChannel c[2], bool);
        PortMatrixNode::State get_state (ARDOUR::BundleChannel c[2]) const;
 
-       std::string disassociation_verb () const {
-               return _("Disconnect");
-       }
-
-       std::string channel_noun () const {
-               return _("port");
-       }
+       std::string disassociation_verb () const;
+       std::string channel_noun () const;
 
        uint32_t n_io_ports () const;
        boost::shared_ptr<ARDOUR::IO> const io () { return _io; }
@@ -63,11 +57,16 @@ class IOSelector : public PortMatrix
 
   private:
 
+       void setup_type ();
+       void io_changed ();
+       void io_changed_proxy ();
+       
        int _other;
        int _ours;
        boost::shared_ptr<ARDOUR::IO> _io;
        boost::shared_ptr<PortGroup> _port_group;
        bool _find_inputs_for_io_outputs;
+       PBD::ScopedConnection _io_connection;
 };
 
 class IOSelectorWindow : public Gtk::Window
@@ -98,8 +97,18 @@ class PortInsertUI : public Gtk::HBox
        void finished (IOSelector::Result);
 
   private:
+        boost::shared_ptr<ARDOUR::PortInsert> _pi;
+        
+        Gtk::ToggleButton latency_button;
        IOSelector input_selector;
        IOSelector output_selector;
+        Gtk::Label latency_display;
+        Gtk::Frame latency_frame;
+        Gtk::HBox  latency_hbox;
+        sigc::connection latency_timeout;
+
+        bool check_latency_measurement ();
+        void latency_button_toggled ();
 };
 
 class PortInsertWindow : public ArdourDialog