Mackie::DeviceProfile& device_profile() { return _device_profile; }
int set_active (bool yn);
- void set_device (const std::string&);
+ void set_device (const std::string&, bool allow_activation = true);
void set_profile (const std::string&);
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);
void set_master_on_surface_strip (uint32_t surface, uint32_t strip);
void set_monitor_on_surface_strip (uint32_t surface, uint32_t strip);
- uint32_t n_strips () const;
+ uint32_t n_strips (bool with_locked_strips = true) const;
bool has_editor () const { return true; }
void* get_gui () const;
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);
/// 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);
void add_down_select_button (int surface, int strip);
void remove_down_select_button (int surface, int strip);
void select_range ();
+
+ int16_t ipmidi_base() const { return _ipmidi_base; }
+ void set_ipmidi_base (int16_t);
+
+ void midi_connectivity_established ();
protected:
// shut down the surface
int stop ();
void thread_init ();
- void midi_connectivity_established ();
+
+ bool route_is_locked_to_strip (boost::shared_ptr<ARDOUR::Route>) const;
private:
int _modifier_state;
PortSources port_sources;
ButtonMap button_map;
+ int16_t _ipmidi_base;
+ bool needs_ipmidi_restart;
+ bool _metering_active;
+
+ ARDOUR::RouteNotificationList _last_selected_routes;
void create_surfaces ();
bool periodic();
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 */
typedef std::set<uint32_t> DownButtonList;