20 #ifndef __ardour_mackie_control_protocol_subview_h__
21 #define __ardour_mackie_control_protocol_subview_h__
27 struct ParameterDescriptor;
34 class MackieControlProtocol;
67 std::string pending_display[2]) = 0;
78 MackieControlProtocol&
mcp() {
return _mcp; }
87 void store_pointers(Strip* strip, Pot* vpot, std::string* pending_display, uint32_t global_strip_position);
88 bool retrieve_pointers(Strip** strip, Pot** vpot, std::string** pending_display, uint32_t global_strip_position);
90 MackieControlProtocol&
_mcp;
114 std::string pending_display[2]);
128 std::string pending_display[2]);
129 void notify_change (std::weak_ptr<ARDOUR::AutomationControl>, uint32_t global_strip_position,
bool force);
143 std::string pending_display[2]);
144 void notify_change (std::weak_ptr<ARDOUR::AutomationControl>, uint32_t global_strip_position,
bool force,
bool propagate_mode_change);
159 std::string pending_display[2]);
181 std::string pending_display[2]);
199 std::string pending_display[2]);
204 void set_state(std::shared_ptr<PluginSubviewState> new_state);
222 std::string pending_display[2],
223 uint32_t global_strip_position,
224 std::shared_ptr<ARDOUR::Stripable> subview_stripable) = 0;
225 virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable) = 0;
247 std::string pending_display[2],
248 uint32_t global_strip_position,
249 std::shared_ptr<ARDOUR::Stripable> subview_stripable);
250 virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
266 std::string pending_display[2],
267 uint32_t global_strip_position,
268 std::shared_ptr<ARDOUR::Stripable> subview_stripable);
269 virtual void handle_vselect_event(uint32_t global_strip_position, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
278 std::shared_ptr<ARDOUR::AutomationControl>
parameter_control(uint32_t global_strip_position)
const;
290 MackieControlProtocol& mcp, std::shared_ptr<ARDOUR::Stripable> subview_stripable);
virtual void update_global_buttons()
DynamicsSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
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 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])
static bool subview_mode_would_be_ok(std::shared_ptr< ARDOUR::Stripable > r, std::string &reason_why_not)
virtual void update_global_buttons()
virtual Mode subview_mode() const
EQSubview(MackieControlProtocol &mcp, std::shared_ptr< ARDOUR::Stripable > subview_stripable)
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()
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