Ardour  9.0-pre0-582-g084a23a80d
ArdourSurface::LP_X::LaunchPadX Class Reference

#include <lpx.h>

Inheritance diagram for ArdourSurface::LP_X::LaunchPadX:
[legend]

Classes

struct  Pad
 

Public Types

enum  PadID {
  Up = 0x5b , Down = 0x5c , Left = 0x5d , Right = 0x5e ,
  Session = 0x5f , Note = 0x60 , Custom = 0x61 , CaptureMIDI = 0x62 ,
  Volume = 0x59 , Pan = 0x4f , SendA = 0x45 , SendB = 0x3b ,
  StopClip = 0x31 , Mute = 0x27 , Solo = 0x1d , RecordArm = 0x13 ,
  Logo = 0x63
}
 
- Public Types inherited from PBD::EventLoop
enum  RequestType { range_guarantee = ~0 }
 

Public Member Functions

bool light_logo ()
 
void all_pads_out ()
 
 LaunchPadX (ARDOUR::Session &)
 
 ~LaunchPadX ()
 
std::string input_port_name () const
 
std::string output_port_name () const
 
bool has_editor () const
 
void * get_gui () const
 
void tear_down_gui ()
 
int set_active (bool yn)
 
XMLNodeget_state () const
 
int set_state (const XMLNode &node, int version)
 
- Public Member Functions inherited from MIDISurface
 MIDISurface (ARDOUR::Session &, std::string const &name, std::string const &port_name_prefix, bool use_pad_filter)
 
 ~MIDISurface ()
 
std::shared_ptr< ARDOUR::Portinput_port ()
 
std::shared_ptr< ARDOUR::Portoutput_port ()
 
ARDOUR::Sessionget_session ()
 
void write (const MidiByteArray &)
 
void write (MIDI::byte const *, size_t)
 
std::list< std::shared_ptr< ARDOUR::Bundle > > bundles ()
 
 CONTROL_PROTOCOL_THREADS_NEED_TEMPO_MAP_DECL ()
 
virtual bool midi_input_handler (Glib::IOCondition ioc, MIDI::Port *port)
 
void midi_connectivity_established (bool)
 
- Public Member Functions inherited from ARDOUR::ControlProtocol
 ControlProtocol (Session &, std::string name)
 
virtual ~ControlProtocol ()
 
virtual std::string name () const
 
virtual bool active () const
 
virtual int set_feedback (bool)
 
virtual bool get_feedback () const
 
void add_stripable_to_selection (std::shared_ptr< ARDOUR::Stripable >)
 
void set_stripable_selection (std::shared_ptr< ARDOUR::Stripable >)
 
void toggle_stripable_selection (std::shared_ptr< ARDOUR::Stripable >)
 
void remove_stripable_from_selection (std::shared_ptr< ARDOUR::Stripable >)
 
void clear_stripable_selection ()
 
virtual void add_rid_to_selection (int rid)
 
virtual void set_rid_selection (int rid)
 
virtual void toggle_rid_selection (int rid)
 
virtual void remove_rid_from_selection (int rid)
 
std::shared_ptr< ARDOUR::Stripablefirst_selected_stripable () const
 
void set_route_table_size (uint32_t size)
 
void set_route_table (uint32_t table_index, std::shared_ptr< ARDOUR::Route >)
 
bool set_route_table (uint32_t table_index, uint32_t remote_control_id)
 
void route_set_rec_enable (uint32_t table_index, bool yn)
 
bool route_get_rec_enable (uint32_t table_index)
 
float route_get_gain (uint32_t table_index)
 
void route_set_gain (uint32_t table_index, float)
 
float route_get_effective_gain (uint32_t table_index)
 
float route_get_peak_input_power (uint32_t table_index, uint32_t which_input)
 
bool route_get_muted (uint32_t table_index)
 
void route_set_muted (uint32_t table_index, bool)
 
bool route_get_soloed (uint32_t table_index)
 
void route_set_soloed (uint32_t table_index, bool)
 
std::string route_get_name (uint32_t table_index)
 
- Public Member Functions inherited from PBD::Stateful
 Stateful ()
 
virtual ~Stateful ()
 
virtual bool apply_change (PropertyBase const &)
 
PropertyChange apply_changes (PropertyList const &)
 
const OwnedPropertyListproperties () const
 
void add_property (PropertyBase &s)
 
void add_extra_xml (XMLNode &)
 
XMLNodeextra_xml (const std::string &str, bool add_if_missing=false)
 
void save_extra_xml (const XMLNode &)
 
const PBD::IDid () const
 
bool set_id (const XMLNode &)
 
void set_id (const std::string &)
 
void reset_id ()
 
void clear_changes ()
 
virtual void clear_owned_changes ()
 
PropertyListget_changes_as_properties (PBD::Command *) const
 
virtual void rdiff (std::vector< PBD::Command * > &) const
 
bool changed () const
 
virtual PropertyListproperty_factory (const XMLNode &) const
 
virtual void suspend_property_changes ()
 
virtual void resume_property_changes ()
 
bool property_changes_suspended () const
 
- Public Member Functions inherited from PBD::ScopedConnectionList
 ScopedConnectionList ()
 
 ScopedConnectionList (const ScopedConnectionList &)=delete
 
ScopedConnectionListoperator= (const ScopedConnectionList &)=delete
 
virtual ~ScopedConnectionList ()
 
void add_connection (const UnscopedConnection &c)
 
void drop_connections ()
 
- Public Member Functions inherited from BasicUI
 BasicUI (ARDOUR::Session &)
 
virtual ~BasicUI ()
 
void add_marker (const std::string &=std::string())
 
void remove_marker_at_playhead ()
 
void register_thread (std::string name)
 
void loop_toggle ()
 
void loop_location (Temporal::timepos_t const &start, Temporal::timepos_t const &end)
 
void access_action (std::string action_path)
 
void goto_zero ()
 
void goto_start (bool and_roll=false)
 
void goto_end ()
 
void button_varispeed (bool fwd)
 
void rewind ()
 
void ffwd ()
 
void transport_stop ()
 
void transport_play (bool jump_back=false)
 
void set_transport_speed (double speed)
 
double get_transport_speed () const
 
double transport_rolling () const
 
void jump_by_seconds (double sec, ARDOUR::LocateTransportDisposition ltd=ARDOUR::RollIfAppropriate)
 
void jump_by_bars (int bars, ARDOUR::LocateTransportDisposition ltd=ARDOUR::RollIfAppropriate)
 
void jump_by_beats (int beats, ARDOUR::LocateTransportDisposition ltd=ARDOUR::RollIfAppropriate)
 
ARDOUR::samplepos_t transport_sample ()
 
void locate (ARDOUR::samplepos_t sample, ARDOUR::LocateTransportDisposition ltd)
 
void locate (ARDOUR::samplepos_t sample, bool)
 
bool locating ()
 
bool locked ()
 
void save_state ()
 
void prev_marker ()
 
void next_marker ()
 
void undo ()
 
void redo ()
 
void toggle_punch_in ()
 
void toggle_punch_out ()
 
void mark_in ()
 
void mark_out ()
 
void toggle_click ()
 
void midi_panic ()
 
void trigger_cue_row (int cue)
 
void trigger_stop_all (bool stop_now=false)
 
void trigger_stop_col (int col, bool immediately=false)
 
void store_mixer_scene (int scn)
 
void apply_mixer_scene (int scn)
 
void toggle_monitor_mute ()
 
void toggle_monitor_dim ()
 
void toggle_monitor_mono ()
 
void cancel_all_solo ()
 
void quick_snapshot_stay ()
 
void quick_snapshot_switch ()
 
void toggle_roll (bool with_abort, bool roll_out_of_bounded_mode)
 
void stop_forget ()
 
void set_punch_range ()
 
void set_loop_range ()
 
void set_session_range ()
 
void set_record_enable (bool yn)
 
bool get_record_enabled ()
 
void fit_1_track ()
 
void fit_2_tracks ()
 
void fit_4_tracks ()
 
void fit_8_tracks ()
 
void fit_16_tracks ()
 
void fit_32_tracks ()
 
void fit_all_tracks ()
 
void zoom_10_ms ()
 
void zoom_100_ms ()
 
void zoom_1_sec ()
 
void zoom_10_sec ()
 
void zoom_1_min ()
 
void zoom_5_min ()
 
void zoom_10_min ()
 
void zoom_to_session ()
 
void temporal_zoom_in ()
 
void temporal_zoom_out ()
 
void scroll_up_1_track ()
 
void scroll_dn_1_track ()
 
void scroll_up_1_page ()
 
void scroll_dn_1_page ()
 
void rec_enable_toggle ()
 
void toggle_all_rec_enables ()
 
void all_tracks_rec_in ()
 
void all_tracks_rec_out ()
 
void goto_nth_marker (int n)
 
ARDOUR::samplecnt_t timecode_frames_per_hour ()
 
void timecode_time (samplepos_t where, Timecode::Time &)
 
void timecode_to_sample (Timecode::Time &timecode, samplepos_t &sample, bool use_offset, bool use_subframes) const
 
void sample_to_timecode (samplepos_t sample, Timecode::Time &timecode, bool use_offset, bool use_subframes) const
 
bool stop_button_onoff () const
 
bool play_button_onoff () const
 
bool ffwd_button_onoff () const
 
bool rewind_button_onoff () const
 
bool loop_button_onoff () const
 
void tbank_set_size (int route_width, int row_height)
 
void tbank_step_routes (int step_size)
 
void tbank_step_rows (int step_size)
 
float trigger_progress_at (int x)
 
TriggerDisplay trigger_display_at (int x, int y)
 
void bang_trigger_at (int x, int y)
 
void unbang_trigger_at (int x, int y)
 
std::shared_ptr< ARDOUR::Triggerfind_trigger (int x, int y)
 
- Public Member Functions inherited from AbstractUI< MidiSurfaceRequest >
 AbstractUI (const std::string &name)
 
virtual ~AbstractUI ()
 
void register_thread (pthread_t, std::string, uint32_t num_requests)
 
bool call_slot (EventLoop::InvalidationRecord *, const std::function< void()> &)
 
Glib::Threads::RWLock & slot_invalidation_rwlock ()
 
- Public Member Functions inherited from BaseUI
 BaseUI (const std::string &name)
 
virtual ~BaseUI ()
 
BaseUIbase_instance ()
 
Glib::RefPtr< Glib::MainLoop > main_loop () const
 
bool caller_is_self () const
 
bool ok () const
 
void run ()
 
void quit ()
 
- Public Member Functions inherited from PBD::EventLoop
 EventLoop (std::string const &)
 
virtual ~EventLoop ()
 
virtual bool call_slot (InvalidationRecord *, const std::function< void()> &)=0
 
std::string event_loop_name () const
 

Static Public Member Functions

static bool available ()
 
static bool match_usb (uint16_t, uint16_t)
 
static bool probe (std::string &, std::string &)
 
- Static Public Member Functions inherited from ARDOUR::ControlProtocol
static StripableNotificationList const & last_selected ()
 
static void notify_stripable_selection_changed (StripableNotificationListPtr)
 
- Static Public Member Functions inherited from BaseUI
static RequestType new_request_type ()
 
static void set_thread_priority (int p)
 
- Static Public Member Functions inherited from PBD::EventLoop
static void * invalidate_request (void *data)
 
static EventLoopget_event_loop_for_thread ()
 
static void set_event_loop_for_thread (EventLoop *ui)
 
static std::vector< ThreadBufferMappingget_request_buffers_for_target_thread (const std::string &)
 
static void pre_register (const std::string &emitting_thread_name, uint32_t num_requests)
 
static void remove_request_buffer_from_map (pthread_t)
 
static InvalidationRecord__invalidator (sigc::trackable &trackable, const char *, int)
 

Private Types

enum  DeviceMode { Standalone , DAW , Programmer }
 
enum  Layout { SessionLayout , NoteLayout , CustomLayout }
 
enum  FaderBank { VolumeFaders , PanFaders , SendAFaders , SendBFaders }
 
enum  SessionState { SessionMode , MixerMode }
 
enum  PendingMixerOp {
  PendingNone , PendingStopClip , PendingMute , PendingSolo ,
  PendingRecArm
}
 
typedef std::pair< int32_t, int32_t > StripableSlot
 
typedef std::vector< StripableSlotStripableSlotRow
 
typedef std::vector< StripableSlotRowStripableSlotColumn
 
typedef std::map< int, PadPadMap
 
typedef std::map< int, uint32_t > ColorMap
 
typedef std::map< uint32_t, int > NearestMap
 

Private Member Functions

void relax (Pad &p)
 
StripableSlot get_stripable_slot (int x, int y) const
 
void build_pad_map ()
 
Padpad_by_id (int pid)
 
void build_color_map ()
 
int find_closest_palette_color (uint32_t)
 
int begin_using_device ()
 
int stop_using_device ()
 
int device_acquire ()
 
void device_release ()
 
void run_event_loop ()
 
void stop_event_loop ()
 
void stripable_selection_changed ()
 
void select_stripable (int col)
 
void light_pad (int pad_id, int color, int mode=0)
 
void pad_off (int pad_id)
 
void all_pads_off ()
 
void all_pads_on (int color)
 
void handle_midi_controller_message (MIDI::Parser &, MIDI::EventTwoBytes *)
 
void handle_midi_note_on_message (MIDI::Parser &, MIDI::EventTwoBytes *)
 
void handle_midi_note_off_message (MIDI::Parser &, MIDI::EventTwoBytes *)
 
void handle_midi_sysex (MIDI::Parser &, MIDI::byte *, size_t count)
 
void port_registration_handler ()
 
int ports_acquire ()
 
void ports_release ()
 
void connect_daw_ports ()
 
void daw_write (const MidiByteArray &)
 
void daw_write (MIDI::byte const *, size_t)
 
void reconnect_for_programmer ()
 
void reconnect_for_session ()
 
void scroll_text (std::string const &, int color, bool loop, float speed=0)
 
void build_gui ()
 
void maybe_start_press_timeout (Pad &pad)
 
void start_press_timeout (Pad &pad)
 
bool long_press_timeout (int pad_id)
 
void set_device_mode (DeviceMode)
 
void set_session_mode (SessionState, bool clear_pending)
 
void set_session_mode (SessionState sm)
 
void cue_press (Pad &, int row)
 
void rh0_press (Pad &)
 
void rh1_press (Pad &)
 
void rh2_press (Pad &)
 
void rh3_press (Pad &)
 
void rh4_press (Pad &)
 
void rh4_long_press (Pad &)
 
void rh5_press (Pad &)
 
void rh6_press (Pad &)
 
void rh6_long_press (Pad &)
 
void rh7_press (Pad &)
 
void fader_mode_press (FaderBank)
 
void down_press (Pad &)
 
void down_release (Pad &)
 
void down_long_press (Pad &)
 
void up_press (Pad &)
 
void up_release (Pad &)
 
void up_long_press (Pad &)
 
void left_press (Pad &)
 
void left_release (Pad &)
 
void left_long_press (Pad &)
 
void right_press (Pad &)
 
void right_release (Pad &)
 
void right_long_press (Pad &)
 
void session_press (Pad &)
 
void session_release (Pad &)
 
void session_long_press (Pad &)
 
void note_press (Pad &)
 
void note_release (Pad &)
 
void note_long_press (Pad &)
 
void custom_press (Pad &)
 
void custom_release (Pad &)
 
void custom_long_press (Pad &)
 
void send_a_press (Pad &)
 
void send_a_release (Pad &)
 
void send_b_press (Pad &)
 
void send_b_release (Pad &)
 
void pan_press (Pad &)
 
void pan_release (Pad &)
 
void pan_long_press (Pad &)
 
void volume_press (Pad &)
 
void volume_release (Pad &)
 
void volume_long_press (Pad &)
 
void solo_press (Pad &)
 
void solo_release (Pad &)
 
void solo_long_press (Pad &)
 
void stop_clip_press (Pad &)
 
void stop_clip_release (Pad &)
 
void mute_press (Pad &)
 
void mute_release (Pad &)
 
void mute_long_press (Pad &)
 
void record_arm_press (Pad &)
 
void record_arm_release (Pad &)
 
void record_arm_long_press (Pad &)
 
void capture_midi_press (Pad &)
 
void capture_midi_release (Pad &)
 
void capture_midi_long_press (Pad &)
 
void pad_press (Pad &, int velocity)
 
void pad_long_press (Pad &)
 
void pad_release (Pad &)
 
void trigger_property_change (PBD::PropertyChange, ARDOUR::Trigger *)
 
void display_session_layout ()
 
void transport_state_changed ()
 
void record_state_changed ()
 
void map_triggers ()
 
void map_triggerbox (int col)
 
void viewport_changed ()
 
void route_property_change (PBD::PropertyChange const &, int x)
 
void setup_faders (FaderBank)
 
void map_faders ()
 
void fader_move (int cc, int val)
 
void automation_control_change (int n, std::weak_ptr< ARDOUR::AutomationControl >)
 
void set_pending_mixer_op (PendingMixerOp)
 
void handle_pending_mixer_op (int col)
 

Private Attributes

std::set< int > consumed
 
MIDI::byte logo_color
 
int scroll_x_offset
 
int scroll_y_offset
 
StripableSlotColumn stripable_slots
 
PadMap pad_map
 
ColorMap color_map
 
NearestMap nearest_map
 
std::weak_ptr< ARDOUR::MidiTrack_current_pad_target
 
MIDI::Port_daw_in_port
 
MIDI::Port_daw_out_port
 
std::shared_ptr< ARDOUR::Port_daw_in
 
std::shared_ptr< ARDOUR::Port_daw_out
 
LPX_GUI_gui
 
Layout _current_layout
 
SessionState _session_mode
 
PBD::ScopedConnectionList trigger_connections
 
PBD::ScopedConnectionList route_connections
 
PBD::ScopedConnectionList control_connections
 
FaderBank current_fader_bank
 
bool revert_layout_on_fader_release
 
Layout pre_fader_layout
 
PendingMixerOp pending_mixer_op
 

Additional Inherited Members

- Public Attributes inherited from MIDISurface
std::shared_ptr< ARDOUR::Bundle_input_bundle
 
std::shared_ptr< ARDOUR::Bundle_output_bundle
 
PBD::Signal< void()> ConnectionChange
 
- Public Attributes inherited from ARDOUR::ControlProtocol
PBD::Signal< void()> ActiveChanged
 
- Public Attributes inherited from PBD::Stateful
PBD::Signal< void(const PropertyChange &)> PropertyChanged
 
- Public Attributes inherited from AbstractUI< MidiSurfaceRequest >
Glib::Threads::RWLock request_buffer_map_lock
 
- Public Attributes inherited from PBD::EventLoop
std::list< InvalidationRecord * > trash
 
- Static Public Attributes inherited from ARDOUR::ControlProtocol
static PBD::Signal< void()> ZoomToSession
 
static PBD::Signal< void()> ZoomIn
 
static PBD::Signal< void()> ZoomOut
 
static PBD::Signal< void()> Enter
 
static PBD::Signal< void()> Undo
 
static PBD::Signal< void()> Redo
 
static PBD::Signal< void(float)> ScrollTimeline
 
static PBD::Signal< void(uint32_t)> GotoView
 
static PBD::Signal< void()> CloseDialog
 
static PBD::Signal< void()> VerticalZoomInAll
 
static PBD::Signal< void()> VerticalZoomOutAll
 
static PBD::Signal< void()> VerticalZoomInSelected
 
static PBD::Signal< void()> VerticalZoomOutSelected
 
static PBD::Signal< void()> StepTracksDown
 
static PBD::Signal< void()> StepTracksUp
 
static PBD::Signal< void(std::weak_ptr< ARDOUR::PluginInsert >)> PluginSelected
 
static const std::string state_node_name
 
- Static Public Attributes inherited from PBD::Stateful
static int current_state_version
 
static int loading_state_version
 
- Static Public Attributes inherited from BasicUI
static PBD::Signal< void(std::string, std::string)> AccessAction
 
- Static Public Attributes inherited from BaseUI
static RequestType CallSlot
 
static RequestType Quit
 
- Protected Types inherited from MIDISurface
enum  ConnectionState { InputConnected = 0x1 , OutputConnected = 0x2 }
 
- Protected Types inherited from AbstractUI< MidiSurfaceRequest >
typedef RequestBuffer::rw_vector RequestBufferVector
 
typedef std::map< pthread_t, RequestBuffer * >::iterator RequestBufferMapIterator
 
typedef std::map< pthread_t, RequestBuffer * > RequestBufferMap
 
- Protected Member Functions inherited from MIDISurface
void do_request (MidiSurfaceRequest *)
 
virtual void connect_to_parser ()
 
virtual void connect_to_port_parser (MIDI::Port &)
 
virtual void handle_midi_pitchbend_message (MIDI::Parser &, MIDI::pitchbend_t)
 
virtual void handle_midi_polypressure_message (MIDI::Parser &, MIDI::EventTwoBytes *)
 
virtual void thread_init ()
 
virtual void connect_session_signals ()
 
virtual void notify_record_state_changed ()
 
virtual void notify_transport_state_changed ()
 
virtual void notify_loop_state_changed ()
 
virtual void notify_parameter_changed (std::string)
 
virtual void notify_solo_active_changed (bool)
 
virtual bool pad_filter (ARDOUR::MidiBuffer &in, ARDOUR::MidiBuffer &out) const
 
void drop ()
 
void port_setup ()
 
- Protected Member Functions inherited from ARDOUR::ControlProtocol
void next_track (uint32_t initial_id)
 
void prev_track (uint32_t initial_id)
 
virtual void event_loop_precall ()
 
void install_precall_handler (Glib::RefPtr< Glib::MainContext >)
 
- Protected Member Functions inherited from PBD::Stateful
void add_instant_xml (XMLNode &, const std::string &directory_path)
 
XMLNodeinstant_xml (const std::string &str, const std::string &directory_path)
 
void add_properties (XMLNode &) const
 
PropertyChange set_values (XMLNode const &)
 
virtual void post_set (const PropertyChange &)
 
virtual void send_change (const PropertyChange &)
 
virtual void mid_thaw (const PropertyChange &)
 
bool regenerate_xml_or_string_ids () const
 
- Protected Member Functions inherited from BasicUI
 BasicUI ()
 
- Protected Member Functions inherited from AbstractUI< MidiSurfaceRequest >
MidiSurfaceRequestget_request (RequestType)
 
void handle_ui_requests ()
 
void send_request (MidiSurfaceRequest *)
 
RequestBuffer * get_per_thread_request_buffer ()
 
- Protected Member Functions inherited from BaseUI
bool signal_running ()
 
int set_thread_priority () const
 
bool request_handler (Glib::IOCondition)
 
void signal_new_request ()
 
void attach_request_source ()
 
virtual void maybe_install_precall_handler (Glib::RefPtr< Glib::MainContext >)
 
- Protected Attributes inherited from MIDISurface
bool with_pad_filter
 
bool _in_use
 
bool _data_required
 
std::string port_name_prefix
 
MIDI::Port_input_port
 
MIDI::Port_output_port
 
std::shared_ptr< ARDOUR::Port_async_in
 
std::shared_ptr< ARDOUR::Port_async_out
 
PBD::ScopedConnectionList session_connections
 
int _connection_state
 
PBD::ScopedConnectionList port_connections
 
- Protected Attributes inherited from ARDOUR::ControlProtocol
std::vector< std::shared_ptr< ARDOUR::Route > > route_table
 
std::string _name
 
GlibEventLoopCallback glib_event_callback
 
- Protected Attributes inherited from PBD::Stateful
XMLNode_extra_xml
 
XMLNode_instant_xml
 
PBD::PropertyChange _pending_changed
 
Glib::Threads::Mutex _lock
 
std::string _xml_node_name
 name of node to use for this object in XML More...
 
OwnedPropertyList_properties
 
- Protected Attributes inherited from BasicUI
ARDOUR::Sessionsession
 
int _tbank_route_width
 
int _tbank_row_height
 
int _tbank_start_route
 
int _tbank_start_row
 
- Protected Attributes inherited from AbstractUI< MidiSurfaceRequest >
RequestBufferMap request_buffers
 
std::list< MidiSurfaceRequest * > request_list
 
PBD::ScopedConnection new_thread_connection
 
- Protected Attributes inherited from BaseUI
bool _ok
 
Glib::RefPtr< Glib::MainLoop > _main_loop
 
Glib::RefPtr< Glib::MainContext > m_context
 
PBD::Thread_run_loop_thread
 
Glib::Threads::Mutex _run_lock
 
Glib::Threads::Cond _running
 

Detailed Description

Definition at line 69 of file lpx.h.

Member Typedef Documentation

◆ ColorMap

typedef std::map<int,uint32_t> ArdourSurface::LP_X::LaunchPadX::ColorMap
private

Definition at line 211 of file lpx.h.

◆ NearestMap

typedef std::map<uint32_t,int> ArdourSurface::LP_X::LaunchPadX::NearestMap
private

Definition at line 216 of file lpx.h.

◆ PadMap

typedef std::map<int,Pad> ArdourSurface::LP_X::LaunchPadX::PadMap
private

Definition at line 206 of file lpx.h.

◆ StripableSlot

typedef std::pair<int32_t,int32_t> ArdourSurface::LP_X::LaunchPadX::StripableSlot
private

Definition at line 199 of file lpx.h.

◆ StripableSlotColumn

Definition at line 201 of file lpx.h.

◆ StripableSlotRow

Definition at line 200 of file lpx.h.

Member Enumeration Documentation

◆ DeviceMode

Enumerator
Standalone 
DAW 
Programmer 

Definition at line 119 of file lpx.h.

◆ FaderBank

Enumerator
VolumeFaders 
PanFaders 
SendAFaders 
SendBFaders 

Definition at line 131 of file lpx.h.

◆ Layout

Enumerator
SessionLayout 
NoteLayout 
CustomLayout 

Definition at line 125 of file lpx.h.

◆ PadID

Enumerator
Up 
Down 
Left 
Right 
Session 
Note 
Custom 
CaptureMIDI 
Volume 
Pan 
SendA 
SendB 
StopClip 
Mute 
Solo 
RecordArm 
Logo 

Definition at line 75 of file lpx.h.

◆ PendingMixerOp

Enumerator
PendingNone 
PendingStopClip 
PendingMute 
PendingSolo 
PendingRecArm 

Definition at line 369 of file lpx.h.

◆ SessionState

Enumerator
SessionMode 
MixerMode 

Definition at line 267 of file lpx.h.

Constructor & Destructor Documentation

◆ LaunchPadX()

ArdourSurface::LP_X::LaunchPadX::LaunchPadX ( ARDOUR::Session )

◆ ~LaunchPadX()

ArdourSurface::LP_X::LaunchPadX::~LaunchPadX ( )

Member Function Documentation

◆ all_pads_off()

void ArdourSurface::LP_X::LaunchPadX::all_pads_off ( )
private

◆ all_pads_on()

void ArdourSurface::LP_X::LaunchPadX::all_pads_on ( int  color)
private

◆ all_pads_out()

void ArdourSurface::LP_X::LaunchPadX::all_pads_out ( )

◆ automation_control_change()

void ArdourSurface::LP_X::LaunchPadX::automation_control_change ( int  n,
std::weak_ptr< ARDOUR::AutomationControl  
)
private

◆ available()

static bool ArdourSurface::LP_X::LaunchPadX::available ( )
static

◆ begin_using_device()

int ArdourSurface::LP_X::LaunchPadX::begin_using_device ( )
privatevirtual

Reimplemented from MIDISurface.

◆ build_color_map()

void ArdourSurface::LP_X::LaunchPadX::build_color_map ( )
private

◆ build_gui()

void ArdourSurface::LP_X::LaunchPadX::build_gui ( )
private

◆ build_pad_map()

void ArdourSurface::LP_X::LaunchPadX::build_pad_map ( )
private

◆ capture_midi_long_press()

void ArdourSurface::LP_X::LaunchPadX::capture_midi_long_press ( Pad )
inlineprivate

Definition at line 340 of file lpx.h.

◆ capture_midi_press()

void ArdourSurface::LP_X::LaunchPadX::capture_midi_press ( Pad )
private

◆ capture_midi_release()

void ArdourSurface::LP_X::LaunchPadX::capture_midi_release ( Pad )
inlineprivate

Definition at line 339 of file lpx.h.

◆ connect_daw_ports()

void ArdourSurface::LP_X::LaunchPadX::connect_daw_ports ( )
private

◆ cue_press()

void ArdourSurface::LP_X::LaunchPadX::cue_press ( Pad ,
int  row 
)
private

◆ custom_long_press()

void ArdourSurface::LP_X::LaunchPadX::custom_long_press ( Pad )
inlineprivate

Definition at line 315 of file lpx.h.

◆ custom_press()

void ArdourSurface::LP_X::LaunchPadX::custom_press ( Pad )
private

◆ custom_release()

void ArdourSurface::LP_X::LaunchPadX::custom_release ( Pad )
inlineprivate

Definition at line 314 of file lpx.h.

◆ daw_write() [1/2]

void ArdourSurface::LP_X::LaunchPadX::daw_write ( const MidiByteArray )
private

◆ daw_write() [2/2]

void ArdourSurface::LP_X::LaunchPadX::daw_write ( MIDI::byte const *  ,
size_t   
)
private

◆ device_acquire()

int ArdourSurface::LP_X::LaunchPadX::device_acquire ( )
inlineprivatevirtual

Implements MIDISurface.

Definition at line 221 of file lpx.h.

◆ device_release()

void ArdourSurface::LP_X::LaunchPadX::device_release ( )
inlineprivatevirtual

Implements MIDISurface.

Definition at line 222 of file lpx.h.

◆ display_session_layout()

void ArdourSurface::LP_X::LaunchPadX::display_session_layout ( )
private

◆ down_long_press()

void ArdourSurface::LP_X::LaunchPadX::down_long_press ( Pad )
inlineprivate

Definition at line 297 of file lpx.h.

◆ down_press()

void ArdourSurface::LP_X::LaunchPadX::down_press ( Pad )
private

◆ down_release()

void ArdourSurface::LP_X::LaunchPadX::down_release ( Pad )
inlineprivate

Definition at line 296 of file lpx.h.

◆ fader_mode_press()

void ArdourSurface::LP_X::LaunchPadX::fader_mode_press ( FaderBank  )
private

◆ fader_move()

void ArdourSurface::LP_X::LaunchPadX::fader_move ( int  cc,
int  val 
)
private

◆ find_closest_palette_color()

int ArdourSurface::LP_X::LaunchPadX::find_closest_palette_color ( uint32_t  )
private

◆ get_gui()

void* ArdourSurface::LP_X::LaunchPadX::get_gui ( ) const
virtual

Reimplemented from ARDOUR::ControlProtocol.

◆ get_state()

XMLNode& ArdourSurface::LP_X::LaunchPadX::get_state ( ) const
virtual

Reimplemented from MIDISurface.

◆ get_stripable_slot()

StripableSlot ArdourSurface::LP_X::LaunchPadX::get_stripable_slot ( int  x,
int  y 
) const
private

◆ handle_midi_controller_message()

void ArdourSurface::LP_X::LaunchPadX::handle_midi_controller_message ( MIDI::Parser ,
MIDI::EventTwoBytes  
)
privatevirtual

Reimplemented from MIDISurface.

◆ handle_midi_note_off_message()

void ArdourSurface::LP_X::LaunchPadX::handle_midi_note_off_message ( MIDI::Parser ,
MIDI::EventTwoBytes  
)
privatevirtual

Reimplemented from MIDISurface.

◆ handle_midi_note_on_message()

void ArdourSurface::LP_X::LaunchPadX::handle_midi_note_on_message ( MIDI::Parser ,
MIDI::EventTwoBytes  
)
privatevirtual

Reimplemented from MIDISurface.

◆ handle_midi_sysex()

void ArdourSurface::LP_X::LaunchPadX::handle_midi_sysex ( MIDI::Parser ,
MIDI::byte ,
size_t  count 
)
privatevirtual

Reimplemented from MIDISurface.

◆ handle_pending_mixer_op()

void ArdourSurface::LP_X::LaunchPadX::handle_pending_mixer_op ( int  col)
private

◆ has_editor()

bool ArdourSurface::LP_X::LaunchPadX::has_editor ( ) const
inlinevirtual

Reimplemented from ARDOUR::ControlProtocol.

Definition at line 110 of file lpx.h.

◆ input_port_name()

std::string ArdourSurface::LP_X::LaunchPadX::input_port_name ( ) const
virtual

Implements MIDISurface.

◆ left_long_press()

void ArdourSurface::LP_X::LaunchPadX::left_long_press ( Pad )
inlineprivate

Definition at line 303 of file lpx.h.

◆ left_press()

void ArdourSurface::LP_X::LaunchPadX::left_press ( Pad )
private

◆ left_release()

void ArdourSurface::LP_X::LaunchPadX::left_release ( Pad )
inlineprivate

Definition at line 302 of file lpx.h.

◆ light_logo()

bool ArdourSurface::LP_X::LaunchPadX::light_logo ( )

◆ light_pad()

void ArdourSurface::LP_X::LaunchPadX::light_pad ( int  pad_id,
int  color,
int  mode = 0 
)
private

◆ long_press_timeout()

bool ArdourSurface::LP_X::LaunchPadX::long_press_timeout ( int  pad_id)
private

◆ map_faders()

void ArdourSurface::LP_X::LaunchPadX::map_faders ( )
private

◆ map_triggerbox()

void ArdourSurface::LP_X::LaunchPadX::map_triggerbox ( int  col)
private

◆ map_triggers()

void ArdourSurface::LP_X::LaunchPadX::map_triggers ( )
private

◆ match_usb()

static bool ArdourSurface::LP_X::LaunchPadX::match_usb ( uint16_t  ,
uint16_t   
)
static

◆ maybe_start_press_timeout()

void ArdourSurface::LP_X::LaunchPadX::maybe_start_press_timeout ( Pad pad)
private

◆ mute_long_press()

void ArdourSurface::LP_X::LaunchPadX::mute_long_press ( Pad )
inlineprivate

Definition at line 334 of file lpx.h.

◆ mute_press()

void ArdourSurface::LP_X::LaunchPadX::mute_press ( Pad )
private

◆ mute_release()

void ArdourSurface::LP_X::LaunchPadX::mute_release ( Pad )
inlineprivate

Definition at line 333 of file lpx.h.

◆ note_long_press()

void ArdourSurface::LP_X::LaunchPadX::note_long_press ( Pad )
inlineprivate

Definition at line 312 of file lpx.h.

◆ note_press()

void ArdourSurface::LP_X::LaunchPadX::note_press ( Pad )
private

◆ note_release()

void ArdourSurface::LP_X::LaunchPadX::note_release ( Pad )
inlineprivate

Definition at line 311 of file lpx.h.

◆ output_port_name()

std::string ArdourSurface::LP_X::LaunchPadX::output_port_name ( ) const
virtual

Implements MIDISurface.

◆ pad_by_id()

Pad* ArdourSurface::LP_X::LaunchPadX::pad_by_id ( int  pid)
private

◆ pad_long_press()

void ArdourSurface::LP_X::LaunchPadX::pad_long_press ( Pad )
private

◆ pad_off()

void ArdourSurface::LP_X::LaunchPadX::pad_off ( int  pad_id)
private

◆ pad_press()

void ArdourSurface::LP_X::LaunchPadX::pad_press ( Pad ,
int  velocity 
)
private

◆ pad_release()

void ArdourSurface::LP_X::LaunchPadX::pad_release ( Pad )
private

◆ pan_long_press()

void ArdourSurface::LP_X::LaunchPadX::pan_long_press ( Pad )
inlineprivate

Definition at line 323 of file lpx.h.

◆ pan_press()

void ArdourSurface::LP_X::LaunchPadX::pan_press ( Pad )
private

◆ pan_release()

void ArdourSurface::LP_X::LaunchPadX::pan_release ( Pad )
inlineprivate

Definition at line 322 of file lpx.h.

◆ port_registration_handler()

void ArdourSurface::LP_X::LaunchPadX::port_registration_handler ( )
privatevirtual

Reimplemented from MIDISurface.

◆ ports_acquire()

int ArdourSurface::LP_X::LaunchPadX::ports_acquire ( )
privatevirtual

Reimplemented from MIDISurface.

◆ ports_release()

void ArdourSurface::LP_X::LaunchPadX::ports_release ( )
privatevirtual

Reimplemented from MIDISurface.

◆ probe()

static bool ArdourSurface::LP_X::LaunchPadX::probe ( std::string &  ,
std::string &   
)
static

◆ reconnect_for_programmer()

void ArdourSurface::LP_X::LaunchPadX::reconnect_for_programmer ( )
private

◆ reconnect_for_session()

void ArdourSurface::LP_X::LaunchPadX::reconnect_for_session ( )
private

◆ record_arm_long_press()

void ArdourSurface::LP_X::LaunchPadX::record_arm_long_press ( Pad )
inlineprivate

Definition at line 337 of file lpx.h.

◆ record_arm_press()

void ArdourSurface::LP_X::LaunchPadX::record_arm_press ( Pad )
private

◆ record_arm_release()

void ArdourSurface::LP_X::LaunchPadX::record_arm_release ( Pad )
inlineprivate

Definition at line 336 of file lpx.h.

◆ record_state_changed()

void ArdourSurface::LP_X::LaunchPadX::record_state_changed ( )
private

◆ relax()

void ArdourSurface::LP_X::LaunchPadX::relax ( Pad p)
private

◆ rh0_press()

void ArdourSurface::LP_X::LaunchPadX::rh0_press ( Pad )
private

◆ rh1_press()

void ArdourSurface::LP_X::LaunchPadX::rh1_press ( Pad )
private

◆ rh2_press()

void ArdourSurface::LP_X::LaunchPadX::rh2_press ( Pad )
private

◆ rh3_press()

void ArdourSurface::LP_X::LaunchPadX::rh3_press ( Pad )
private

◆ rh4_long_press()

void ArdourSurface::LP_X::LaunchPadX::rh4_long_press ( Pad )
private

◆ rh4_press()

void ArdourSurface::LP_X::LaunchPadX::rh4_press ( Pad )
private

◆ rh5_press()

void ArdourSurface::LP_X::LaunchPadX::rh5_press ( Pad )
private

◆ rh6_long_press()

void ArdourSurface::LP_X::LaunchPadX::rh6_long_press ( Pad )
private

◆ rh6_press()

void ArdourSurface::LP_X::LaunchPadX::rh6_press ( Pad )
private

◆ rh7_press()

void ArdourSurface::LP_X::LaunchPadX::rh7_press ( Pad )
private

◆ right_long_press()

void ArdourSurface::LP_X::LaunchPadX::right_long_press ( Pad )
inlineprivate

Definition at line 306 of file lpx.h.

◆ right_press()

void ArdourSurface::LP_X::LaunchPadX::right_press ( Pad )
private

◆ right_release()

void ArdourSurface::LP_X::LaunchPadX::right_release ( Pad )
inlineprivate

Definition at line 305 of file lpx.h.

◆ route_property_change()

void ArdourSurface::LP_X::LaunchPadX::route_property_change ( PBD::PropertyChange const &  ,
int  x 
)
private

◆ run_event_loop()

void ArdourSurface::LP_X::LaunchPadX::run_event_loop ( )
private

◆ scroll_text()

void ArdourSurface::LP_X::LaunchPadX::scroll_text ( std::string const &  ,
int  color,
bool  loop,
float  speed = 0 
)
private

◆ select_stripable()

void ArdourSurface::LP_X::LaunchPadX::select_stripable ( int  col)
private

◆ send_a_press()

void ArdourSurface::LP_X::LaunchPadX::send_a_press ( Pad )
private

◆ send_a_release()

void ArdourSurface::LP_X::LaunchPadX::send_a_release ( Pad )
inlineprivate

Definition at line 318 of file lpx.h.

◆ send_b_press()

void ArdourSurface::LP_X::LaunchPadX::send_b_press ( Pad )
private

◆ send_b_release()

void ArdourSurface::LP_X::LaunchPadX::send_b_release ( Pad )
inlineprivate

Definition at line 320 of file lpx.h.

◆ session_long_press()

void ArdourSurface::LP_X::LaunchPadX::session_long_press ( Pad )
inlineprivate

Definition at line 309 of file lpx.h.

◆ session_press()

void ArdourSurface::LP_X::LaunchPadX::session_press ( Pad )
private

◆ session_release()

void ArdourSurface::LP_X::LaunchPadX::session_release ( Pad )
private

◆ set_active()

int ArdourSurface::LP_X::LaunchPadX::set_active ( bool  yn)
virtual

Reimplemented from ARDOUR::ControlProtocol.

◆ set_device_mode()

void ArdourSurface::LP_X::LaunchPadX::set_device_mode ( DeviceMode  )
private

◆ set_pending_mixer_op()

void ArdourSurface::LP_X::LaunchPadX::set_pending_mixer_op ( PendingMixerOp  )
private

◆ set_session_mode() [1/2]

void ArdourSurface::LP_X::LaunchPadX::set_session_mode ( SessionState  sm)
inlineprivate

Definition at line 274 of file lpx.h.

◆ set_session_mode() [2/2]

void ArdourSurface::LP_X::LaunchPadX::set_session_mode ( SessionState  ,
bool  clear_pending 
)
private

◆ set_state()

int ArdourSurface::LP_X::LaunchPadX::set_state ( const XMLNode node,
int  version 
)
virtual

Reimplemented from MIDISurface.

◆ setup_faders()

void ArdourSurface::LP_X::LaunchPadX::setup_faders ( FaderBank  )
private

◆ solo_long_press()

void ArdourSurface::LP_X::LaunchPadX::solo_long_press ( Pad )
private

◆ solo_press()

void ArdourSurface::LP_X::LaunchPadX::solo_press ( Pad )
private

◆ solo_release()

void ArdourSurface::LP_X::LaunchPadX::solo_release ( Pad )
inlineprivate

Definition at line 328 of file lpx.h.

◆ start_press_timeout()

void ArdourSurface::LP_X::LaunchPadX::start_press_timeout ( Pad pad)
private

◆ stop_clip_press()

void ArdourSurface::LP_X::LaunchPadX::stop_clip_press ( Pad )
private

◆ stop_clip_release()

void ArdourSurface::LP_X::LaunchPadX::stop_clip_release ( Pad )
inlineprivate

Definition at line 331 of file lpx.h.

◆ stop_event_loop()

void ArdourSurface::LP_X::LaunchPadX::stop_event_loop ( )
private

◆ stop_using_device()

int ArdourSurface::LP_X::LaunchPadX::stop_using_device ( )
privatevirtual

Reimplemented from MIDISurface.

◆ stripable_selection_changed()

void ArdourSurface::LP_X::LaunchPadX::stripable_selection_changed ( )
privatevirtual

◆ tear_down_gui()

void ArdourSurface::LP_X::LaunchPadX::tear_down_gui ( )
virtual

Reimplemented from ARDOUR::ControlProtocol.

◆ transport_state_changed()

void ArdourSurface::LP_X::LaunchPadX::transport_state_changed ( )
private

◆ trigger_property_change()

void ArdourSurface::LP_X::LaunchPadX::trigger_property_change ( PBD::PropertyChange  ,
ARDOUR::Trigger  
)
private

◆ up_long_press()

void ArdourSurface::LP_X::LaunchPadX::up_long_press ( Pad )
inlineprivate

Definition at line 300 of file lpx.h.

◆ up_press()

void ArdourSurface::LP_X::LaunchPadX::up_press ( Pad )
private

◆ up_release()

void ArdourSurface::LP_X::LaunchPadX::up_release ( Pad )
inlineprivate

Definition at line 299 of file lpx.h.

◆ viewport_changed()

void ArdourSurface::LP_X::LaunchPadX::viewport_changed ( )
private

◆ volume_long_press()

void ArdourSurface::LP_X::LaunchPadX::volume_long_press ( Pad )
inlineprivate

Definition at line 326 of file lpx.h.

◆ volume_press()

void ArdourSurface::LP_X::LaunchPadX::volume_press ( Pad )
private

◆ volume_release()

void ArdourSurface::LP_X::LaunchPadX::volume_release ( Pad )
inlineprivate

Definition at line 325 of file lpx.h.

Member Data Documentation

◆ _current_layout

Layout ArdourSurface::LP_X::LaunchPadX::_current_layout
private

Definition at line 261 of file lpx.h.

◆ _current_pad_target

std::weak_ptr<ARDOUR::MidiTrack> ArdourSurface::LP_X::LaunchPadX::_current_pad_target
private

Definition at line 228 of file lpx.h.

◆ _daw_in

std::shared_ptr<ARDOUR::Port> ArdourSurface::LP_X::LaunchPadX::_daw_in
private

Definition at line 242 of file lpx.h.

◆ _daw_in_port

MIDI::Port* ArdourSurface::LP_X::LaunchPadX::_daw_in_port
private

Definition at line 240 of file lpx.h.

◆ _daw_out

std::shared_ptr<ARDOUR::Port> ArdourSurface::LP_X::LaunchPadX::_daw_out
private

Definition at line 243 of file lpx.h.

◆ _daw_out_port

MIDI::Port* ArdourSurface::LP_X::LaunchPadX::_daw_out_port
private

Definition at line 241 of file lpx.h.

◆ _gui

LPX_GUI* ArdourSurface::LP_X::LaunchPadX::_gui
mutableprivate

Definition at line 258 of file lpx.h.

◆ _session_mode

SessionState ArdourSurface::LP_X::LaunchPadX::_session_mode
private

Definition at line 278 of file lpx.h.

◆ color_map

ColorMap ArdourSurface::LP_X::LaunchPadX::color_map
private

Definition at line 212 of file lpx.h.

◆ consumed

std::set<int> ArdourSurface::LP_X::LaunchPadX::consumed
private

Definition at line 193 of file lpx.h.

◆ control_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchPadX::control_connections
private

Definition at line 364 of file lpx.h.

◆ current_fader_bank

FaderBank ArdourSurface::LP_X::LaunchPadX::current_fader_bank
private

Definition at line 365 of file lpx.h.

◆ logo_color

MIDI::byte ArdourSurface::LP_X::LaunchPadX::logo_color
private

Definition at line 195 of file lpx.h.

◆ nearest_map

NearestMap ArdourSurface::LP_X::LaunchPadX::nearest_map
private

Definition at line 217 of file lpx.h.

◆ pad_map

PadMap ArdourSurface::LP_X::LaunchPadX::pad_map
private

Definition at line 207 of file lpx.h.

◆ pending_mixer_op

PendingMixerOp ArdourSurface::LP_X::LaunchPadX::pending_mixer_op
private

Definition at line 377 of file lpx.h.

◆ pre_fader_layout

Layout ArdourSurface::LP_X::LaunchPadX::pre_fader_layout
private

Definition at line 367 of file lpx.h.

◆ revert_layout_on_fader_release

bool ArdourSurface::LP_X::LaunchPadX::revert_layout_on_fader_release
private

Definition at line 366 of file lpx.h.

◆ route_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchPadX::route_connections
private

Definition at line 358 of file lpx.h.

◆ scroll_x_offset

int ArdourSurface::LP_X::LaunchPadX::scroll_x_offset
private

Definition at line 197 of file lpx.h.

◆ scroll_y_offset

int ArdourSurface::LP_X::LaunchPadX::scroll_y_offset
private

Definition at line 198 of file lpx.h.

◆ stripable_slots

StripableSlotColumn ArdourSurface::LP_X::LaunchPadX::stripable_slots
private

Definition at line 202 of file lpx.h.

◆ trigger_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchPadX::trigger_connections
private

Definition at line 347 of file lpx.h.


The documentation for this class was generated from the following file: