21 #ifndef __ardour_launch_control_h__
22 #define __ardour_launch_control_h__
30 #define ABSTRACT_UI_EXPORTS
65 class LaunchControlMenu;
160 Controller(uint8_t cn, uint8_t val, std::function<
void ()> action)
207 std::function<
void ()> long_press)
229 std::function<
void ()>
press,
230 std::function<
void ()>
release,
231 std::function<
void ()> long_release)
244 std::function<
void ()>
press,
245 std::function<
void ()>
release,
246 std::function<
void ()> release_long)
257 std::function<
void ()>
press,
258 std::function<
void ()>
release,
259 std::function<
void ()> release_long,
260 std::function<uint8_t ()> check,
287 std::function<
void ()>
press,
288 std::function<
void ()>
release,
289 std::function<
void ()> long_release,
299 std::function<
void ()>
press,
300 std::function<
void ()>
release,
301 std::function<
void ()> release_long,
358 std::list<std::shared_ptr<ARDOUR::Bundle> >
bundles();
394 void set_ctrllowersends (
bool yn);
395 bool ctrllowersends ()
const {
return _ctrllowersends; }
397 void store_fss_type();
398 bool fss_is_mixbus()
const {
return _fss_is_mixbus; }
419 bool _ctrllowersends;
455 typedef std::map<FaderID, std::shared_ptr<Fader> >
IDFaderMap;
459 typedef std::map<int, std::shared_ptr<Knob> >
CCKnobMap;
462 typedef std::map<KnobID, std::shared_ptr<Knob> >
IDKnobMap;
499 bool check_pick_up(std::shared_ptr<Controller>
controller, std::shared_ptr<ARDOUR::AutomationControl> ac,
bool rotary =
false);
545 void dm_mb_eq_switch();
546 void dm_mb_eq (
KnobID k,
bool gain, uint8_t band);
547 uint8_t dm_mb_eq_freq_enabled();
548 uint8_t dm_mb_eq_gain_enabled(uint8_t band);
549 void dm_mb_eq_shape_switch(uint8_t band);
550 uint8_t dm_mb_eq_shape_enabled(uint8_t band);
551 uint8_t dm_mb_flt_enabled();
552 void dm_mb_flt_frq (
KnobID k,
bool hpf);
553 void dm_mb_flt_switch();
554 void dm_mb_send_enabled(
KnobID k);
555 uint8_t dm_mb_check_send_knob(
KnobID k);
556 uint8_t dm_mb_check_send_button(uint8_t s);
557 void dm_mb_sends (
KnobID k);
558 void dm_mb_send_switch (
ButtonID b);
559 uint8_t dm_mb_comp_enabled();
560 void dm_mb_comp_switch();
561 void dm_mb_comp (
KnobID k, CompParam c);
562 void dm_mb_comp_thresh (
FaderID id);
563 uint8_t dm_mb_has_tapedrive();
564 void dm_mb_tapedrive (
KnobID k);
565 uint8_t dm_mb_master_assign_enabled();
566 void dm_mb_master_assign_switch();
621 void master_send_changed (uint32_t n);
622 void master_send_led_bank ();
629 std::shared_ptr<ARDOUR::Stripable>
master;
637 std::weak_ptr<ARDOUR::Port>, std::string name2,
XMLNode & get_state() const
static std::string knob_name_by_id(KnobID)
std::map< FaderID, std::shared_ptr< Fader > > IDFaderMap
void knob_sendA(uint8_t n)
void handle_midi_note_on_message(MIDI::Parser &, MIDI::EventTwoBytes *, MIDI::channel_t chan)
Button * button_by_id(ButtonID)
void button_select_down()
void send_bank_switch_0()
void do_request(LaunchControlRequest *)
void update_track_control_led(uint8_t n)
std::shared_ptr< ARDOUR::Stripable > stripable[8]
void dm_fader(FaderID id)
void set_fader8master(bool yn)
PBD::ScopedConnectionList stripable_connections
std::set< ButtonID > consumed
void start_press_timeout(std::shared_ptr< Button >, ButtonID)
uint8_t dm_mute_enabled()
bool connection_handler(std::weak_ptr< ARDOUR::Port >, std::string name1, std::weak_ptr< ARDOUR::Port >, std::string name2, bool yn)
void handle_button_message(std::shared_ptr< Button > button, MIDI::EventTwoBytes *)
std::shared_ptr< ARDOUR::Port > input_port()
void set_track_mode(TrackMode mode)
std::shared_ptr< ARDOUR::Bundle > _output_bundle
std::map< int, std::shared_ptr< Knob > > CCKnobMap
void handle_midi_controller_message(MIDI::Parser &, MIDI::EventTwoBytes *, MIDI::channel_t chan)
std::shared_ptr< ARDOUR::Port > output_port()
LaunchControlXL(ARDOUR::Session &)
std::shared_ptr< TrackButton > control_button_by_column(uint8_t col)
IDNoteButtonMap id_note_button_map
PBD::ScopedConnection port_connection
void port_registration_handler()
void solo_changed(uint32_t n)
void dm_select_prev_strip()
void write(const MidiByteArray &)
void init_buttons(bool startup)
int set_state(const XMLNode &node, int version)
std::shared_ptr< TrackButton > focus_button_by_column(uint8_t col)
std::map< ButtonID, std::shared_ptr< ControllerButton > > IDControllerButtonMap
std::map< int, std::shared_ptr< Fader > > CCFaderMap
void dm_select_next_strip()
uint8_t dm_solo_enabled()
void connect_session_signals()
void switch_bank(uint32_t base)
MIDI::Port * _output_port
std::shared_ptr< ARDOUR::Stripable > master
void button_solo_long_press()
void solo_iso_changed(uint32_t n)
void solo_mute_rec_changed(uint32_t n)
void switch_template(uint8_t t)
void update_knob_led_by_id(uint8_t id, LEDColor color)
void send_bank_switch(bool up)
std::shared_ptr< ARDOUR::Port > _async_out
void button_select_left()
void button_track_focus(uint8_t n)
NNNoteButtonMap nn_note_button_map
bool check_pick_up(std::shared_ptr< Controller > controller, std::shared_ptr< ARDOUR::AutomationControl > ac, bool rotary=false)
void dm_pan_azi(KnobID k)
uint8_t dm_check_dummy(DeviceStatus ds)
void init_knobs(KnobID knobs[], uint8_t i)
PBD::Signal< void()> ConnectionChange
void init_buttons(ButtonID buttons[], uint8_t i)
std::shared_ptr< Knob > * knobs_by_column(uint8_t col, std::shared_ptr< Knob > *knob_col)
void send_bank_switch_1()
void knob_sendB(uint8_t n)
std::map< KnobID, std::shared_ptr< Knob > > IDKnobMap
void handle_midi_sysex(MIDI::Parser &, MIDI::byte *, size_t count)
std::shared_ptr< ARDOUR::Port > _async_in
void stripable_property_change(PBD::PropertyChange const &what_changed, uint32_t which)
int get_amount_of_tracks()
std::shared_ptr< ARDOUR::AutomationControl > get_ac_by_state(uint8_t n)
void stripable_selection_changed()
bool button_long_press_timeout(ButtonID id, std::shared_ptr< Button > button)
std::shared_ptr< Knob > knob_by_id(KnobID id)
std::shared_ptr< TrackButton > track_button_by_range(uint8_t n, uint8_t first, uint8_t middle)
std::shared_ptr< ARDOUR::Bundle > _input_bundle
void mute_changed(uint32_t n)
void button_press_track_control(uint8_t n)
CONTROL_PROTOCOL_THREADS_NEED_TEMPO_MAP_DECL()
uint8_t dm_check_pan_width()
void button_release_track_control(uint8_t n)
uint8_t template_number() const
void update_knob_led_by_strip(uint8_t n)
void rec_changed(uint32_t n)
TrackMode track_mode() const
static std::string button_name_by_id(ButtonID)
void set_send_bank(int offset)
CCControllerButtonMap cc_controller_button_map
void init_knobs_and_buttons()
void dm_recenable_switch()
void button_mute_long_press()
static std::string fader_name_by_id(FaderID)
void button_device_long_press()
void set_device_mode(bool yn)
uint8_t dm_recenable_enabled()
std::list< std::shared_ptr< ARDOUR::Bundle > > bundles()
std::map< int, std::shared_ptr< ControllerButton > > CCControllerButtonMap
void set_refresh_leds_flag(bool yn)
void notify_transport_state_changed()
bool refresh_leds_flag() const
bool midi_input_handler(Glib::IOCondition ioc, MIDI::Port *port)
std::map< int, std::shared_ptr< NoteButton > > NNNoteButtonMap
std::set< ButtonID > buttons_down
void button_select_right()
void update_track_focus_led(uint8_t n)
std::map< ButtonID, std::shared_ptr< NoteButton > > IDNoteButtonMap
void button_track_mode(TrackMode state)
IDControllerButtonMap id_controller_button_map
void notify_parameter_changed(std::string)
void dm_pan_width(KnobID k)
void filter_stripables(ARDOUR::StripableList &strips) const
void handle_midi_note_off_message(MIDI::Parser &, MIDI::EventTwoBytes *, MIDI::channel_t chan)
bool fader8master() const
uint8_t dm_check_pan_azi()
int send_bank_base() const
void notify_loop_state_changed()
PBD::ScopedConnectionList session_connections
PBD::PropertyDescriptor< gain_t > gain
PBD::PropertyDescriptor< uint32_t > color
std::list< std::shared_ptr< Stripable > > StripableList
Controller(uint8_t cn, uint8_t val, std::function< void()> action)
std::function< void()> action_method
uint8_t _controller_number
void set_value(uint8_t val)
uint8_t controller_number() const
void controller_changed(Controller *controller)
Fader(FaderID id, uint8_t cn, std::function< void()> action)
MidiByteArray state_msg(bool light=true) const
LEDColor color_disabled() const
Knob(KnobID id, uint8_t cn, uint8_t index, LEDColor c_on, LEDColor c_off, std::function< void()> action, LaunchControlXL &l)
Knob(KnobID id, uint8_t cn, uint8_t index, LEDColor c_on, LEDColor c_off, std::function< void()> action, std::function< uint8_t()> check, LaunchControlXL &l)
LEDColor color_enabled() const
std::function< uint8_t()> check_method
virtual MidiByteArray state_msg(bool light) const =0
LED(uint8_t i, LEDColor c, LaunchControlXL &l)
LED(uint8_t i, LEDColor c, LEDFlag f, LaunchControlXL &lcxl)
MultiColorLED(uint8_t i, LEDColor c, LEDFlag f, LaunchControlXL &l)
void set_color(LEDColor c)
MultiColorLED(uint8_t i, LEDColor c, LaunchControlXL &l)