23 #include <ytkmm/adjustment.h>
37 class GtkCanvasViewport;
82 void set_track (std::shared_ptr<ARDOUR::MidiTrack>);
134 void paste (
float times,
bool from_context_menu);
149 bool ensure_snap =
false)
const;
170 std::shared_ptr<ARDOUR::MidiTrack>
_track;
234 void get_marks (std::vector<ArdourCanvas::Ruler::Mark>& marks, int64_t lower, int64_t upper,
int maxchars)
const {
double _visible_canvas_width
void get_marks(std::vector< ArdourCanvas::Ruler::Mark > &marks, int64_t lower, int64_t upper, int maxchars) const
void build_lower_toolbar()
bool leave_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void set_trigger_bounds(Temporal::timepos_t const &, Temporal::timepos_t const &)
void select_all_within(Temporal::timepos_t const &, Temporal::timepos_t const &, double, double, std::list< SelectableOwner * > const &, ARDOUR::SelectionOperation, bool)
void rec_enable_clicked()
sigc::signal< void > NoteModeChanged
void build_upper_toolbar()
void visual_changer(const VisualChange &)
ArdourWidgets::ArdourDropdown * cc_dropdown2
PBD::ScopedConnectionList capture_connections
Gtk::Adjustment bar_adjustment
bool enter(GdkEventCrossing *)
bool button_release_dispatch(GdkEventButton *)
Gtk::SpinButton bar_spinner
std::atomic< int > idle_update_queued
void set_trigger_start(Temporal::timepos_t const &)
ArdourCanvas::GtkCanvasViewport * get_canvas_viewport() const
ArdourCanvas::Container * get_trackview_group() const
void trigger_prop_change(PBD::PropertyChange const &)
void set(ARDOUR::TriggerReference &)
void rebuild_parameter_button_map()
std::list< SelectableOwner * > selectable_owners()
void step_mouse_mode(bool next)
void zoom_to_show(Temporal::timecnt_t const &)
void stop_canvas_autoscroll()
ArdourCanvas::GtkCanvas * get_canvas() const
void canvas_allocate(Gtk::Allocation)
ArdourWidgets::ArdourButton rec_enable_button
bool rec_button_press(GdkEventButton *)
void trigger_rec_enable_change(ARDOUR::Trigger const &)
ArdourWidgets::ArdourDropdown * cc_dropdown3
bool canvas_pre_event(GdkEvent *)
Gdk::Cursor * which_track_cursor() const
void set_mouse_mode(Editing::MouseMode, bool force=false)
ARDOUR::TriggerReference ref
void snap_to_internal(Temporal::timepos_t &first, Temporal::RoundMode direction=Temporal::RoundNearest, ARDOUR::SnapPref gpref=ARDOUR::SnapToAny_Visual, bool ensure_snap=false) const
bool canvas_cue_start_event(GdkEvent *event, ArdourCanvas::Item *)
bool canvas_enter_leave(GdkEventCrossing *ev)
Gdk::Cursor * which_trim_cursor(bool left_side) const
bool button_press_handler_2(ArdourCanvas::Item *, GdkEvent *, ItemType)
bool button_release_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void midi_action(void(MidiView::*method)())
ArdourCanvas::GtkCanvas * _canvas
ArdourWidgets::ArdourButton * bender_button
void data_captured(samplecnt_t)
void point_selection_changed()
bool button_press_handler_1(ArdourCanvas::Item *, GdkEvent *, ItemType)
void set_trigger_end(Temporal::timepos_t const &)
bool canvas_bg_event(GdkEvent *event, ArdourCanvas::Item *)
double visible_canvas_width() const
Gdk::Cursor * which_mode_cursor() const
Pianoroll(std::string const &name)
bool canvas_velocity_event(GdkEvent *event, ArdourCanvas::Item *)
ArdourWidgets::ArdourButton * velocity_button
ArdourCanvas::Rectangle * meter_bar
void metric_get_bbt(std::vector< ArdourCanvas::Ruler::Mark > &, samplepos_t, samplepos_t, gint)
std::shared_ptr< ARDOUR::MidiTrack > _track
std::pair< Temporal::timepos_t, Temporal::timepos_t > max_zoom_extent() const
bool canvas_note_event(GdkEvent *event, ArdourCanvas::Item *)
double max_extents_scale() const
ArdourCanvas::ScrollGroup * get_cursor_scroll_group() const
void on_samples_per_pixel_changed()
ArdourCanvas::ScrollGroup * h_scroll_group
bool canvas_velocity_base_event(GdkEvent *event, ArdourCanvas::Item *)
PBD::ScopedConnectionList object_connections
ArdourCanvas::Rectangle * transport_loop_range_rect
bool button_press_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void get_per_region_note_selection(std::list< std::pair< PBD::ID, std::set< std::shared_ptr< Evoral::Note< Temporal::Beats > > > > > &) const
Temporal::timepos_t snap_to_grid(Temporal::timepos_t const &start, Temporal::RoundMode direction, ARDOUR::SnapPref gpref) const
XMLNode & get_state() const
sigc::connection _update_connection
void set_track(std::shared_ptr< ARDOUR::MidiTrack >)
std::map< Evoral::Parameter, ArdourWidgets::ArdourButton * > ParameterButtonMap
ArdourCanvas::PianoRollHeader * prh
bool internal_editing() const
ArdourCanvas::ScrollGroup * get_hscroll_group() const
void box_rec_enable_change(ARDOUR::TriggerBox const &)
void start_canvas_autoscroll(bool allow_horiz, bool allow_vert, const ArdourCanvas::Rect &boundary)
bool motion_handler(ArdourCanvas::Item *, GdkEvent *, bool from_autoscroll=false)
void automation_state_changed()
bool canvas_control_point_event(GdkEvent *event, ArdourCanvas::Item *, ControlPoint *)
RegionSelection region_selection()
samplecnt_t data_capture_duration
int32_t get_grid_beat_divisions(Editing::GridType gt) const
void set_samples_per_pixel(samplecnt_t)
void set_visible_channel(int chan)
ArdourCanvas::Container * get_noscroll_group() const
ArdourWidgets::ArdourButton * expression_button
ArdourCanvas::ScrollGroup * hv_scroll_group
bool idle_data_captured()
ArdourCanvas::Ruler * bbt_ruler
Temporal::Beats get_draw_length_as_beats(bool &success, Temporal::timepos_t const &position) const
bool enter_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
Editing::MouseMode current_mouse_mode() const
ArdourWidgets::ArdourButton * pressure_button
Temporal::Beats get_grid_type_as_beats(bool &success, Temporal::timepos_t const &position) const
Gdk::Cursor * which_canvas_cursor(ItemType type) const
bool key_release_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
ArdourCanvas::GtkCanvasViewport * _canvas_viewport
void set_note_mode(ARDOUR::NoteMode)
void cut_copy(Editing::CutCopyOp)
int set_state(const XMLNode &, int version)
samplecnt_t current_page_samples() const
void blink_rec_enable(bool)
ArdourCanvas::ScrollGroup * v_scroll_group
ARDOUR::NoteMode note_mode() const
bool autoscroll_active() const
ArdourCanvas::Rectangle * tempo_bar
int32_t get_grid_music_divisions(Editing::GridType gt, uint32_t event_state) const
void mouse_mode_toggled(Editing::MouseMode)
void build_zoom_focus_menu()
ArdourCanvas::Container * data_group
ParameterButtonMap parameter_button_map
bool key_press_handler(ArdourCanvas::Item *, GdkEvent *, ItemType)
void set_region(std::shared_ptr< ARDOUR::MidiRegion >)
ArdourCanvas::ScrollGroup * cursor_scroll_group
ArdourWidgets::ArdourButton * modulation_button
bool canvas_cue_end_event(GdkEvent *event, ArdourCanvas::Item *)
void maybe_autoscroll(bool, bool, bool)
void set_trigger_length(Temporal::timecnt_t const &)
void paste(float times, bool from_context_menu)
ArdourWidgets::ArdourDropdown * cc_dropdown1
ArdourCanvas::Container * no_scroll_group
void automation_led_click(GdkEventButton *, Evoral::ParameterType type, int id)
bool button_press_dispatch(GdkEventButton *)
ArdourCanvas::Container * global_rect_group
bool automation_button_event(GdkEventButton *, Evoral::ParameterType type, int id)
bool automation_button_click(Evoral::ParameterType type, int id, ARDOUR::SelectionOperation)
sigc::connection rec_blink_connection
ARDOUR::NoteMode _note_mode
PBD::PropertyDescriptor< std::string > name
PBD::PropertyDescriptor< timepos_t > start
Temporal::samplecnt_t samplecnt_t
Temporal::samplepos_t samplepos_t
@ RoundNearest
Round to nearest.