summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.h
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2017-02-05 05:02:01 +1100
committernick_m <mainsbridge@gmail.com>2017-02-05 05:02:01 +1100
commit5031bdcf10bf7dbc8521598f3a60a0285b9abe1b (patch)
tree7ac0a6c5bddb47925878abe9c5e3d518af3c61f4 /gtk2_ardour/midi_region_view.h
parentfac04afbba35976dbf13a0e0c298b8af6f42a70f (diff)
midi note drags are music-based.
- wysiwyg (during drag) when dragging more than one note across a tempo change. - introduces a muscal equivalent of snap_delta (only used for note drags atm) - split earliest note in selection into a separate function - MRV::copy_selection() returns the equivalent _primary note to avoid offset hell. - RV::snap_frame_to_frame returns a MusicFrame - prevent note drag moving before region start.
Diffstat (limited to 'gtk2_ardour/midi_region_view.h')
-rw-r--r--gtk2_ardour/midi_region_view.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/gtk2_ardour/midi_region_view.h b/gtk2_ardour/midi_region_view.h
index 929b3bd7f9..0d5b82255d 100644
--- a/gtk2_ardour/midi_region_view.h
+++ b/gtk2_ardour/midi_region_view.h
@@ -200,10 +200,11 @@ public:
void select_range(framepos_t start, framepos_t end);
void invert_selection ();
+ Evoral::Beats earliest_in_selection ();
void move_selection(double dx, double dy, double cumulative_dy);
- void note_dropped (NoteBase* ev, ARDOUR::frameoffset_t, int8_t d_note, bool copy);
- NoteBase* copy_selection ();
- void move_copies(double dx, double dy, double cumulative_dy);
+ void note_dropped (NoteBase* ev, double d_qn, int8_t d_note, bool copy);
+ NoteBase* copy_selection (NoteBase* primary);
+ void move_copies(double dx_qn, double dy, double cumulative_dy);
void select_notes (std::list<Evoral::event_id_t>);
void select_matching_notes (uint8_t notenum, uint16_t channel_mask, bool add, bool extend);
@@ -297,6 +298,8 @@ public:
return _region_relative_time_converter_double;
}
+ double session_relative_qn (double qn) const;
+
void goto_previous_note (bool add_to_selection);
void goto_next_note (bool add_to_selection);
void change_note_lengths (bool, bool, Evoral::Beats beats, bool start, bool end);