Ardour  9.0-pre0-1467-gc8540a5ad6
console1.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Holger Dehnhardt <holger@dehnhardt.org>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License along
15  * with this program; if not, write to the Free Software Foundation, Inc.,
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  */
18 
19 #ifndef ardour_surface_console1_h
20 #define ardour_surface_console1_h
21 
22 #include <list>
23 #include <map>
24 #include <set>
25 
26 #define ABSTRACT_UI_EXPORTS
27 #include "pbd/abstract_ui.h"
28 
30 
32 #include "control_protocol/types.h"
33 
36 
37 namespace MIDI {
38 class Parser;
39 class Port;
40 }
41 
42 namespace ARDOUR {
43 class AsyncMIDIPort;
44 class Bundle;
45 class Port;
46 class Plugin;
47 class Processor;
48 class ReadOnlyControl;
49 class Route;
50 class Session;
51 class MidiPort;
52 }
53 
54 namespace PBD {
55 class Controllable;
56 }
57 
58 class MIDIControllable;
59 class MIDIFunction;
60 class MIDIAction;
61 
62 namespace ArdourSurface {
63 
64 class C1GUI;
65 
66 // XXX TODO: these classes should not be in the ArdourSurface namespace
67 // which is shared with all other ctrl surfaces.
68 //
69 // ArdourSurface::Meter etc may cause conflicts.
70 // best add a C1 prefix, or additional namespace
71 
72 class Controller;
73 class ControllerButton;
74 class MultiStateButton;
75 class Meter;
76 class Encoder;
77 
78 // 'using' in header files is frowned upon.
79 // it may cause conflicts or result in amgibuities
80 using Controllable = std::shared_ptr<PBD::Controllable>;
82 
83 class ControlNotFoundException : public std::exception
84 {
85 public:
87 };
88 
89 class Console1 : public MIDISurface
90 {
91 
92  friend Controller;
95  friend Meter;
96  friend Encoder;
97 
98 public:
101 
102  void map_p ();
103 
104  int set_active (bool yn) override;
105 
106  bool has_editor () const override { return true; }
107  void* get_gui () const override;
108  void tear_down_gui () override;
109 
110  std::string input_port_name () const override;
111  std::string output_port_name () const override;
112 
113  XMLNode& get_state () const override;
114  int set_state (const XMLNode&, int version) override;
115 
117  bool band_q_as_send = true;
119  bool switch_eq_q_dials = true;
120 
121  bool in_use(){
122  return _in_use;
123  }
124 
126 
127  /* Timer Events */
128  PBD::Signal<void(bool)> BlinkIt;
130 
131  /* Local Signals */
136 
138  {
140  VOLUME = 7,
141  PAN = 10,
142  MUTE = 12,
143  SOLO = 13,
144  ORDER = 14,
145  DRIVE = 15,
147  CHARACTER = 18,
148  FOCUS1 = 21,
167  FOCUS20 = 40,
168  COMP = 46,
172  COMP_PAR = 50,
174  SHAPE = 53,
179  PRESET = 58,
180  HARD_GATE = 59,
183  EQ = 80,
184  HIGH_GAIN = 82,
185  HIGH_FREQ = 83,
192  LOW_GAIN = 91,
193  LOW_FREQ = 92,
194  LOW_SHAPE = 93,
195  PAGE_UP = 96,
196  PAGE_DOWN = 97,
197  DISPLAY_ON = 102,
198  LOW_CUT = 103,
199  MODE = 104,
200  HIGH_CUT = 105,
201  GAIN = 107,
202  PHASE_INV = 108,
207  SHAPE_METER = 114,
208  COMP_METER = 115,
209  TRACK_COPY = 120,
210  TRACK_GROUP = 123,
211 
212  };
213 
214  enum EQ_MODE
215  {
218  EQM_SSL = 1
219  };
220 
221  using ControllerMap = std::map<std::string, ControllerID>;
222 
223  ControllerMap controllerMap{ { "CONTROLLER_NONE", ControllerID::CONTROLLER_NONE },
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 } };
295 
296 private:
297  std::string config_dir_name = "c1mappings";
298  /* GUI */
299  mutable C1GUI* gui;
300  void build_gui ();
301 
302  /* Configuration */
303  const uint32_t bank_size = 20;
304 
305  // Shift button
306  bool shift_state = false;
307 
308  // Plugin state
309  bool in_plugin_state = false;
310 
311  // Selected EQ
313 
314  bool rolling = false;
315  uint32_t current_bank = 0;
317 
318  uint32_t max_strip_index = 0;
319  uint32_t master_index = 0;
320 
321  int32_t current_plugin_index = -1;
322 #ifdef MIXBUS
323  int32_t selected_intern_plugin_index = -1;
324 #endif
325 
326  std::shared_ptr<ARDOUR::AutomationControl> current_pan_control = nullptr;
327 
328  std::shared_ptr<ARDOUR::Stripable> _current_stripable;
329  std::weak_ptr<ARDOUR::Stripable> pre_master_stripable;
330  std::weak_ptr<ARDOUR::Stripable> pre_monitor_stripable;
331 
333  std::function<void (uint32_t)> action,
334  std::function<void (uint32_t)> shift_action = 0);
335 
336  void setup_controls ();
337 
338  bool strip_recenabled = false;
340 
341  int begin_using_device () override;
342  int stop_using_device () override;
343 
344  int device_acquire () override { return 0; }
345  void device_release () override {}
346 
347  void connect_session_signals () override;
349 
350  void run_event_loop ();
352 
353  /* MIDI-Message handler - we only have controller messages */
355 
357 
358  /* Strip inventory */
359  typedef std::map<uint32_t, order_t> StripInventoryMap;
360 
362 
364 
367  }
368 
369  order_t get_inventory_order_by_index (const uint32_t index);
371 
372  void select_rid_by_index (const uint32_t index);
373 
374  /* Controller Maps*/
375  typedef std::map<ControllerID, ArdourSurface::ControllerButton*> ButtonMap;
376  typedef std::map<ControllerID, ArdourSurface::MultiStateButton*> MultiStateButtonMap;
377  typedef std::map<ControllerID, ArdourSurface::Meter*> MeterMap;
378  typedef std::map<ControllerID, ArdourSurface::Encoder*> EncoderMap;
379 
382 
385 
388 
391 
392  typedef std::map<uint32_t, ControllerID> SendControllerMap;
394  { 3, HIGH_FREQ }, { 4, LOW_GAIN }, { 5, LOW_MID_GAIN },
395  { 6, HIGH_MID_GAIN }, { 7, HIGH_GAIN }, { 8, LOW_MID_SHAPE },
396  { 9, HIGH_MID_SHAPE }, { 10, LOW_MID_SHAPE }, { 11, HIGH_MID_SHAPE } };
397 
399 
400  /* */
401  void all_lights_out ();
402 
404  void notify_solo_active_changed (bool) override;
405 
406  sigc::connection periodic_connection;
407 
408  bool periodic ();
410 
411  // Meter Handlig
412  uint32_t last_output_meter_l = 0;
413  uint32_t last_output_meter_r = 0;
414 
415  std::shared_ptr<ARDOUR::ReadOnlyControl> gate_redux_meter = 0;
416  uint32_t last_gate_meter = 0;
417 
418  std::shared_ptr<ARDOUR::ReadOnlyControl> comp_redux_meter = 0;
419  uint32_t last_comp_redux = 0;
420 
421  sigc::connection blink_connection;
422  typedef std::list<ControllerID> Blinkers;
425  bool blinker ();
428 
429  void set_current_stripable (std::shared_ptr<ARDOUR::Stripable>);
431  /*void use_master ();
432  void use_monitor ();*/
433  void stripable_selection_changed () override;
434  /*PBD::ScopedConnection selection_connection;*/
438 
440 
441  void notify_parameter_changed (std::string) override;
443 
444  /* operations (defined in c1_operations.cc) */
445 
446  void bank (bool up);
447  void drive (uint32_t value);
448  void gain (const uint32_t value);
449  void mute (const uint32_t);
450  void pan (const uint32_t value);
451  void phase (const uint32_t);
452  void rude_solo (const uint32_t);
453  void select (const uint32_t i);
454  void shift (const uint32_t);
455  void plugin_state (const uint32_t);
456  void solo (const uint32_t);
457  void trim (const uint32_t value);
458  void window (const uint32_t value);
459  void zoom (const uint32_t value);
460 
461  // Filter Section
462  void filter (const uint32_t value);
463  void low_cut (const uint32_t value);
464  void high_cut (const uint32_t value);
465 
466  // Gate Section
467  void gate (const uint32_t value);
468  void gate_scf (const uint32_t value);
469  void gate_listen (const uint32_t value);
470  void gate_thresh (const uint32_t value);
471  void gate_depth (const uint32_t value);
472  void gate_release (const uint32_t value);
473  void gate_attack (const uint32_t value);
474  void gate_hyst (const uint32_t value);
475  void gate_hold (const uint32_t value);
476  void gate_filter_freq (const uint32_t value);
477 
478  // EQ section
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);
482  void eq_band_q (const uint32_t band, uint32_t value);
483  void eq_high_shape (const uint32_t value);
484  void eq_low_shape (const uint32_t value);
485 
487  {
488  ControllerID eq_freq_id;
489  switch (band) {
490  case 0:
491  eq_freq_id = ControllerID::LOW_FREQ;
492  break;
493  case 1:
494  eq_freq_id = ControllerID::LOW_MID_FREQ;
495  break;
496  case 2:
497  eq_freq_id = ControllerID::HIGH_MID_FREQ;
498  break;
499  case 3:
500  eq_freq_id = ControllerID::HIGH_FREQ;
501  break;
502  }
503  return eq_freq_id;
504  }
505 
507  {
508  ControllerID eq_gain_id;
509  switch (band) {
510  case 0:
511  eq_gain_id = ControllerID::LOW_GAIN;
512  break;
513  case 1:
514  eq_gain_id = ControllerID::LOW_MID_GAIN;
515  break;
516  case 2:
517  eq_gain_id = ControllerID::HIGH_MID_GAIN;
518  break;
519  case 3:
520  eq_gain_id = ControllerID::HIGH_GAIN;
521  break;
522  }
523  return eq_gain_id;
524  }
525 
527  {
528  if( band_q_as_send )
529  return ControllerID::CONTROLLER_NONE;
530  ControllerID eq_gain_id = ControllerID::CONTROLLER_NONE;
531  switch (band)
532  {
533  case 0:
534  break;
535  case 1:
536  eq_gain_id = ControllerID::LOW_MID_SHAPE;
537  break;
538  case 2:
539  eq_gain_id = ControllerID::HIGH_MID_SHAPE;
540  break;
541  case 3:
542  break;
543  }
544  return eq_gain_id;
545  }
546 
547  // Mixbus sends
548  void mb_send_level (const uint32_t n, const uint32_t value);
549 
550  // Comp Section
551  void comp (const uint32_t value);
552  void comp_mode (const uint32_t value);
553  void comp_thresh (const uint32_t value);
554  void comp_attack (const uint32_t value);
555  void comp_release (const uint32_t value);
556  void comp_ratio (const uint32_t value);
557  void comp_makeup (const uint32_t value);
558  void comp_emph (const uint32_t value);
559 
560  bool map_encoder (ControllerID controllerID);
561  void map_encoder (ControllerID controllerID, std::shared_ptr<ARDOUR::AutomationControl> control);
562 
563  void map_bank ();
564  void map_drive ();
565  void map_gain ();
566  void map_monitoring ();
567  void map_mute ();
568  void map_pan ();
569  void map_phase ();
570  void map_recenable ();
571  void map_select ();
572  void map_shift (bool shift);
573  void map_plugin_state (bool state);
574  void map_solo ();
575  void map_trim ();
576 
577  // Filter Section
578  void map_filter ();
579  void map_low_cut ();
580  void map_high_cut ();
581 
582  // Gate Section
583  void map_gate ();
584  void map_gate_scf ();
587  void map_gate_depth ();
590  void map_gate_hyst ();
591  void map_gate_hold ();
593 
594  // EQ section
595  void map_eq ();
596  void map_eq_mode ();
597  void map_eq_freq(const uint32_t band);
598  void map_eq_gain (const uint32_t band);
599  void map_eq_band_q (const uint32_t band);
602 
603  // MB Sends
604  void map_mb_send_level (const uint32_t n);
605 
606  // Comp Section
607  void map_comp ();
608  void map_comp_mode ();
612  void map_comp_ratio ();
614  void map_comp_emph ();
615 
617 
618  float calculate_meter (float dB);
619  uint32_t control_to_midi (Controllable controllable, float val, uint32_t max_value_for_type = 127);
620  float midi_to_control (Controllable controllable, uint32_t val, uint32_t max_value_for_type = 127);
621 
623  {
625  bool shift = false;
626  bool is_switch = false;
627  std::string name;
629  };
630 
631  using ParameterMap = std::map<uint32_t, PluginParameterMapping>;
632 
634  {
635  std::string id;
636  std::string name;
638  };
639 
640  /* plugin handling */
642  uint32_t load_mappings ();
643  bool load_mapping (XMLNode* fin);
644  void create_mapping (const std::shared_ptr<ARDOUR::Processor> proc, const std::shared_ptr<ARDOUR::Plugin> plugin);
645 
646  bool spill_plugins (const int32_t plugin_index);
647 
648  /* plugin operations */
650  std::shared_ptr<ARDOUR::Processor> find_plugin (const int32_t plugin_index);
651  bool select_plugin (const int32_t plugin_index);
652 
653  bool map_select_plugin (const int32_t plugin_index);
654 
655  void eqBandQChangeMapping (bool mapValues);
656 
657  using PluginMappingMap = std::map<std::string, PluginMapping>;
659 };
660 }
661 #endif /* ardour_surface_console1_h */
void strip_inventory_changed(ARDOUR::RouteList &)
Definition: console1.h:365
std::map< std::string, PluginMapping > PluginMappingMap
Definition: console1.h:657
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)
Definition: console1.h:526
Meter * get_meter(ControllerID) const
void eq_low_shape(const uint32_t value)
void comp_mode(const uint32_t value)
ARDOUR::MonitorState monitor_state
Definition: console1.h:339
StripInventoryMap strip_inventory
Definition: console1.h:361
void gate_listen(const uint32_t value)
int device_acquire() override
Definition: console1.h:344
std::weak_ptr< ARDOUR::Stripable > pre_monitor_stripable
Definition: console1.h:330
uint32_t last_output_meter_r
Definition: console1.h:413
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
Definition: console1.h:415
bool has_editor() const override
Definition: console1.h:106
PluginMappingMap pluginMappingMap
Definition: console1.h:658
void comp_makeup(const uint32_t value)
void start_blinking(ControllerID)
uint32_t last_output_meter_l
Definition: console1.h:412
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)
Definition: console1.h:506
void window(const uint32_t value)
void zoom(const uint32_t value)
void notify_parameter_changed(std::string) override
PBD::Signal< void()> ConnectionChange
Definition: console1.h:125
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
Definition: console1.h:221
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
Definition: console1.h:135
void notify_transport_state_changed() override
SendControllerMap send_controllers
Definition: console1.h:393
void comp(const uint32_t value)
void gate_filter_freq(const uint32_t value)
std::map< uint32_t, order_t > StripInventoryMap
Definition: console1.h:359
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)
const uint32_t bank_size
Definition: console1.h:303
void map_shift(bool shift)
void trim(const uint32_t value)
PBD::Signal< void(bool)> BlinkIt
Definition: console1.h:128
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
Definition: console1.h:321
std::map< ControllerID, ArdourSurface::ControllerButton * > ButtonMap
Definition: console1.h:375
int stop_using_device() override
PBD::ScopedConnectionList console1_connections
Definition: console1.h:436
void mb_send_level(const uint32_t n, const uint32_t value)
PBD::ScopedConnectionList stripable_connections
Definition: console1.h:435
std::shared_ptr< ARDOUR::ReadOnlyControl > comp_redux_meter
Definition: console1.h:418
void map_encoder(ControllerID controllerID, std::shared_ptr< ARDOUR::AutomationControl > control)
std::map< ControllerID, ArdourSurface::MultiStateButton * > MultiStateButtonMap
Definition: console1.h:376
ControllerButton * get_button(ControllerID) const
void map_mb_send_level(const uint32_t n)
void gate_hyst(const uint32_t value)
std::map< uint32_t, PluginParameterMapping > ParameterMap
Definition: console1.h:631
void drive(uint32_t value)
void stop_blinking(ControllerID)
std::shared_ptr< ARDOUR::Stripable > _current_stripable
Definition: console1.h:328
void map_eq_gain(const uint32_t band)
void notify_solo_active_changed(bool) override
void device_release() override
Definition: console1.h:345
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)
Definition: console1.h:486
void eq_high_shape(const uint32_t value)
std::map< ControllerID, ArdourSurface::Encoder * > EncoderMap
Definition: console1.h:378
void eq_gain(const uint32_t band, uint32_t value)
ControllerMap controllerMap
Definition: console1.h:223
std::map< ControllerID, ArdourSurface::Meter * > MeterMap
Definition: console1.h:377
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
Definition: console1.h:316
void eq(const uint32_t)
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
Definition: console1.h:134
std::map< uint32_t, ControllerID > SendControllerMap
Definition: console1.h:392
void handle_midi_controller_message(MIDI::Parser &, MIDI::EventTwoBytes *tb) override
PBD::Signal< void(bool)> ShiftChange
Definition: console1.h:133
uint32_t last_gate_meter
Definition: console1.h:416
int set_active(bool yn) override
PBD::ScopedConnectionList plugin_connections
Definition: console1.h:437
std::shared_ptr< ARDOUR::AutomationControl > current_pan_control
Definition: console1.h:326
sigc::connection periodic_connection
Definition: console1.h:406
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
Definition: console1.h:421
std::string config_dir_name
Definition: console1.h:297
void comp_release(const uint32_t value)
PBD::Signal< void()> BankChange
Definition: console1.h:132
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
Definition: console1.h:422
void gate_release(const uint32_t value)
void stripable_selection_changed() override
uint32_t max_strip_index
Definition: console1.h:318
void select_rid_by_index(const uint32_t index)
std::weak_ptr< ARDOUR::Stripable > pre_master_stripable
Definition: console1.h:329
PBD::Signal< void()> Periodic
Definition: console1.h:129
void gain(const uint32_t value)
MultiStateButtonMap multi_buttons
Definition: console1.h:383
void comp_attack(const uint32_t value)
bool load_mapping(XMLNode *fin)
std::string input_port_name() const override
void eqBandQChangeMapping(bool mapValues)
uint32_t last_comp_redux
Definition: console1.h:419
Definition: xml++.h:114
PBD::PropertyDescriptor< uint32_t > order
std::list< std::shared_ptr< Route > > RouteList
ARDOUR::PresentationInfo::order_t order_t
Definition: console1.h:81
std::shared_ptr< PBD::Controllable > Controllable
Definition: console1.h:80
Definition: axis_view.h:42