X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fsurfaces%2Fmackie%2Fmackie_control_protocol.h;h=d418871d6a3cc25c639958c31774c49186907d9b;hb=66686a4e2a0b9e8eee82285b07ed83974dd0cd8c;hp=9b08d47d358c0bae469d0fb653bd3e9cf215a4a6;hpb=96c6da0804f563eb0078df73121c254ee2d33b82;p=ardour.git diff --git a/libs/surfaces/mackie/mackie_control_protocol.h b/libs/surfaces/mackie/mackie_control_protocol.h index 9b08d47d35..d418871d6a 100644 --- a/libs/surfaces/mackie/mackie_control_protocol.h +++ b/libs/surfaces/mackie/mackie_control_protocol.h @@ -58,6 +58,7 @@ namespace Mackie { class Control; class SurfacePort; class Button; + class Strip; } gboolean ipmidi_input_handler (GIOChannel*, GIOCondition condition, void *data); @@ -108,12 +109,19 @@ class MackieControlProtocol Busses, Auxes, Selected, + Hidden, Plugins, }; + enum SubViewMode { + None, + EQ, + Dynamics, + Sends, + }; + enum PotMode { Trim, - Send, Pan, }; @@ -143,6 +151,8 @@ class MackieControlProtocol FlipMode flip_mode () const { return _flip_mode; } ViewMode view_mode () const { return _view_mode; } + SubViewMode subview_mode () const { return _subview_mode; } + boost::shared_ptr subview_route() const; PotMode pot_mode () const { return _pot_mode; } bool zoom_mode () const { return modifier_state() & MODIFIER_ZOOM; } bool metering_active () const { return _metering_active; } @@ -151,10 +161,14 @@ class MackieControlProtocol bool is_audio_track (boost::shared_ptr) const; bool is_midi_track (boost::shared_ptr) const; bool selected (boost::shared_ptr) const; + bool is_hidden (boost::shared_ptr) const; + boost::shared_ptr first_selected_route () const; void set_view_mode (ViewMode); + void set_subview_mode (SubViewMode, boost::shared_ptr); void set_flip_mode (FlipMode); void set_pot_mode (PotMode); + void pot_mode_globals (); void display_view_mode (); XMLNode& get_state (); @@ -166,6 +180,7 @@ class MackieControlProtocol */ static bool probe(); + static void* request_factory (uint32_t); mutable Glib::Threads::Mutex surfaces_lock; typedef std::list > Surfaces; @@ -174,6 +189,8 @@ class MackieControlProtocol boost::shared_ptr get_surface_by_raw_pointer (void*) const; boost::shared_ptr nth_surface (uint32_t) const; + uint32_t global_index (Mackie::Strip&); + std::list > bundles (); void set_master_on_surface_strip (uint32_t surface, uint32_t strip); @@ -187,6 +204,8 @@ class MackieControlProtocol void handle_button_event (Mackie::Surface&, Mackie::Button& button, Mackie::ButtonState); + void notify_subview_route_deleted (); + void notify_route_added_or_removed (); void notify_route_added (ARDOUR::RouteList &); void notify_remote_id_changed(); @@ -303,11 +322,13 @@ class MackieControlProtocol PBD::ScopedConnectionList audio_engine_connections; PBD::ScopedConnectionList session_connections; PBD::ScopedConnectionList route_connections; + PBD::ScopedConnectionList subview_route_connections; PBD::ScopedConnectionList gui_connections; // timer for two quick marker left presses Mackie::Timer _frm_left_last; // last written timecode string std::string _timecode_last; + framepos_t _frame_last; // Which timecode are we displaying? BBT or Timecode ARDOUR::AnyTime::Type _timecode_type; // Bundle to represent our input ports @@ -318,6 +339,8 @@ class MackieControlProtocol bool _scrub_mode; FlipMode _flip_mode; ViewMode _view_mode; + SubViewMode _subview_mode; + boost::shared_ptr _subview_route; PotMode _pot_mode; int _current_selected_track; int _modifier_state; @@ -351,7 +374,7 @@ class MackieControlProtocol void force_special_route_to_strip (boost::shared_ptr r, uint32_t surface, uint32_t strip_number); void build_button_map (); void gui_track_selection_changed (ARDOUR::RouteNotificationListPtr, bool save_list); - void _gui_track_selection_changed (ARDOUR::RouteNotificationList*, bool save_list); + void _gui_track_selection_changed (ARDOUR::RouteNotificationList*, bool save_list, bool gui_did_change); int ipmidi_restart (); void initialize (); int set_device_info (const std::string& device_name); @@ -402,8 +425,6 @@ class MackieControlProtocol Mackie::LedState channel_right_release(Mackie::Button &); Mackie::LedState clicking_press(Mackie::Button &); Mackie::LedState clicking_release(Mackie::Button &); - Mackie::LedState global_solo_press(Mackie::Button &); - Mackie::LedState global_solo_release(Mackie::Button &); Mackie::LedState marker_press(Mackie::Button &); Mackie::LedState marker_release(Mackie::Button &); Mackie::LedState save_press(Mackie::Button &);