20 #ifndef __ardour_mackie_control_protocol_subview_h__ 
   21 #define __ardour_mackie_control_protocol_subview_h__ 
   27         struct ParameterDescriptor;
 
   34 class MackieControlProtocol;
 
   68                 std::string pending_display[2]) = 0;
 
   79         MackieControlProtocol& 
mcp() { 
return _mcp; }
 
   88         void store_pointers(Strip* strip, Pot* vpot, std::string* pending_display, uint32_t global_strip_position);
 
   89         bool retrieve_pointers(Strip** strip, Pot** vpot, std::string** pending_display, uint32_t global_strip_position);
 
   91         MackieControlProtocol& 
_mcp;
 
  115                 std::string pending_display[2]);
 
  130                 std::string pending_display[2]);
 
  131         void notify_change (std::weak_ptr<ARDOUR::AutomationControl>, uint32_t global_strip_position, 
bool force);
 
  136         std::vector<std::pair<std::shared_ptr<ARDOUR::AutomationControl>, std::string>> 
available;
 
  151                 std::string pending_display[2]);
 
  152         void notify_change (std::weak_ptr<ARDOUR::AutomationControl>, uint32_t global_strip_position, 
bool force, 
bool propagate_mode_change);
 
  157         std::vector<std::pair<std::shared_ptr<ARDOUR::AutomationControl>, std::string>> 
available;
 
  172                 std::string pending_display[2]);
 
  194                 std::string pending_display[2]);
 
  212                 std::string pending_display[2]);
 
  217         void set_state(std::shared_ptr<PluginSubviewState> new_state);
 
  235                 std::string pending_display[2],
 
  236                 uint32_t global_strip_position,
 
  237                 std::shared_ptr<ARDOUR::Stripable> subview_stripable) = 0;
 
  238         virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable) = 0;
 
  260                 std::string pending_display[2],
 
  261                 uint32_t global_strip_position,
 
  262                 std::shared_ptr<ARDOUR::Stripable> subview_stripable);
 
  263         virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
 
  279                 std::string pending_display[2],
 
  280                 uint32_t global_strip_position,
 
  281                 std::shared_ptr<ARDOUR::Stripable> subview_stripable);
 
  282         virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
 
  291         std::shared_ptr<ARDOUR::AutomationControl> 
parameter_control(uint32_t global_strip_position) 
const;
 
  303                 MackieControlProtocol& mcp, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
 
virtual void update_global_buttons()
 
std::vector< std::pair< std::shared_ptr< ARDOUR::AutomationControl >, std::string > > available
 
DynamicsSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual bool handle_cursor_right_press()
 
virtual bool handle_cursor_left_press()
 
void notify_change(std::weak_ptr< ARDOUR::AutomationControl >, uint32_t global_strip_position, bool force, bool propagate_mode_change)
 
virtual ~DynamicsSubview()
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
virtual void init_params()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
virtual Subview::Mode subview_mode() const
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
virtual void init_params()
 
virtual bool handle_cursor_right_press()
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
std::vector< std::pair< std::shared_ptr< ARDOUR::AutomationControl >, std::string > > available
 
virtual void update_global_buttons()
 
virtual Mode subview_mode() const
 
EQSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual bool handle_cursor_left_press()
 
void notify_change(std::weak_ptr< ARDOUR::AutomationControl >, uint32_t global_strip_position, bool force)
 
virtual Mode subview_mode() const
 
virtual void update_global_buttons()
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
NoneSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
std::shared_ptr< ARDOUR::AutomationControl > parameter_control(uint32_t global_strip_position) const
 
virtual void bank_changed()
 
std::weak_ptr< ARDOUR::Plugin > _weak_subview_plugin
 
virtual bool handle_cursor_right_press()
 
virtual bool permit_flipping_faders_and_pots()
 
std::vector< uint32_t > _plugin_input_parameter_indices
 
void notify_parameter_change(Strip *strip, Pot *vpot, std::string pending_display[2], uint32_t global_strip_position)
 
virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
PluginEdit(PluginSubview &context, std::weak_ptr< ARDOUR::PluginInsert > weak_subview_plugin)
 
bool plugin_went_away() const
 
void switch_to_plugin_select_state()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2], uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
std::weak_ptr< ARDOUR::PluginInsert > _weak_subview_plugin_insert
 
PluginSelect(PluginSubview &context)
 
virtual bool handle_cursor_right_press()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2], uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void bank_changed()
 
const uint32_t _bank_size
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2], uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)=0
 
virtual bool handle_cursor_left_press()
 
static std::string shorten_display_text(const std::string &text, std::string::size_type target_length)
 
virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr< ARDOUR::Stripable > subview_stripable)=0
 
PluginSubviewState(PluginSubview &context)
 
virtual bool handle_cursor_right_press()=0
 
virtual bool permit_flipping_faders_and_pots()
 
virtual ~PluginSubviewState()
 
const uint32_t _bank_size
 
uint32_t calculate_virtual_strip_position(uint32_t strip_index) const
 
virtual void bank_changed()=0
 
void set_state(std::shared_ptr< PluginSubviewState > new_state)
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
virtual Subview::Mode subview_mode() const
 
virtual bool handle_cursor_right_press()
 
virtual bool handle_cursor_left_press()
 
void handle_processors_changed()
 
virtual bool permit_flipping_faders_and_pots()
 
std::shared_ptr< PluginSubviewState > _plugin_subview_state
 
virtual void handle_vselect_event(uint32_t global_strip_position)
 
void connect_processors_changed_signal()
 
PluginSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void update_global_buttons()
 
virtual Subview::Mode subview_mode() const
 
virtual bool permit_flipping_faders_and_pots()
 
SendsSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void handle_vselect_event(uint32_t global_strip_position)
 
virtual void update_global_buttons()
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
virtual bool handle_cursor_left_press()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
virtual bool handle_cursor_right_press()
 
void notify_send_level_change(uint32_t global_strip_position, bool force)
 
static SubviewFactory * instance()
 
std::shared_ptr< Subview > create_subview(Subview::Mode svm, MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
static SubviewFactory * _instance
 
std::vector< std::string * > _strip_pending_displays_over_all_surfaces
 
PBD::ScopedConnectionList & subview_connections()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])=0
 
bool retrieve_pointers(Strip **strip, Pot **vpot, std::string **pending_display, uint32_t global_strip_position)
 
PBD::ScopedConnectionList _subview_stripable_connections
 
std::vector< Strip * > _strips_over_all_surfaces
 
virtual Mode subview_mode() const =0
 
void do_parameter_display(std::string &display, const ARDOUR::ParameterDescriptor &pd, float param_val, Strip *strip, bool screen_hold)
 
MackieControlProtocol & _mcp
 
PBD::ScopedConnectionList _subview_connections
 
virtual bool handle_cursor_right_press()
 
virtual void init_params()
 
PBD::ScopedConnectionList & subview_stripable_connections()
 
virtual bool handle_cursor_left_press()
 
virtual bool permit_flipping_faders_and_pots()
 
virtual void update_global_buttons()=0
 
std::shared_ptr< ARDOUR::Stripable > _subview_stripable
 
void notify_subview_stripable_deleted()
 
virtual void handle_vselect_event(uint32_t global_strip_position)
 
void init_strip_vectors()
 
static bool subview_mode_would_be_ok(Subview::Mode, std::shared_ptr< ARDOUR::Stripable >, std::string &reason_why_not)
 
std::vector< Pot * > _strip_vpots_over_all_surfaces
 
void reset_all_vpot_controls()
 
void store_pointers(Strip *strip, Pot *vpot, std::string *pending_display, uint32_t global_strip_position)
 
std::shared_ptr< ARDOUR::Stripable > subview_stripable() const
 
Subview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
MackieControlProtocol & mcp()
 
virtual void setup_vpot(Strip *strip, Pot *vpot, std::string pending_display[2])
 
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
 
TrackViewSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
 
virtual void update_global_buttons()
 
virtual ~TrackViewSubview()
 
void notify_change(ARDOUR::AutomationType, uint32_t global_strip_position, bool force)
 
virtual Subview::Mode subview_mode() const