19 #ifndef __ardour_push2_h__
20 #define __ardour_push2_h__
30 #define ABSTRACT_UI_EXPORTS
176 Pad (
int xx,
int yy, uint8_t ex)
301 static bool probe (std::string&, std::string&);
375 int ideal_vertical_semitones);
400 int vertical_semitones);
447 typedef std::map<int,std::shared_ptr<Pad> >
PadMap;
492 typedef std::multimap<int,std::shared_ptr<Pad> >
FNPadMap;
643 typedef std::map<Gtkmm2ext::Color,uint8_t>
ColorMap;
651 typedef std::map<ColorName,Gtkmm2ext::Color>
Colors;
void handle_midi_note_off_message(MIDI::Parser &, MIDI::EventTwoBytes *)
PBD::Signal< void()> PadChange
void set_pad_scale_chromatic(int root, int octave, MusicalMode::Type mode, NoteGridOrigin origin, int vertical_semitones)
PressureMode _pressure_mode
void button_stop_release()
libusb_device_handle * _handle
void other_vpot_touch(int, bool)
NoteGridOrigin note_grid_origin()
MusicalMode::Type mode() const
Push2Layout * _splash_layout
PBD::Signal< void(PressureMode)> PressureModeChange
void button_shift_release()
void button_octave_down()
void notify_record_state_changed()
void notify_parameter_changed(std::string)
Push2Layout * _track_mix_layout
void init_touch_strip(bool with_shift)
void button_solo_long_press()
CCButtonMap _cc_button_map
std::set< ButtonID > _buttons_down
void set_button_color(ButtonID, uint8_t color_index)
void handle_midi_pitchbend_message(MIDI::Parser &, MIDI::pitchbend_t)
void set_current_layout(Push2Layout *)
void start_press_timeout(std::shared_ptr< Button >, ButtonID)
void set_led_color(ButtonID, uint8_t color_index)
void handle_midi_note_on_message(MIDI::Parser &, MIDI::EventTwoBytes *)
@ Fifth
Perfect fourth or 5 semitones.
@ Fourth
Major third or 4 semitones.
@ Sequential
Perfect fifth or 7 semitones.
void button_upper(uint32_t n)
std::vector< std::shared_ptr< Pad > > _xy_pad_map
void notify_solo_active_changed(bool)
ModifierState _modifier_state
void button_layout_press()
std::shared_ptr< Pad > pad_by_xy(int x, int y)
void set_pressure_mode(PressureMode)
NoteGridOrigin _note_grid_origin
static bool match_usb(uint16_t, uint16_t)
std::map< int, std::shared_ptr< Button > > CCButtonMap
void update_selection_color()
bool button_long_press_timeout(ButtonID id)
RowInterval row_interval() const
void set_pad_scale(int root, int octave, MusicalMode::Type mode, NoteGridOrigin origin, RowInterval row_interval, bool inkey)
libusb_device_handle * usb_handle() const
PBD::microseconds_t _splash_start
std::stack< uint8_t > ColorMapFreeList
Push2Layout * _scale_layout
void set_led_state(ButtonID, LED::State)
void request_pressure_mode()
Push2Layout * current_layout() const
void set_pad_note_kind(Pad &pad, PadNoteKind kind)
Set up a pad to represent a "kind" of note.
void button_stop_long_press()
PadMap const & nn_pad_map() const
std::shared_ptr< Button > lower_button_by_column(uint32_t col)
void handle_midi_controller_message(MIDI::Parser &, MIDI::EventTwoBytes *)
std::string output_port_name() const
PBD::Signal< void()> ScaleChange
std::weak_ptr< ARDOUR::MidiTrack > _current_pad_target
static bool probe(std::string &, std::string &)
RowInterval _row_interval
sigc::connection _vblank_connection
void button_fixed_length()
int set_state(const XMLNode &node, int version)
IDButtonMap _id_button_map
std::set< ButtonID > _consumed
Gtkmm2ext::Color get_color(ColorName)
XMLNode & get_state() const
void button_select_long_press()
void other_vpot(int, int)
Push2Layout * _current_layout
int pad_note(int row, int col) const
Push2Layout * _previous_layout
void stripable_selection_changed()
std::map< ButtonID, std::shared_ptr< Button > > IDButtonMap
void set_percussive_mode(bool)
void button_select_press()
Push2Canvas * canvas() const
void button_shift_press()
std::string input_port_name() const
void notify_loop_state_changed()
void set_button_state(ButtonID, LED::State)
void button_shift_long_press()
static std::string button_name_by_id(ButtonID)
void set_pad_scale_in_key(int root, int octave, MusicalMode::Type mode, NoteGridOrigin origin, int ideal_vertical_semitones)
std::map< Gtkmm2ext::Color, uint8_t > ColorMap
void button_lower(uint32_t n)
std::multimap< int, std::shared_ptr< Pad > > FNPadMap
void button_scale_press()
void button_select_release()
bool pad_filter(ARDOUR::MidiBuffer &in, ARDOUR::MidiBuffer &out) const
std::shared_ptr< ARDOUR::Stripable > _master
std::shared_ptr< Button > button_by_id(ButtonID)
PressureMode pressure_mode() const
std::map< int, std::shared_ptr< Pad > > PadMap
Push2Layout * _cue_layout
@ Fixed
Bottom left pad is always C, or as close as possible.
@ Rooted
Bottom left pad is the scale root.
void handle_midi_sysex(MIDI::Parser &, MIDI::byte *, size_t count)
void notify_transport_state_changed()
std::map< ColorName, Gtkmm2ext::Color > Colors
ColorMapFreeList _color_map_free_list
ModifierState modifier_state() const
Glib::Threads::Mutex layout_lock
void use_previous_layout()
PadNoteKind
"Kind" of pad that plays a note
uint8_t get_color_index(Gtkmm2ext::Color rgba)
void init_buttons(bool startup)
Push2Layout * _mix_layout
unsigned short pitchbend_t
void set_state(State state)
virtual MidiByteArray state_msg() const =0
uint8_t color_index() const
void set_color(uint8_t color_index)
MidiByteArray state_msg() const
Pad(int xx, int yy, uint8_t ex)