19 #ifndef __ardour_lpx_h__
20 #define __ardour_lpx_h__
30 #define ABSTRACT_UI_EXPORTS
52 class AutomationControl;
60 #define LAUNCHPAD_NAMESPACE LP_MINI
62 #define LAUNCHPAD_NAMESPACE LP_X
105 static bool probe (std::string&, std::string&);
149 Pad (
PadID pid, ButtonMethod press_method, ButtonMethod long_press_method = &LaunchPadX::relax, ButtonMethod release_method = &LaunchPadX::relax)
154 on_press = press_method;
155 on_release = release_method;
156 on_long_press = long_press_method;
159 Pad (
int pid,
int xx,
int yy, PadMethod press_method, ButtonMethod long_press_method = &LaunchPadX::relax, ButtonMethod release_method = &LaunchPadX::relax)
164 on_pad_press = press_method;
165 on_release = release_method;
166 on_long_press = long_press_method;
275 set_session_mode (sm,
true);
void port_registration_handler()
void select_stripable(int col)
void right_release(Pad &)
StripableSlot get_stripable_slot(int x, int y) const
FaderBank current_fader_bank
void volume_release(Pad &)
void send_a_release(Pad &)
void record_arm_long_press(Pad &)
void session_release(Pad &)
void custom_long_press(Pad &)
void down_long_press(Pad &)
std::vector< StripableSlotRow > StripableSlotColumn
void set_session_mode(SessionState sm)
void maybe_start_press_timeout(Pad &pad)
void stripable_selection_changed()
void volume_long_press(Pad &)
void up_long_press(Pad &)
std::map< int, uint32_t > ColorMap
void solo_long_press(Pad &)
void set_pending_mixer_op(PendingMixerOp)
void handle_midi_note_off_message(MIDI::Parser &, MIDI::EventTwoBytes *)
PBD::ScopedConnectionList route_connections
void map_triggerbox(int col)
void note_long_press(Pad &)
void cue_press(Pad &, int row)
std::vector< StripableSlot > StripableSlotRow
void reconnect_for_session()
void automation_control_change(int n, std::weak_ptr< ARDOUR::AutomationControl >)
void record_arm_press(Pad &)
void stop_clip_release(Pad &)
void all_pads_on(int color)
static bool match_usb(uint16_t, uint16_t)
void route_property_change(PBD::PropertyChange const &, int x)
std::map< int, Pad > PadMap
MIDI::Port * _daw_out_port
MIDI::Port * _daw_in_port
void left_long_press(Pad &)
void send_b_release(Pad &)
void custom_release(Pad &)
std::weak_ptr< ARDOUR::MidiTrack > _current_pad_target
std::map< uint32_t, int > NearestMap
void transport_state_changed()
void scroll_text(std::string const &, int color, bool loop, float speed=0)
void pad_press(Pad &, int velocity)
void display_session_layout()
void fader_move(int cc, int val)
void set_session_mode(SessionState, bool clear_pending)
SessionState _session_mode
void light_pad(int pad_id, int color, int mode=0)
void pan_long_press(Pad &)
bool long_press_timeout(int pad_id)
std::string output_port_name() const
void daw_write(const MidiByteArray &)
void daw_write(MIDI::byte const *, size_t)
void rh6_long_press(Pad &)
PBD::ScopedConnectionList trigger_connections
void session_press(Pad &)
void capture_midi_press(Pad &)
LaunchPadX(ARDOUR::Session &)
void handle_midi_note_on_message(MIDI::Parser &, MIDI::EventTwoBytes *)
std::pair< int32_t, int32_t > StripableSlot
void reconnect_for_programmer()
PendingMixerOp pending_mixer_op
void set_device_mode(DeviceMode)
void start_press_timeout(Pad &pad)
void setup_faders(FaderBank)
void capture_midi_release(Pad &)
void fader_mode_press(FaderBank)
void handle_pending_mixer_op(int col)
static bool probe(std::string &, std::string &)
PBD::ScopedConnectionList control_connections
void handle_midi_sysex(MIDI::Parser &, MIDI::byte *, size_t count)
std::shared_ptr< ARDOUR::Port > _daw_out
void right_long_press(Pad &)
std::shared_ptr< ARDOUR::Port > _daw_in
int set_state(const XMLNode &node, int version)
bool revert_layout_on_fader_release
void capture_midi_long_press(Pad &)
void handle_midi_controller_message(MIDI::Parser &, MIDI::EventTwoBytes *)
StripableSlotColumn stripable_slots
void mute_long_press(Pad &)
void stop_clip_press(Pad &)
void record_state_changed()
int find_closest_palette_color(uint32_t)
std::string input_port_name() const
void session_long_press(Pad &)
XMLNode & get_state() const
void trigger_property_change(PBD::PropertyChange, ARDOUR::Trigger *)
void pad_long_press(Pad &)
void rh4_long_press(Pad &)
void record_arm_release(Pad &)
#define LAUNCHPAD_NAMESPACE
PBD::PropertyDescriptor< uint32_t > color
MIDI::byte status_byte() const
Pad(PadID pid, ButtonMethod press_method, ButtonMethod long_press_method=&LaunchPadX::relax, ButtonMethod release_method=&LaunchPadX::relax)
Pad(int pid, int xx, int yy, PadMethod press_method, ButtonMethod long_press_method=&LaunchPadX::relax, ButtonMethod release_method=&LaunchPadX::relax)
ButtonMethod on_long_press
sigc::connection timeout_connection