diff options
author | nick_m <mainsbridge@gmail.com> | 2017-02-05 05:02:01 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2017-02-05 05:02:01 +1100 |
commit | 5031bdcf10bf7dbc8521598f3a60a0285b9abe1b (patch) | |
tree | 7ac0a6c5bddb47925878abe9c5e3d518af3c61f4 /gtk2_ardour/midi_region_view.h | |
parent | fac04afbba35976dbf13a0e0c298b8af6f42a70f (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.h | 9 |
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); |