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;
210 {
"VOLUME", ControllerID::VOLUME },
211 {
"PAN", ControllerID::PAN },
212 {
"MUTE", ControllerID::MUTE },
213 {
"SOLO", ControllerID::SOLO },
214 {
"ORDER", ControllerID::ORDER },
215 {
"DRIVE", ControllerID::DRIVE },
216 {
"EXTERNAL_SIDECHAIN", ControllerID::EXTERNAL_SIDECHAIN },
217 {
"CHARACTER", ControllerID::CHARACTER },
218 {
"FOCUS1", ControllerID::FOCUS1 },
219 {
"FOCUS2", ControllerID::FOCUS2 },
220 {
"FOCUS3", ControllerID::FOCUS3 },
221 {
"FOCUS4", ControllerID::FOCUS4 },
222 {
"FOCUS5", ControllerID::FOCUS5 },
223 {
"FOCUS6", ControllerID::FOCUS6 },
224 {
"FOCUS7", ControllerID::FOCUS7 },
225 {
"FOCUS8", ControllerID::FOCUS8 },
226 {
"FOCUS9", ControllerID::FOCUS9 },
227 {
"FOCUS10", ControllerID::FOCUS10 },
228 {
"FOCUS11", ControllerID::FOCUS11 },
229 {
"FOCUS12", ControllerID::FOCUS12 },
230 {
"FOCUS13", ControllerID::FOCUS13 },
231 {
"FOCUS14", ControllerID::FOCUS14 },
232 {
"FOCUS15", ControllerID::FOCUS15 },
233 {
"FOCUS16", ControllerID::FOCUS16 },
234 {
"FOCUS17", ControllerID::FOCUS17 },
235 {
"FOCUS18", ControllerID::FOCUS18 },
236 {
"FOCUS19", ControllerID::FOCUS19 },
237 {
"FOCUS20", ControllerID::FOCUS20 },
238 {
"COMP", ControllerID::COMP },
239 {
"COMP_THRESH", ControllerID::COMP_THRESH },
240 {
"COMP_RELEASE", ControllerID::COMP_RELEASE },
241 {
"COMP_RATIO", ControllerID::COMP_RATIO },
242 {
"COMP_PAR", ControllerID::COMP_PAR },
243 {
"COMP_ATTACK", ControllerID::COMP_ATTACK },
244 {
"SHAPE", ControllerID::SHAPE },
245 {
"SHAPE_GATE", ControllerID::SHAPE_GATE },
246 {
"SHAPE_SUSTAIN", ControllerID::SHAPE_SUSTAIN },
247 {
"SHAPE_RELEASE", ControllerID::SHAPE_RELEASE },
248 {
"SHAPE_PUNCH", ControllerID::SHAPE_PUNCH },
249 {
"PRESET", ControllerID::PRESET },
250 {
"HARD_GATE", ControllerID::HARD_GATE },
251 {
"FILTER_TO_COMPRESSORS", ControllerID::FILTER_TO_COMPRESSORS },
252 {
"HIGH_SHAPE", ControllerID::HIGH_SHAPE },
253 {
"EQ", ControllerID::EQ },
254 {
"HIGH_GAIN", ControllerID::HIGH_GAIN },
255 {
"HIGH_FREQ", ControllerID::HIGH_FREQ },
256 {
"HIGH_MID_GAIN", ControllerID::HIGH_MID_GAIN },
257 {
"HIGH_MID_FREQ", ControllerID::HIGH_MID_FREQ },
258 {
"HIGH_MID_SHAPE", ControllerID::HIGH_MID_SHAPE },
259 {
"LOW_MID_GAIN", ControllerID::LOW_MID_GAIN },
260 {
"LOW_MID_FREQ", ControllerID::LOW_MID_FREQ },
261 {
"LOW_MID_SHAPE", ControllerID::LOW_MID_SHAPE },
262 {
"LOW_GAIN", ControllerID::LOW_GAIN },
263 {
"LOW_FREQ", ControllerID::LOW_FREQ },
264 {
"LOW_SHAPE", ControllerID::LOW_SHAPE },
265 {
"PAGE_UP", ControllerID::PAGE_UP },
266 {
"PAGE_DOWN", ControllerID::PAGE_DOWN },
267 {
"DISPLAY_ON", ControllerID::DISPLAY_ON },
268 {
"LOW_CUT", ControllerID::LOW_CUT },
269 {
"MODE", ControllerID::MODE },
270 {
"HIGH_CUT", ControllerID::HIGH_CUT },
271 {
"GAIN", ControllerID::GAIN },
272 {
"PHASE_INV", ControllerID::PHASE_INV },
273 {
"INPUT_METER_L", ControllerID::INPUT_METER_L },
274 {
"INPUT_METER_R", ControllerID::INPUT_METER_R },
275 {
"OUTPUT_METER_L", ControllerID::OUTPUT_METER_L },
276 {
"OUTPUT_METER_R", ControllerID::OUTPUT_METER_R },
277 {
"SHAPE_METER", ControllerID::SHAPE_METER },
278 {
"COMP_METER", ControllerID::COMP_METER },
279 {
"TRACK_COPY", ControllerID::TRACK_COPY },
280 {
"TRACK_GROUP", ControllerID::TRACK_GROUP } };
304 int32_t selected_intern_plugin_index = -1;
314 std::function<
void (uint32_t)> action,
315 std::function<
void (uint32_t)> shift_action = 0);
356 typedef std::map<ControllerID, ArdourSurface::ControllerButton*>
ButtonMap;
358 typedef std::map<ControllerID, ArdourSurface::Meter*>
MeterMap;
359 typedef std::map<ControllerID, ArdourSurface::Encoder*>
EncoderMap;
428 void gain (
const uint32_t value);
430 void pan (
const uint32_t value);
437 void trim (
const uint32_t value);
439 void zoom (
const uint32_t value);
447 void gate (
const uint32_t value);
459 void eq (
const uint32_t);
460 void eq_freq (
const uint32_t band, uint32_t value);
461 void eq_gain (
const uint32_t band, uint32_t value);
470 eq_freq_id = ControllerID::LOW_FREQ;
473 eq_freq_id = ControllerID::LOW_MID_FREQ;
476 eq_freq_id = ControllerID::HIGH_MID_FREQ;
479 eq_freq_id = ControllerID::HIGH_FREQ;
490 eq_gain_id = ControllerID::LOW_GAIN;
493 eq_gain_id = ControllerID::LOW_MID_GAIN;
496 eq_gain_id = ControllerID::HIGH_MID_GAIN;
499 eq_gain_id = ControllerID::HIGH_GAIN;
509 void comp (
const uint32_t value);
600 void create_mapping (
const std::shared_ptr<ARDOUR::Processor> proc,
const std::shared_ptr<ARDOUR::Plugin> plugin);
606 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)
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)
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 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
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 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
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