add a (potentially temporary) discover button for mackie devices
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 9 May 2012 16:44:06 +0000 (16:44 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 9 May 2012 16:44:06 +0000 (16:44 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12228 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/surfaces/mackie/gui.cc
libs/surfaces/mackie/gui.h
libs/surfaces/mackie/mackie_control_protocol.h
libs/surfaces/mackie/surface.cc

index 8728b4a88c51e8c097a371d9f98557a08098cc4e..e27a354305de65c2f4bff3cc867936d46d3270f0 100644 (file)
@@ -74,13 +74,14 @@ MackieControlProtocolGUI::MackieControlProtocolGUI (MackieControlProtocol& p)
        , recalibrate_fader_button (_("Recalibrate Faders"))
        , ipmidi_base_port_adjustment (_cp.ipmidi_base(), 0, 32767, 1, 1000)
        , ipmidi_base_port_spinner (ipmidi_base_port_adjustment)
+       , discover_button (_("Discover Mackie Devices"))
 {
        Gtk::Label* l;
        Gtk::Alignment* align;
 
        set_border_width (12);
 
-       Gtk::Table* table = Gtk::manage (new Gtk::Table (2, 8));
+       Gtk::Table* table = Gtk::manage (new Gtk::Table (2, 9));
        table->set_row_spacings (4);
        table->set_col_spacings (6);
        l = manage (new Gtk::Label (_("Device Type:")));
@@ -144,6 +145,10 @@ MackieControlProtocolGUI::MackieControlProtocolGUI (MackieControlProtocol& p)
        ipmidi_base_port_spinner.set_sensitive (_cp.device_info().uses_ipmidi());
        ipmidi_base_port_adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &MackieControlProtocolGUI::ipmidi_spinner_changed));
 
+       
+       table->attach (discover_button, 1, 2, 8, 9, AttachOptions(FILL|EXPAND), AttachOptions (0));
+       discover_button.signal_clicked().connect (sigc::mem_fun (*this, &MackieControlProtocolGUI::discover_clicked));
+
        vector<string> profiles;
        
        profiles.push_back ("default");
@@ -510,3 +515,10 @@ MackieControlProtocolGUI::ipmidi_spinner_changed ()
        cerr << "Set IP MIDI base to " << ipmidi_base_port_spinner.get_value() << endl;
        _cp.set_ipmidi_base ((int16_t) lrintf (ipmidi_base_port_spinner.get_value()));
 }
+
+void
+MackieControlProtocolGUI::discover_clicked ()
+{
+       /* this should help to get things started */
+       _cp.midi_connectivity_established ();
+}
index 9af0c21cab094291e1f058139f20687486884cd2..42ee338f9960c41aa4702151d8f2ac888e6e090c 100644 (file)
@@ -105,5 +105,8 @@ class MackieControlProtocolGUI : public Gtk::Notebook
     Gtk::Button      recalibrate_fader_button;
     Gtk::Adjustment  ipmidi_base_port_adjustment;
     Gtk::SpinButton  ipmidi_base_port_spinner;
+    Gtk::Button      discover_button;
+
+    void discover_clicked ();
 };
 
index 818f44b13c2ca56d569a96d3bd96bf5034b036bd..0fd5d8c8a26ef16cc32166e8b43567fc88f79e5a 100644 (file)
@@ -195,6 +195,8 @@ class MackieControlProtocol
 
        int16_t ipmidi_base() const { return _ipmidi_base; }
        void    set_ipmidi_base (int16_t);
+
+       void midi_connectivity_established ();
        
   protected:
        // shut down the surface
@@ -233,7 +235,6 @@ class MackieControlProtocol
        int stop ();
 
        void thread_init ();
-       void midi_connectivity_established ();
 
        bool route_is_locked_to_strip (boost::shared_ptr<ARDOUR::Route>) const;
 
index 4d9ab3f87724a567ab36f1dcaad2aef5893f617f..3fa76c2240efb3eedd4c3a4b216e8239db61dbfb 100644 (file)
@@ -803,6 +803,8 @@ Surface::gui_selection_changed (const ARDOUR::StrongRouteNotificationList& route
 void
 Surface::say_hello ()
 {
+       cerr << "Sending hello to port " << _port->output_port().name() << endl;
+
        /* wakeup for Mackie Control */
        MidiByteArray wakeup (7, MIDI::sysex, 0x00, 0x00, 0x66, 0x14, 0x00, MIDI::eox);
        _port->write (wakeup);