summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_time_axis.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-08-13 14:11:01 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-08-13 14:11:01 +0000
commitaac46a38fbd3b979dd1d352a4d1454ac8a70793f (patch)
tree824b9b41eee1b4f630a6444e0de36396908cf76c /gtk2_ardour/midi_time_axis.cc
parent3364fda3decc12360bd15faa9210ede0a47ba1fc (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.cc20
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