diff options
Diffstat (limited to 'gtk2_ardour/automation_streamview.cc')
-rw-r--r-- | gtk2_ardour/automation_streamview.cc | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gtk2_ardour/automation_streamview.cc b/gtk2_ardour/automation_streamview.cc index 006834c59d..146cdc7b89 100644 --- a/gtk2_ardour/automation_streamview.cc +++ b/gtk2_ardour/automation_streamview.cc @@ -237,14 +237,28 @@ AutomationStreamView::has_automation () const return false; } +/** Our parent AutomationTimeAxisView calls this when the user requests a particular + * InterpolationStyle; tell the AutomationLists in our regions. + */ void AutomationStreamView::set_interpolation (AutomationList::InterpolationStyle s) { - for (list<RegionView*>::iterator i = region_views.begin(); i != region_views.end(); ++i) { + for (list<RegionView*>::const_iterator i = region_views.begin(); i != region_views.end(); ++i) { AutomationRegionView* arv = dynamic_cast<AutomationRegionView*> (*i); assert (arv); - if (arv->line()) { - arv->line()->set_interpolation (s); - } + arv->line()->the_list()->set_interpolation (s); + } +} + +AutomationList::InterpolationStyle +AutomationStreamView::interpolation () const +{ + if (region_views.empty()) { + return AutomationList::Linear; } + + AutomationRegionView* v = dynamic_cast<AutomationRegionView*> (region_views.front()); + assert (v); + + return v->line()->the_list()->interpolation (); } |