+
+ return lines;
+}
+
+bool
+AutomationStreamView::paste (samplepos_t pos,
+ unsigned paste_count,
+ float times,
+ boost::shared_ptr<ARDOUR::AutomationList> alist)
+{
+ /* XXX: not sure how best to pick this; for now, just use the last region which starts before pos */
+
+ if (region_views.empty()) {
+ return false;
+ }
+
+ region_views.sort (RegionView::PositionOrder());
+
+ list<RegionView*>::const_iterator prev = region_views.begin ();
+
+ for (list<RegionView*>::const_iterator i = region_views.begin(); i != region_views.end(); ++i) {
+ if ((*i)->region()->position() > pos) {
+ break;
+ }
+ prev = i;
+ }
+
+ boost::shared_ptr<Region> r = (*prev)->region ();
+
+ /* If *prev doesn't cover pos, it's no good */
+ if (r->position() > pos || ((r->position() + r->length()) < pos)) {
+ return false;
+ }
+
+ AutomationRegionView* arv = dynamic_cast<AutomationRegionView*> (*prev);
+ return arv ? arv->paste(pos, paste_count, times, alist) : false;