19 #ifndef ardour_surface_console1_h
20 #define ardour_surface_console1_h
27 #define ABSTRACT_UI_EXPORTS
53 class ReadOnlyControl;
78 class ControllerButton;
79 class MultiStateButton;
240 {
"VOLUME", ControllerID::VOLUME },
241 {
"PAN", ControllerID::PAN },
242 {
"MUTE", ControllerID::MUTE },
243 {
"SOLO", ControllerID::SOLO },
244 {
"ORDER", ControllerID::ORDER },
245 {
"DRIVE", ControllerID::DRIVE },
246 {
"EXTERNAL_SIDECHAIN", ControllerID::EXTERNAL_SIDECHAIN },
247 {
"CHARACTER", ControllerID::CHARACTER },
248 {
"FOCUS1", ControllerID::FOCUS1 },
249 {
"FOCUS2", ControllerID::FOCUS2 },
250 {
"FOCUS3", ControllerID::FOCUS3 },
251 {
"FOCUS4", ControllerID::FOCUS4 },
252 {
"FOCUS5", ControllerID::FOCUS5 },
253 {
"FOCUS6", ControllerID::FOCUS6 },
254 {
"FOCUS7", ControllerID::FOCUS7 },
255 {
"FOCUS8", ControllerID::FOCUS8 },
256 {
"FOCUS9", ControllerID::FOCUS9 },
257 {
"FOCUS10", ControllerID::FOCUS10 },
258 {
"FOCUS11", ControllerID::FOCUS11 },
259 {
"FOCUS12", ControllerID::FOCUS12 },
260 {
"FOCUS13", ControllerID::FOCUS13 },
261 {
"FOCUS14", ControllerID::FOCUS14 },
262 {
"FOCUS15", ControllerID::FOCUS15 },
263 {
"FOCUS16", ControllerID::FOCUS16 },
264 {
"FOCUS17", ControllerID::FOCUS17 },
265 {
"FOCUS18", ControllerID::FOCUS18 },
266 {
"FOCUS19", ControllerID::FOCUS19 },
267 {
"FOCUS20", ControllerID::FOCUS20 },
268 {
"COMP", ControllerID::COMP },
269 {
"COMP_THRESH", ControllerID::COMP_THRESH },
270 {
"COMP_RELEASE", ControllerID::COMP_RELEASE },
271 {
"COMP_RATIO", ControllerID::COMP_RATIO },
272 {
"COMP_PAR", ControllerID::COMP_PAR },
273 {
"COMP_ATTACK", ControllerID::COMP_ATTACK },
274 {
"SHAPE", ControllerID::SHAPE },
275 {
"SHAPE_GATE", ControllerID::SHAPE_GATE },
276 {
"SHAPE_SUSTAIN", ControllerID::SHAPE_SUSTAIN },
277 {
"SHAPE_RELEASE", ControllerID::SHAPE_RELEASE },
278 {
"SHAPE_PUNCH", ControllerID::SHAPE_PUNCH },
279 {
"PRESET", ControllerID::PRESET },
280 {
"HARD_GATE", ControllerID::HARD_GATE },
281 {
"FILTER_TO_COMPRESSORS", ControllerID::FILTER_TO_COMPRESSORS },
282 {
"HIGH_SHAPE", ControllerID::HIGH_SHAPE },
283 {
"EQ", ControllerID::EQ },
284 {
"HIGH_GAIN", ControllerID::HIGH_GAIN },
285 {
"HIGH_FREQ", ControllerID::HIGH_FREQ },
286 {
"HIGH_MID_GAIN", ControllerID::HIGH_MID_GAIN },
287 {
"HIGH_MID_FREQ", ControllerID::HIGH_MID_FREQ },
288 {
"HIGH_MID_SHAPE", ControllerID::HIGH_MID_SHAPE },
289 {
"LOW_MID_GAIN", ControllerID::LOW_MID_GAIN },
290 {
"LOW_MID_FREQ", ControllerID::LOW_MID_FREQ },
291 {
"LOW_MID_SHAPE", ControllerID::LOW_MID_SHAPE },
292 {
"LOW_GAIN", ControllerID::LOW_GAIN },
293 {
"LOW_FREQ", ControllerID::LOW_FREQ },
294 {
"LOW_SHAPE", ControllerID::LOW_SHAPE },
295 {
"PAGE_UP", ControllerID::PAGE_UP },
296 {
"PAGE_DOWN", ControllerID::PAGE_DOWN },
297 {
"DISPLAY_ON", ControllerID::DISPLAY_ON },
298 {
"LOW_CUT", ControllerID::LOW_CUT },
299 {
"MODE", ControllerID::MODE },
300 {
"HIGH_CUT", ControllerID::HIGH_CUT },
301 {
"GAIN", ControllerID::GAIN },
302 {
"PHASE_INV", ControllerID::PHASE_INV },
303 {
"INPUT_METER_L", ControllerID::INPUT_METER_L },
304 {
"INPUT_METER_R", ControllerID::INPUT_METER_R },
305 {
"OUTPUT_METER_L", ControllerID::OUTPUT_METER_L },
306 {
"OUTPUT_METER_R", ControllerID::OUTPUT_METER_R },
307 {
"SHAPE_METER", ControllerID::SHAPE_METER },
308 {
"COMP_METER", ControllerID::COMP_METER },
309 {
"TRACK_COPY", ControllerID::TRACK_COPY },
310 {
"TRACK_GROUP", ControllerID::TRACK_GROUP } };
340 int32_t selected_intern_plugin_index = -1;
350 std::function<
void (uint32_t)> action,
351 std::function<
void (uint32_t)> shift_action = 0);
392 typedef std::map<ControllerID, ArdourSurface::ControllerButton*>
ButtonMap;
394 typedef std::map<ControllerID, ArdourSurface::Meter*>
MeterMap;
395 typedef std::map<ControllerID, ArdourSurface::Encoder*>
EncoderMap;
477 std::shared_ptr<ARDOUR::ReadOnlyControl>
control;
494 void gain (
const uint32_t value);
496 void pan (
const uint32_t value);
504 void trim (
const uint32_t value);
506 void zoom (
const uint32_t value);
514 void gate (
const uint32_t value);
529 void eq (
const uint32_t);
530 void eq_freq (
const uint32_t band, uint32_t value);
531 void eq_gain (
const uint32_t band, uint32_t value);
541 eq_freq_id = ControllerID::LOW_FREQ;
544 eq_freq_id = ControllerID::LOW_MID_FREQ;
547 eq_freq_id = ControllerID::HIGH_MID_FREQ;
550 eq_freq_id = ControllerID::HIGH_FREQ;
561 eq_gain_id = ControllerID::LOW_GAIN;
564 eq_gain_id = ControllerID::LOW_MID_GAIN;
567 eq_gain_id = ControllerID::HIGH_MID_GAIN;
570 eq_gain_id = ControllerID::HIGH_GAIN;
579 return ControllerID::CONTROLLER_NONE;
580 ControllerID eq_gain_id = ControllerID::CONTROLLER_NONE;
586 eq_gain_id = ControllerID::LOW_MID_SHAPE;
589 eq_gain_id = ControllerID::HIGH_MID_SHAPE;
601 void comp (
const uint32_t value);
718 void create_mapping (
const std::shared_ptr<ARDOUR::Processor> proc,
const std::shared_ptr<ARDOUR::Plugin> plugin);
724 std::shared_ptr<ARDOUR::Processor>
find_plugin (
const int32_t plugin_index);
void strip_inventory_changed(ARDOUR::RouteList &)
std::map< std::string, PluginMapping > PluginMappingMap
Glib::RefPtr< Gtk::ListStore > plugin_controller_model
void map_gate_filter_freq()
float midi_to_control(Controllable controllable, uint32_t val, uint32_t max_value_for_type=127)
ControllerID eq_q_controller_for_band(const uint32_t band)
Meter * get_meter(ControllerID) const
std::map< ControllerID, std::string > plugin_labels
void connect_comp_controls()
void reset_midi_assign_mode()
void eq_low_shape(const uint32_t value)
std::shared_ptr< ARDOUR::AutomationControl > gate_sustain_control() const
void comp_mode(const uint32_t value)
ARDOUR::MonitorState monitor_state
StripInventoryMap strip_inventory
void gate_listen(const uint32_t value)
int device_acquire() override
std::weak_ptr< ARDOUR::Stripable > pre_monitor_stripable
uint32_t last_output_meter_r
Encoder * get_encoder(ControllerID) const
void rude_solo(const uint32_t)
std::string control_label(ControllerID id) const
std::string output_port_name() const override
std::shared_ptr< ARDOUR::ReadOnlyControl > gate_redux_meter
PBD::Signal< void()> PluginStubAdded
bool has_editor() const override
PluginMappingMap pluginMappingMap
void comp_makeup(const uint32_t value)
sigc::signal2< void, int, bool > SendControllerNumber
void start_blinking(ControllerID)
uint32_t last_output_meter_l
void create_mapping(const std::shared_ptr< ARDOUR::Processor > proc, const std::shared_ptr< ARDOUR::Plugin > plugin)
ControllerID eq_gain_controller_for_band(const uint32_t band)
void window(const uint32_t value)
void zoom(const uint32_t value)
void notify_parameter_changed(std::string) override
PBD::Signal< void()> ConnectionChange
ControllerID get_send_controllerid(uint32_t)
void plugin_state(const uint32_t)
void comp_ratio(const uint32_t value)
std::map< std::string, ControllerID > ControllerMap
void gate_hold(const uint32_t value)
bool plugin_meter_active(ControllerID id) const
bool spill_plugins(const int32_t plugin_index)
const std::string findControllerNameById(const ControllerID id)
int set_state(const XMLNode &, int version) override
order_t get_inventory_order_by_index(const uint32_t index)
Console1(ARDOUR::Session &)
void map_eq_freq(const uint32_t band)
PBD::Signal< void(bool)> EQBandQBindingChange
void drop_current_stripable()
void notify_transport_state_changed() override
void connect_gate_controls()
SendControllerMap send_controllers
void comp(const uint32_t value)
void gate_filter_freq(const uint32_t value)
bool create_mapping_stubs
std::map< uint32_t, order_t > StripInventoryMap
void mapped_controls_changed()
void comp_thresh(const uint32_t value)
void low_cut(const uint32_t value)
void filter(const uint32_t value)
std::shared_ptr< ARDOUR::Processor > find_plugin(const int32_t plugin_index)
bool controls_initialized
void gate_depth(const uint32_t value)
void set_current_stripable(std::shared_ptr< ARDOUR::Stripable >)
bool map_encoder(ControllerID controllerID)
void update_plugin_meters()
void map_shift(bool shift)
PluginControllerColumns plugin_controller_columns
void trim(const uint32_t value)
void select_initial_stripable()
void set_shift_state(bool state)
PBD::Signal< void(bool)> BlinkIt
void gate_attack(const uint32_t value)
bool map_select_plugin(const int32_t plugin_index)
std::vector< PluginMeter > plugin_meters
float calculate_meter(float dB)
void shift(const uint32_t)
void select(const uint32_t i)
void gate_scf(const uint32_t value)
void schedule_initial_selection()
bool is_in_plugin_state() const
void map_eq_band_q(const uint32_t band)
void high_cut(const uint32_t value)
void eq_freq(const uint32_t band, uint32_t value)
void solo(const uint32_t)
void connect_session_signals() override
void phase(const uint32_t)
void map_plugin_state(bool state)
int32_t current_plugin_index
std::map< ControllerID, ArdourSurface::ControllerButton * > ButtonMap
int stop_using_device() override
void band_q_usage_changed()
PBD::ScopedConnectionList console1_connections
void mb_send_level(const uint32_t n, const uint32_t value)
PBD::ScopedConnectionList stripable_connections
std::shared_ptr< ARDOUR::AutomationControl > gate_hard_control() const
bool shift_state_before_plugin
std::shared_ptr< ARDOUR::ReadOnlyControl > comp_redux_meter
void map_encoder(ControllerID controllerID, std::shared_ptr< ARDOUR::AutomationControl > control)
std::map< ControllerID, ArdourSurface::MultiStateButton * > MultiStateButtonMap
ControllerButton * get_button(ControllerID) const
void periodic_update_meter()
void map_mb_send_level(const uint32_t n)
void gate_hyst(const uint32_t value)
std::map< uint32_t, PluginParameterMapping > ParameterMap
void write_plugin_mapping(PluginMapping &mapping)
PBD::Signal< void()> LabelsChanged
void drive(uint32_t value)
void stop_blinking(ControllerID)
std::shared_ptr< ARDOUR::Stripable > _current_stripable
void map_eq_gain(const uint32_t band)
void notify_solo_active_changed(bool) override
void device_release() override
uint32_t get_index_by_inventory_order(order_t order)
void tear_down_gui() override
ControllerID eq_freq_controller_for_band(const uint32_t band)
void eq_high_shape(const uint32_t value)
std::map< ControllerID, ArdourSurface::Encoder * > EncoderMap
void eq_gain(const uint32_t band, uint32_t value)
ControllerMap controllerMap
std::map< ControllerID, ArdourSurface::Meter * > MeterMap
void master_monitor_has_changed()
MultiStateButton * get_mbutton(ControllerID id) const
void eq_band_q(const uint32_t band, uint32_t value)
void mute(const uint32_t)
uint32_t current_strippable_index
std::shared_ptr< ARDOUR::AutomationControl > gate_hard_shift_control() const
int begin_using_device() override
bool select_plugin(const int32_t plugin_index)
void * get_gui() const override
void comp_emph(const uint32_t value)
void gate(const uint32_t value)
void gate_thresh(const uint32_t value)
std::shared_ptr< ARDOUR::AutomationControl > comp_par_control() const
float smoothed_comp_redux
PBD::Signal< void(bool)> PluginStateChange
std::map< uint32_t, ControllerID > SendControllerMap
void handle_midi_controller_message(MIDI::Parser &, MIDI::EventTwoBytes *tb) override
PBD::Signal< void(bool)> ShiftChange
int set_active(bool yn) override
PBD::ScopedConnectionList plugin_connections
void map_stripable_state()
std::shared_ptr< ARDOUR::AutomationControl > current_pan_control
sigc::connection periodic_connection
XMLNode & get_state() const override
void create_encoder(ControllerID id, std::function< void(uint32_t)> action, std::function< void(uint32_t)> shift_action=0)
sigc::connection blink_connection
std::string config_dir_name
void connect_internal_signals()
void comp_release(const uint32_t value)
sigc::connection initial_selection_connection
PBD::ScopedConnectionList gate_connections
PBD::Signal< void()> BankChange
void create_strip_inventory()
void pan(const uint32_t value)
Glib::RefPtr< Gtk::ListStore > getPluginControllerModel()
uint32_t control_to_midi(Controllable controllable, float val, uint32_t max_value_for_type=127)
PBD::ScopedConnectionList eq_connections
std::list< ControllerID > Blinkers
void gate_release(const uint32_t value)
PBD::ScopedConnectionList comp_connections
void stripable_selection_changed() override
void select_rid_by_index(const uint32_t index)
std::weak_ptr< ARDOUR::Stripable > pre_master_stripable
PBD::Signal< void()> Periodic
void remove_plugin_operations()
void gain(const uint32_t value)
MultiStateButtonMap multi_buttons
void comp_attack(const uint32_t value)
bool load_mapping(XMLNode *fin)
std::string input_port_name() const override
void connect_eq_controls()
void eqBandQChangeMapping(bool mapValues)
ControlNotFoundException()
void add(TreeModelColumnBase &column)
PBD::PropertyDescriptor< uint32_t > order
std::list< std::shared_ptr< Route > > RouteList
ARDOUR::PresentationInfo::order_t order_t
std::shared_ptr< PBD::Controllable > Controllable
PluginControllerColumns()
Gtk::TreeModelColumn< std::string > controllerName
Gtk::TreeModelColumn< int > controllerId
ARDOUR::ParameterDescriptor descriptor
std::shared_ptr< ARDOUR::ReadOnlyControl > control
ControllerID controllerId