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