diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-13 14:11:01 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-08-13 14:11:01 +0000 |
commit | aac46a38fbd3b979dd1d352a4d1454ac8a70793f (patch) | |
tree | 824b9b41eee1b4f630a6444e0de36396908cf76c /gtk2_ardour/midi_time_axis.cc | |
parent | 3364fda3decc12360bd15faa9210ede0a47ba1fc (diff) |
add step editing sustain support
git-svn-id: svn://localhost/ardour2/branches/3.0@7615 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_time_axis.cc')
-rw-r--r-- | gtk2_ardour/midi_time_axis.cc | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc index e62bd6223c..464ed630f5 100644 --- a/gtk2_ardour/midi_time_axis.cc +++ b/gtk2_ardour/midi_time_axis.cc @@ -898,8 +898,12 @@ MidiTimeAxisView::start_step_editing () _step_edit_triplet_countdown = 0; _step_edit_within_chord = 0; _step_edit_chord_duration = 0.0; + + boost::shared_ptr<Region> r = playlist()->top_region_at (step_edit_insert_position); - step_edit_region = playlist()->top_region_at (step_edit_insert_position); + if (r) { + step_edit_region = boost::dynamic_pointer_cast<MidiRegion>(r); + } if (step_edit_region) { RegionView* rv = view()->find_view (step_edit_region); @@ -962,6 +966,8 @@ MidiTimeAxisView::stop_step_editing () if (step_edit_region_view) { step_edit_region_view->hide_step_edit_cursor(); } + + step_edit_region.reset (); } void @@ -1006,6 +1012,14 @@ MidiTimeAxisView::step_add_program_change (uint8_t channel, uint8_t program) return 0; } +void +MidiTimeAxisView::step_edit_sustain (Evoral::MusicalTime beats) +{ + if (step_edit_region_view) { + step_edit_region_view->step_sustain (beats); + } +} + int MidiTimeAxisView::step_add_note (uint8_t channel, uint8_t pitch, uint8_t velocity, Evoral::MusicalTime beat_duration) { @@ -1144,7 +1158,7 @@ MidiTimeAxisView::step_edit_bar_sync () step_edit_region_view->move_step_edit_cursor (step_edit_beat_pos); } -boost::shared_ptr<Region> +boost::shared_ptr<MidiRegion> MidiTimeAxisView::add_region (framepos_t pos) { Editor* real_editor = dynamic_cast<Editor*> (&_editor); @@ -1172,7 +1186,7 @@ MidiTimeAxisView::add_region (framepos_t pos) real_editor->commit_reversible_command(); - return region; + return boost::dynamic_pointer_cast<MidiRegion>(region); } void |