MCP: Patch from Rodrigo that:
[ardour.git] / libs / surfaces / mackie / mackie_control_protocol.h
index 0df770b36eab788ad46da8e55edb9cd3943ec232..eb3cc22b8cfe38cc519516f46744ca1578315a02 100644 (file)
@@ -128,6 +128,7 @@ class MackieControlProtocol
        bool     flip_mode () const { return _flip_mode; }
        ViewMode view_mode () const { return _view_mode; }
        bool zoom_mode () const { return _zoom_mode; }
+       bool     metering_active () const { return _metering_active; }
 
        void set_view_mode (ViewMode);
        void set_flip_mode (bool);
@@ -164,6 +165,7 @@ class MackieControlProtocol
        void notify_record_state_changed();
        void notify_transport_state_changed();
        void notify_loop_state_changed();
+       void notify_metering_state_changed();
        // mainly to pick up punch-in and punch-out
        void notify_parameter_changed(std::string const &);
        void notify_solo_active_changed(bool);
@@ -171,7 +173,7 @@ class MackieControlProtocol
        /// Turn timecode on and beats off, or vice versa, depending
        /// on state of _timecode_type
        void update_timecode_beats_led();
-  
+       
        /// this is called to generate the midi to send in response to a button press.
        void update_led(Mackie::Surface&, Mackie::Button & button, Mackie::LedState);
   
@@ -195,6 +197,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 +237,6 @@ class MackieControlProtocol
        int stop ();
 
        void thread_init ();
-       void midi_connectivity_established ();
 
        bool route_is_locked_to_strip (boost::shared_ptr<ARDOUR::Route>) const;
 
@@ -285,6 +288,9 @@ class MackieControlProtocol
        ButtonMap                 button_map;
        int16_t                  _ipmidi_base;
        bool                      needs_ipmidi_restart;
+       bool                     _metering_active;
+
+       ARDOUR::RouteNotificationList _last_selected_routes;
 
        void create_surfaces ();
        bool periodic();
@@ -293,7 +299,8 @@ class MackieControlProtocol
        void clear_ports ();
        void force_special_route_to_strip (boost::shared_ptr<ARDOUR::Route> r, uint32_t surface, uint32_t strip_number);
        void build_button_map ();
-       void gui_track_selection_changed (ARDOUR::RouteNotificationListPtr);
+       void gui_track_selection_changed (ARDOUR::RouteNotificationListPtr, bool save_list);
+       void _gui_track_selection_changed (ARDOUR::RouteNotificationList*, bool save_list);
        void ipmidi_restart ();
        
        /* BUTTON HANDLING */