19 #ifndef ardour_surface_console1_h
20 #define ardour_surface_console1_h
26 #define ABSTRACT_UI_EXPORTS
48 class ReadOnlyControl;
73 class ControllerButton;
74 class MultiStateButton;
224 {
"VOLUME", ControllerID::VOLUME },
225 {
"PAN", ControllerID::PAN },
226 {
"MUTE", ControllerID::MUTE },
227 {
"SOLO", ControllerID::SOLO },
228 {
"ORDER", ControllerID::ORDER },
229 {
"DRIVE", ControllerID::DRIVE },
230 {
"EXTERNAL_SIDECHAIN", ControllerID::EXTERNAL_SIDECHAIN },
231 {
"CHARACTER", ControllerID::CHARACTER },
232 {
"FOCUS1", ControllerID::FOCUS1 },
233 {
"FOCUS2", ControllerID::FOCUS2 },
234 {
"FOCUS3", ControllerID::FOCUS3 },
235 {
"FOCUS4", ControllerID::FOCUS4 },
236 {
"FOCUS5", ControllerID::FOCUS5 },
237 {
"FOCUS6", ControllerID::FOCUS6 },
238 {
"FOCUS7", ControllerID::FOCUS7 },
239 {
"FOCUS8", ControllerID::FOCUS8 },
240 {
"FOCUS9", ControllerID::FOCUS9 },
241 {
"FOCUS10", ControllerID::FOCUS10 },
242 {
"FOCUS11", ControllerID::FOCUS11 },
243 {
"FOCUS12", ControllerID::FOCUS12 },
244 {
"FOCUS13", ControllerID::FOCUS13 },
245 {
"FOCUS14", ControllerID::FOCUS14 },
246 {
"FOCUS15", ControllerID::FOCUS15 },
247 {
"FOCUS16", ControllerID::FOCUS16 },
248 {
"FOCUS17", ControllerID::FOCUS17 },
249 {
"FOCUS18", ControllerID::FOCUS18 },
250 {
"FOCUS19", ControllerID::FOCUS19 },
251 {
"FOCUS20", ControllerID::FOCUS20 },
252 {
"COMP", ControllerID::COMP },
253 {
"COMP_THRESH", ControllerID::COMP_THRESH },
254 {
"COMP_RELEASE", ControllerID::COMP_RELEASE },
255 {
"COMP_RATIO", ControllerID::COMP_RATIO },
256 {
"COMP_PAR", ControllerID::COMP_PAR },
257 {
"COMP_ATTACK", ControllerID::COMP_ATTACK },
258 {
"SHAPE", ControllerID::SHAPE },
259 {
"SHAPE_GATE", ControllerID::SHAPE_GATE },
260 {
"SHAPE_SUSTAIN", ControllerID::SHAPE_SUSTAIN },
261 {
"SHAPE_RELEASE", ControllerID::SHAPE_RELEASE },
262 {
"SHAPE_PUNCH", ControllerID::SHAPE_PUNCH },
263 {
"PRESET", ControllerID::PRESET },
264 {
"HARD_GATE", ControllerID::HARD_GATE },
265 {
"FILTER_TO_COMPRESSORS", ControllerID::FILTER_TO_COMPRESSORS },
266 {
"HIGH_SHAPE", ControllerID::HIGH_SHAPE },
267 {
"EQ", ControllerID::EQ },
268 {
"HIGH_GAIN", ControllerID::HIGH_GAIN },
269 {
"HIGH_FREQ", ControllerID::HIGH_FREQ },
270 {
"HIGH_MID_GAIN", ControllerID::HIGH_MID_GAIN },
271 {
"HIGH_MID_FREQ", ControllerID::HIGH_MID_FREQ },
272 {
"HIGH_MID_SHAPE", ControllerID::HIGH_MID_SHAPE },
273 {
"LOW_MID_GAIN", ControllerID::LOW_MID_GAIN },
274 {
"LOW_MID_FREQ", ControllerID::LOW_MID_FREQ },
275 {
"LOW_MID_SHAPE", ControllerID::LOW_MID_SHAPE },
276 {
"LOW_GAIN", ControllerID::LOW_GAIN },
277 {
"LOW_FREQ", ControllerID::LOW_FREQ },
278 {
"LOW_SHAPE", ControllerID::LOW_SHAPE },
279 {
"PAGE_UP", ControllerID::PAGE_UP },
280 {
"PAGE_DOWN", ControllerID::PAGE_DOWN },
281 {
"DISPLAY_ON", ControllerID::DISPLAY_ON },
282 {
"LOW_CUT", ControllerID::LOW_CUT },
283 {
"MODE", ControllerID::MODE },
284 {
"HIGH_CUT", ControllerID::HIGH_CUT },
285 {
"GAIN", ControllerID::GAIN },
286 {
"PHASE_INV", ControllerID::PHASE_INV },
287 {
"INPUT_METER_L", ControllerID::INPUT_METER_L },
288 {
"INPUT_METER_R", ControllerID::INPUT_METER_R },
289 {
"OUTPUT_METER_L", ControllerID::OUTPUT_METER_L },
290 {
"OUTPUT_METER_R", ControllerID::OUTPUT_METER_R },
291 {
"SHAPE_METER", ControllerID::SHAPE_METER },
292 {
"COMP_METER", ControllerID::COMP_METER },
293 {
"TRACK_COPY", ControllerID::TRACK_COPY },
294 {
"TRACK_GROUP", ControllerID::TRACK_GROUP } };
323 int32_t selected_intern_plugin_index = -1;
333 std::function<
void (uint32_t)> action,
334 std::function<
void (uint32_t)> shift_action = 0);
375 typedef std::map<ControllerID, ArdourSurface::ControllerButton*>
ButtonMap;
377 typedef std::map<ControllerID, ArdourSurface::Meter*>
MeterMap;
378 typedef std::map<ControllerID, ArdourSurface::Encoder*>
EncoderMap;
448 void gain (
const uint32_t value);
450 void pan (
const uint32_t value);
457 void trim (
const uint32_t value);
459 void zoom (
const uint32_t value);
467 void gate (
const uint32_t value);
479 void eq (
const uint32_t);
480 void eq_freq (
const uint32_t band, uint32_t value);
481 void eq_gain (
const uint32_t band, uint32_t value);
491 eq_freq_id = ControllerID::LOW_FREQ;
494 eq_freq_id = ControllerID::LOW_MID_FREQ;
497 eq_freq_id = ControllerID::HIGH_MID_FREQ;
500 eq_freq_id = ControllerID::HIGH_FREQ;
511 eq_gain_id = ControllerID::LOW_GAIN;
514 eq_gain_id = ControllerID::LOW_MID_GAIN;
517 eq_gain_id = ControllerID::HIGH_MID_GAIN;
520 eq_gain_id = ControllerID::HIGH_GAIN;
529 return ControllerID::CONTROLLER_NONE;
530 ControllerID eq_gain_id = ControllerID::CONTROLLER_NONE;
536 eq_gain_id = ControllerID::LOW_MID_SHAPE;
539 eq_gain_id = ControllerID::HIGH_MID_SHAPE;
551 void comp (
const uint32_t value);
644 void create_mapping (
const std::shared_ptr<ARDOUR::Processor> proc,
const std::shared_ptr<ARDOUR::Plugin> plugin);
650 std::shared_ptr<ARDOUR::Processor>
find_plugin (
const int32_t plugin_index);
void strip_inventory_changed(ARDOUR::RouteList &)
std::map< std::string, PluginMapping > PluginMappingMap
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
void eq_low_shape(const uint32_t value)
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 output_port_name() const override
std::shared_ptr< ARDOUR::ReadOnlyControl > gate_redux_meter
bool has_editor() const override
PluginMappingMap pluginMappingMap
void comp_makeup(const uint32_t value)
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 spill_plugins(const int32_t plugin_index)
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
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 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)
void gate_depth(const uint32_t value)
void set_current_stripable(std::shared_ptr< ARDOUR::Stripable >)
bool map_encoder(ControllerID controllerID)
void map_shift(bool shift)
void trim(const uint32_t value)
PBD::Signal< void(bool)> BlinkIt
void gate_attack(const uint32_t value)
bool map_select_plugin(const int32_t plugin_index)
float calculate_meter(float dB)
void shift(const uint32_t)
void select(const uint32_t i)
void gate_scf(const uint32_t value)
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::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 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
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)
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)
PBD::Signal< void()> BankChange
void create_strip_inventory()
void pan(const uint32_t value)
uint32_t control_to_midi(Controllable controllable, float val, uint32_t max_value_for_type=127)
std::list< ControllerID > Blinkers
void gate_release(const uint32_t value)
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 eqBandQChangeMapping(bool mapValues)
ControlNotFoundException()
PBD::PropertyDescriptor< uint32_t > order
std::list< std::shared_ptr< Route > > RouteList
ARDOUR::PresentationInfo::order_t order_t
std::shared_ptr< PBD::Controllable > Controllable
ControllerID controllerId