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

#include <launchkey_4.h>

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

Classes

struct  Pad
 

Public Types

enum  ButtonID {
  Button1 = 0x25 , Button2 = 0x26 , Button3 = 0x27 , Button4 = 0x28 ,
  Button5 = 0x29 , Button6 = 0x2a , Button7 = 0x2b , Button8 = 0x2c ,
  Button9 = 0x2d , Volume = 0x0b , Custom1 = 0x0c , Custom2 = 0x0d ,
  Custom3 = 0x0e , Custom4 = 0x0f , PartA = 0x10 , PartB = 0x11 ,
  Split = 0x12 , Layer = 0x13 , Shift = 0x13 , TrackLeft = 0x67 ,
  TrackRight =0x66 , Up = 0x6a , Down = 0x6b , CaptureMidi = 0x3 ,
  Undo = 0x4d , Quantize = 0x4b , Metronome = 0x4c , Play = 0x73 ,
  Stop = 0x74 , RecEnable = 0x75 , Loop = 0x76 , Function = 0x69 ,
  Scene = 0x68 , EncUp = 0x33 , EncDown = 0x44
}
 
enum  KnobID {
  Knob1 = 0x55 , Knob2 = 0x56 , Knob3 = 0x57 , Knob4 = 0x58 ,
  Knob5 = 0x59 , Knob6 = 0x5a , Knob7 = 0x5b , Knob8 = 0x5c
}
 
- Public Types inherited from PBD::EventLoop
enum  RequestType { range_guarantee = ~0 }
 

Public Member Functions

 LaunchKey4 (ARDOUR::Session &)
 
 ~LaunchKey4 ()
 
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  FaderBank { VolumeFaders , PanFaders , SendAFaders , SendBFaders }
 
enum  DisplayTarget {
  StationaryDisplay = 0x20 , GlobalTemporaryDisplay = 0x21 , DAWPadFunctionDisplay = 0x22 , DawDrumrackModeDisplay = 0x23 ,
  MixerPotMode = 0x24 , PluginPotMode = 0x25 , SendPotMode = 0x26 , TransportPotMode = 0x27 ,
  FaderMode = 0x28
}
 
enum  PadFunction { MuteSolo , Triggers }
 
enum  LightingMode { Off , Solid , Flash , Pulse }
 
enum  ButtonMode { ButtonsRecEnable , ButtonsSelect }
 
enum  EncoderMode { EncoderPlugins , EncoderMixer , EncoderSendA , EncoderTransport }
 
typedef std::map< int, uint32_t > ColorMap
 
typedef std::map< uint32_t, int > NearestMap
 

Private Member Functions

void relax (Pad &p)
 
void relax (Pad &, int)
 
void build_pad_map ()
 
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 finish_begin_using_device ()
 
void stripable_selection_changed ()
 
void select_stripable (int col)
 
void handle_midi_controller_message (MIDI::Parser &, MIDI::EventTwoBytes *)
 
void handle_midi_controller_message_chnF (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 build_gui ()
 
void maybe_start_press_timeout (Pad &pad)
 
void start_press_timeout (Pad &pad)
 
bool long_press_timeout (int pad_id)
 
void button_press (int button)
 
void button_release (int button)
 
void trigger_property_change (PBD::PropertyChange, ARDOUR::Trigger *)
 
void trigger_pad_light (Pad &pad, std::shared_ptr< ARDOUR::Route > r, ARDOUR::Trigger *t)
 
void display_session_layout ()
 
void transport_state_changed ()
 
void record_state_changed ()
 
void map_selection ()
 
void map_mute_solo ()
 
void map_rec_enable ()
 
void map_triggers ()
 
void map_triggerbox (int col)
 
void route_property_change (PBD::PropertyChange const &, int x)
 
void fader_move (int which, int val)
 
void automation_control_change (int n, std::weak_ptr< ARDOUR::AutomationControl >)
 
void use_encoders (bool)
 
void encoder (int which, int step)
 
void knob (int which, int value)
 
void select_display_target (DisplayTarget dt)
 
void set_display_target (DisplayTarget dt, int field, std::string const &, bool display=false)
 
void configure_display (DisplayTarget dt, int config)
 
void set_plugin_encoder_name (int encoder, int field, std::string const &)
 
void set_daw_mode (bool)
 
void set_pad_function (PadFunction)
 
void pad_mute_solo (Pad &)
 
void pad_trigger (Pad &, int velocity)
 
void pad_release (Pad &)
 
void function_press ()
 
void undo_press ()
 
void metronome_press ()
 
void quantize_press ()
 
void button_left ()
 
void button_right ()
 
void button_down ()
 
void button_up ()
 
void stripables_added ()
 
void stripable_property_change (PBD::PropertyChange const &what_changed, uint32_t which)
 
void switch_bank (uint32_t)
 
void solo_changed ()
 
void mute_changed (uint32_t which)
 
void rec_enable_changed (uint32_t which)
 
void light_button (int which, LightingMode, int color_index)
 
void light_pad (int pid, LightingMode, int color_index)
 
void toggle_button_mode ()
 
void show_selection (int which)
 
void show_rec_enable (int which)
 
void show_mute (int which)
 
void show_solo (int which)
 
void set_encoder_bank (int)
 
void set_encoder_mode (EncoderMode)
 
void set_encoder_titles_to_route_names ()
 
void setup_screen_for_encoder_plugins ()
 
void label_encoders ()
 
void show_encoder_value (int which, std::shared_ptr< ARDOUR::Plugin > plugin, int control, std::shared_ptr< ARDOUR::AutomationControl > ac, bool display)
 
void encoder_plugin (int which, int step)
 
void encoder_mixer (int which, int step)
 
void encoder_pan (int which, int step)
 
void encoder_level (int which, int step)
 
void encoder_senda (int which, int step)
 
void encoder_transport (int which, int step)
 
void transport_shuttle (int step)
 
void zoom (int step)
 
void loop_start_move (int step)
 
void loop_end_move (int step)
 
void jump_to_marker (int step)
 
void light_pad (int pad_id, int color_index)
 
void unlight_pad (int pad_id)
 
void all_pads (int color_index)
 
void all_pads_out ()
 
void show_scene_ids ()
 
void scene_press ()
 
void in_msecs (int msecs, std::function< void()> func)
 
void plugin_selected (std::weak_ptr< ARDOUR::PluginInsert >)
 

Private Attributes

std::set< int > consumed
 
Pad pads [16]
 
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
 
LK4_GUI_gui
 
PBD::ScopedConnectionList trigger_connections
 
PBD::ScopedConnectionList route_connections
 
PBD::ScopedConnectionList control_connections
 
FaderBank current_fader_bank
 
bool revert_layout_on_fader_release
 
int scroll_x_offset
 
int scroll_y_offset
 
uint16_t device_pid
 
int mode_channel
 
PadFunction pad_function
 
bool shift_pressed
 
bool layer_pressed
 
int32_t bank_start
 
PBD::ScopedConnectionList stripable_connections
 
std::shared_ptr< ARDOUR::Stripablestripable [8]
 
ButtonMode button_mode
 
EncoderMode encoder_mode
 
int encoder_bank
 
std::weak_ptr< ARDOUR::AutomationControlcontrols [24]
 
std::weak_ptr< ARDOUR::Plugincurrent_plugin
 
uint32_t num_plugin_controls
 

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 72 of file launchkey_4.h.

Member Typedef Documentation

◆ ColorMap

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

Definition at line 195 of file launchkey_4.h.

◆ NearestMap

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

Definition at line 200 of file launchkey_4.h.

Member Enumeration Documentation

◆ ButtonID

Enumerator
Button1 
Button2 
Button3 
Button4 
Button5 
Button6 
Button7 
Button8 
Button9 
Volume 
Custom1 
Custom2 
Custom3 
Custom4 
PartA 
PartB 
Split 
Layer 
Shift 
TrackLeft 
TrackRight 
Up 
Down 
CaptureMidi 
Undo 
Quantize 
Metronome 
Play 
Stop 
RecEnable 
Loop 
Function 
Scene 
EncUp 
EncDown 

Definition at line 79 of file launchkey_4.h.

◆ ButtonMode

Enumerator
ButtonsRecEnable 
ButtonsSelect 

Definition at line 347 of file launchkey_4.h.

◆ DisplayTarget

Enumerator
StationaryDisplay 
GlobalTemporaryDisplay 
DAWPadFunctionDisplay 
DawDrumrackModeDisplay 
MixerPotMode 
PluginPotMode 
SendPotMode 
TransportPotMode 
FaderMode 

Definition at line 281 of file launchkey_4.h.

◆ EncoderMode

Enumerator
EncoderPlugins 
EncoderMixer 
EncoderSendA 
EncoderTransport 

Definition at line 360 of file launchkey_4.h.

◆ FaderBank

Enumerator
VolumeFaders 
PanFaders 
SendAFaders 
SendBFaders 

Definition at line 151 of file launchkey_4.h.

◆ KnobID

Enumerator
Knob1 
Knob2 
Knob3 
Knob4 
Knob5 
Knob6 
Knob7 
Knob8 

Definition at line 121 of file launchkey_4.h.

◆ LightingMode

Enumerator
Off 
Solid 
Flash 
Pulse 

Definition at line 337 of file launchkey_4.h.

◆ PadFunction

Enumerator
MuteSolo 
Triggers 

Definition at line 301 of file launchkey_4.h.

Constructor & Destructor Documentation

◆ LaunchKey4()

ArdourSurface::LP_X::LaunchKey4::LaunchKey4 ( ARDOUR::Session )

◆ ~LaunchKey4()

ArdourSurface::LP_X::LaunchKey4::~LaunchKey4 ( )

Member Function Documentation

◆ all_pads()

void ArdourSurface::LP_X::LaunchKey4::all_pads ( int  color_index)
private

◆ all_pads_out()

void ArdourSurface::LP_X::LaunchKey4::all_pads_out ( )
private

◆ automation_control_change()

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

◆ available()

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

◆ begin_using_device()

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

Reimplemented from MIDISurface.

◆ build_color_map()

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

◆ build_gui()

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

◆ build_pad_map()

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

◆ button_down()

void ArdourSurface::LP_X::LaunchKey4::button_down ( )
private

◆ button_left()

void ArdourSurface::LP_X::LaunchKey4::button_left ( )
private

◆ button_press()

void ArdourSurface::LP_X::LaunchKey4::button_press ( int  button)
private

◆ button_release()

void ArdourSurface::LP_X::LaunchKey4::button_release ( int  button)
private

◆ button_right()

void ArdourSurface::LP_X::LaunchKey4::button_right ( )
private

◆ button_up()

void ArdourSurface::LP_X::LaunchKey4::button_up ( )
private

◆ configure_display()

void ArdourSurface::LP_X::LaunchKey4::configure_display ( DisplayTarget  dt,
int  config 
)
private

◆ connect_daw_ports()

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

◆ daw_write() [1/2]

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

◆ daw_write() [2/2]

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

◆ device_acquire()

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

Implements MIDISurface.

Definition at line 205 of file launchkey_4.h.

◆ device_release()

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

Implements MIDISurface.

Definition at line 206 of file launchkey_4.h.

◆ display_session_layout()

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

◆ encoder()

void ArdourSurface::LP_X::LaunchKey4::encoder ( int  which,
int  step 
)
private

◆ encoder_level()

void ArdourSurface::LP_X::LaunchKey4::encoder_level ( int  which,
int  step 
)
private

◆ encoder_mixer()

void ArdourSurface::LP_X::LaunchKey4::encoder_mixer ( int  which,
int  step 
)
private

◆ encoder_pan()

void ArdourSurface::LP_X::LaunchKey4::encoder_pan ( int  which,
int  step 
)
private

◆ encoder_plugin()

void ArdourSurface::LP_X::LaunchKey4::encoder_plugin ( int  which,
int  step 
)
private

◆ encoder_senda()

void ArdourSurface::LP_X::LaunchKey4::encoder_senda ( int  which,
int  step 
)
private

◆ encoder_transport()

void ArdourSurface::LP_X::LaunchKey4::encoder_transport ( int  which,
int  step 
)
private

◆ fader_move()

void ArdourSurface::LP_X::LaunchKey4::fader_move ( int  which,
int  val 
)
private

◆ find_closest_palette_color()

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

◆ finish_begin_using_device()

void ArdourSurface::LP_X::LaunchKey4::finish_begin_using_device ( )
private

◆ function_press()

void ArdourSurface::LP_X::LaunchKey4::function_press ( )
private

◆ get_gui()

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

Reimplemented from ARDOUR::ControlProtocol.

◆ get_state()

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

Reimplemented from MIDISurface.

◆ handle_midi_controller_message()

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

Reimplemented from MIDISurface.

◆ handle_midi_controller_message_chnF()

void ArdourSurface::LP_X::LaunchKey4::handle_midi_controller_message_chnF ( MIDI::Parser ,
MIDI::EventTwoBytes  
)
private

◆ handle_midi_note_off_message()

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

Reimplemented from MIDISurface.

◆ handle_midi_note_on_message()

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

Reimplemented from MIDISurface.

◆ handle_midi_sysex()

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

Reimplemented from MIDISurface.

◆ has_editor()

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

Reimplemented from ARDOUR::ControlProtocol.

Definition at line 142 of file launchkey_4.h.

◆ in_msecs()

void ArdourSurface::LP_X::LaunchKey4::in_msecs ( int  msecs,
std::function< void()>  func 
)
private

◆ input_port_name()

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

Implements MIDISurface.

◆ jump_to_marker()

void ArdourSurface::LP_X::LaunchKey4::jump_to_marker ( int  step)
private

◆ knob()

void ArdourSurface::LP_X::LaunchKey4::knob ( int  which,
int  value 
)
private

◆ label_encoders()

void ArdourSurface::LP_X::LaunchKey4::label_encoders ( )
private

◆ light_button()

void ArdourSurface::LP_X::LaunchKey4::light_button ( int  which,
LightingMode  ,
int  color_index 
)
private

◆ light_pad() [1/2]

void ArdourSurface::LP_X::LaunchKey4::light_pad ( int  pad_id,
int  color_index 
)
private

◆ light_pad() [2/2]

void ArdourSurface::LP_X::LaunchKey4::light_pad ( int  pid,
LightingMode  ,
int  color_index 
)
private

◆ long_press_timeout()

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

◆ loop_end_move()

void ArdourSurface::LP_X::LaunchKey4::loop_end_move ( int  step)
private

◆ loop_start_move()

void ArdourSurface::LP_X::LaunchKey4::loop_start_move ( int  step)
private

◆ map_mute_solo()

void ArdourSurface::LP_X::LaunchKey4::map_mute_solo ( )
private

◆ map_rec_enable()

void ArdourSurface::LP_X::LaunchKey4::map_rec_enable ( )
private

◆ map_selection()

void ArdourSurface::LP_X::LaunchKey4::map_selection ( )
private

◆ map_triggerbox()

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

◆ map_triggers()

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

◆ match_usb()

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

◆ maybe_start_press_timeout()

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

◆ metronome_press()

void ArdourSurface::LP_X::LaunchKey4::metronome_press ( )
private

◆ mute_changed()

void ArdourSurface::LP_X::LaunchKey4::mute_changed ( uint32_t  which)
private

◆ output_port_name()

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

Implements MIDISurface.

◆ pad_mute_solo()

void ArdourSurface::LP_X::LaunchKey4::pad_mute_solo ( Pad )
private

◆ pad_release()

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

◆ pad_trigger()

void ArdourSurface::LP_X::LaunchKey4::pad_trigger ( Pad ,
int  velocity 
)
private

◆ plugin_selected()

void ArdourSurface::LP_X::LaunchKey4::plugin_selected ( std::weak_ptr< ARDOUR::PluginInsert )
private

◆ port_registration_handler()

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

Reimplemented from MIDISurface.

◆ ports_acquire()

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

Reimplemented from MIDISurface.

◆ ports_release()

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

Reimplemented from MIDISurface.

◆ probe()

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

◆ quantize_press()

void ArdourSurface::LP_X::LaunchKey4::quantize_press ( )
private

◆ rec_enable_changed()

void ArdourSurface::LP_X::LaunchKey4::rec_enable_changed ( uint32_t  which)
private

◆ reconnect_for_programmer()

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

◆ reconnect_for_session()

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

◆ record_state_changed()

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

◆ relax() [1/2]

void ArdourSurface::LP_X::LaunchKey4::relax ( Pad ,
int   
)
private

◆ relax() [2/2]

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

◆ route_property_change()

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

◆ run_event_loop()

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

◆ scene_press()

void ArdourSurface::LP_X::LaunchKey4::scene_press ( )
private

◆ select_display_target()

void ArdourSurface::LP_X::LaunchKey4::select_display_target ( DisplayTarget  dt)
private

◆ select_stripable()

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

◆ set_active()

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

Reimplemented from ARDOUR::ControlProtocol.

◆ set_daw_mode()

void ArdourSurface::LP_X::LaunchKey4::set_daw_mode ( bool  )
private

◆ set_display_target()

void ArdourSurface::LP_X::LaunchKey4::set_display_target ( DisplayTarget  dt,
int  field,
std::string const &  ,
bool  display = false 
)
private

◆ set_encoder_bank()

void ArdourSurface::LP_X::LaunchKey4::set_encoder_bank ( int  )
private

◆ set_encoder_mode()

void ArdourSurface::LP_X::LaunchKey4::set_encoder_mode ( EncoderMode  )
private

◆ set_encoder_titles_to_route_names()

void ArdourSurface::LP_X::LaunchKey4::set_encoder_titles_to_route_names ( )
private

◆ set_pad_function()

void ArdourSurface::LP_X::LaunchKey4::set_pad_function ( PadFunction  )
private

◆ set_plugin_encoder_name()

void ArdourSurface::LP_X::LaunchKey4::set_plugin_encoder_name ( int  encoder,
int  field,
std::string const &   
)
private

◆ set_state()

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

Reimplemented from MIDISurface.

◆ setup_screen_for_encoder_plugins()

void ArdourSurface::LP_X::LaunchKey4::setup_screen_for_encoder_plugins ( )
private

◆ show_encoder_value()

void ArdourSurface::LP_X::LaunchKey4::show_encoder_value ( int  which,
std::shared_ptr< ARDOUR::Plugin plugin,
int  control,
std::shared_ptr< ARDOUR::AutomationControl ac,
bool  display 
)
private

◆ show_mute()

void ArdourSurface::LP_X::LaunchKey4::show_mute ( int  which)
private

◆ show_rec_enable()

void ArdourSurface::LP_X::LaunchKey4::show_rec_enable ( int  which)
private

◆ show_scene_ids()

void ArdourSurface::LP_X::LaunchKey4::show_scene_ids ( )
private

◆ show_selection()

void ArdourSurface::LP_X::LaunchKey4::show_selection ( int  which)
private

◆ show_solo()

void ArdourSurface::LP_X::LaunchKey4::show_solo ( int  which)
private

◆ solo_changed()

void ArdourSurface::LP_X::LaunchKey4::solo_changed ( )
private

◆ start_press_timeout()

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

◆ stop_event_loop()

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

◆ stop_using_device()

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

Reimplemented from MIDISurface.

◆ stripable_property_change()

void ArdourSurface::LP_X::LaunchKey4::stripable_property_change ( PBD::PropertyChange const &  what_changed,
uint32_t  which 
)
private

◆ stripable_selection_changed()

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

◆ stripables_added()

void ArdourSurface::LP_X::LaunchKey4::stripables_added ( )
private

◆ switch_bank()

void ArdourSurface::LP_X::LaunchKey4::switch_bank ( uint32_t  )
private

◆ tear_down_gui()

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

Reimplemented from ARDOUR::ControlProtocol.

◆ toggle_button_mode()

void ArdourSurface::LP_X::LaunchKey4::toggle_button_mode ( )
private

◆ transport_shuttle()

void ArdourSurface::LP_X::LaunchKey4::transport_shuttle ( int  step)
private

◆ transport_state_changed()

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

◆ trigger_pad_light()

void ArdourSurface::LP_X::LaunchKey4::trigger_pad_light ( Pad pad,
std::shared_ptr< ARDOUR::Route r,
ARDOUR::Trigger t 
)
private

◆ trigger_property_change()

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

◆ undo_press()

void ArdourSurface::LP_X::LaunchKey4::undo_press ( )
private

◆ unlight_pad()

void ArdourSurface::LP_X::LaunchKey4::unlight_pad ( int  pad_id)
private

◆ use_encoders()

void ArdourSurface::LP_X::LaunchKey4::use_encoders ( bool  )
private

◆ zoom()

void ArdourSurface::LP_X::LaunchKey4::zoom ( int  step)
private

Member Data Documentation

◆ _current_pad_target

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

Definition at line 214 of file launchkey_4.h.

◆ _daw_in

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

Definition at line 224 of file launchkey_4.h.

◆ _daw_in_port

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

Definition at line 222 of file launchkey_4.h.

◆ _daw_out

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

Definition at line 225 of file launchkey_4.h.

◆ _daw_out_port

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

Definition at line 223 of file launchkey_4.h.

◆ _gui

LK4_GUI* ArdourSurface::LP_X::LaunchKey4::_gui
mutableprivate

Definition at line 238 of file launchkey_4.h.

◆ bank_start

int32_t ArdourSurface::LP_X::LaunchKey4::bank_start
private

Definition at line 326 of file launchkey_4.h.

◆ button_mode

ButtonMode ArdourSurface::LP_X::LaunchKey4::button_mode
private

Definition at line 352 of file launchkey_4.h.

◆ color_map

ColorMap ArdourSurface::LP_X::LaunchKey4::color_map
private

Definition at line 196 of file launchkey_4.h.

◆ consumed

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

Definition at line 190 of file launchkey_4.h.

◆ control_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchKey4::control_connections
private

Definition at line 268 of file launchkey_4.h.

◆ controls

std::weak_ptr<ARDOUR::AutomationControl> ArdourSurface::LP_X::LaunchKey4::controls[24]
private

Definition at line 399 of file launchkey_4.h.

◆ current_fader_bank

FaderBank ArdourSurface::LP_X::LaunchKey4::current_fader_bank
private

Definition at line 269 of file launchkey_4.h.

◆ current_plugin

std::weak_ptr<ARDOUR::Plugin> ArdourSurface::LP_X::LaunchKey4::current_plugin
private

Definition at line 400 of file launchkey_4.h.

◆ device_pid

uint16_t ArdourSurface::LP_X::LaunchKey4::device_pid
private

Definition at line 279 of file launchkey_4.h.

◆ encoder_bank

int ArdourSurface::LP_X::LaunchKey4::encoder_bank
private

Definition at line 368 of file launchkey_4.h.

◆ encoder_mode

EncoderMode ArdourSurface::LP_X::LaunchKey4::encoder_mode
private

Definition at line 367 of file launchkey_4.h.

◆ layer_pressed

bool ArdourSurface::LP_X::LaunchKey4::layer_pressed
private

Definition at line 313 of file launchkey_4.h.

◆ mode_channel

int ArdourSurface::LP_X::LaunchKey4::mode_channel
private

Definition at line 299 of file launchkey_4.h.

◆ nearest_map

NearestMap ArdourSurface::LP_X::LaunchKey4::nearest_map
private

Definition at line 201 of file launchkey_4.h.

◆ num_plugin_controls

uint32_t ArdourSurface::LP_X::LaunchKey4::num_plugin_controls
private

Definition at line 402 of file launchkey_4.h.

◆ pad_function

PadFunction ArdourSurface::LP_X::LaunchKey4::pad_function
private

Definition at line 306 of file launchkey_4.h.

◆ pads

Pad ArdourSurface::LP_X::LaunchKey4::pads[16]
private

Definition at line 192 of file launchkey_4.h.

◆ revert_layout_on_fader_release

bool ArdourSurface::LP_X::LaunchKey4::revert_layout_on_fader_release
private

Definition at line 270 of file launchkey_4.h.

◆ route_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchKey4::route_connections
private

Definition at line 264 of file launchkey_4.h.

◆ scroll_x_offset

int ArdourSurface::LP_X::LaunchKey4::scroll_x_offset
private

Definition at line 276 of file launchkey_4.h.

◆ scroll_y_offset

int ArdourSurface::LP_X::LaunchKey4::scroll_y_offset
private

Definition at line 277 of file launchkey_4.h.

◆ shift_pressed

bool ArdourSurface::LP_X::LaunchKey4::shift_pressed
private

Definition at line 312 of file launchkey_4.h.

◆ stripable

std::shared_ptr<ARDOUR::Stripable> ArdourSurface::LP_X::LaunchKey4::stripable[8]
private

Definition at line 328 of file launchkey_4.h.

◆ stripable_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchKey4::stripable_connections
private

Definition at line 327 of file launchkey_4.h.

◆ trigger_connections

PBD::ScopedConnectionList ArdourSurface::LP_X::LaunchKey4::trigger_connections
private

Definition at line 250 of file launchkey_4.h.


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