X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fsession_butler.cc;h=1aa061313d00fe4e72c3668c3b96c7a8ebbc79e9;hb=8f59346592b8232e910ce0bbdc247cf8cecde4dd;hp=0ffc14ff3a9bc9fff17bc63316c9601661cb361c;hpb=ff122d0fe8fde6a8a4edc71f9dbba5d161036300;p=ardour.git diff --git a/libs/ardour/session_butler.cc b/libs/ardour/session_butler.cc index 0ffc14ff3a..1aa061313d 100644 --- a/libs/ardour/session_butler.cc +++ b/libs/ardour/session_butler.cc @@ -40,6 +40,7 @@ #include "ardour/midi_diskstream.h" #include "ardour/session.h" #include "ardour/timestamps.h" +#include "ardour/track.h" #include "i18n.h" @@ -73,30 +74,33 @@ Session::schedule_curve_reallocation () } void -Session::request_overwrite_buffer (Diskstream* stream) +Session::request_overwrite_buffer (Track* t) { - Event *ev = new Event (Event::Overwrite, Event::Add, Event::Immediate, 0, 0, 0.0); - ev->set_ptr (stream); + SessionEvent *ev = new SessionEvent (SessionEvent::Overwrite, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0); + ev->set_ptr (t); queue_event (ev); } /** Process thread. */ void -Session::overwrite_some_buffers (Diskstream* ds) +Session::overwrite_some_buffers (Track* t) { if (actively_recording()) { return; } - if (ds) { + if (t) { - ds->set_pending_overwrite (true); + t->set_pending_overwrite (true); } else { - boost::shared_ptr dsl = diskstreams.reader(); - for (DiskstreamList::iterator i = dsl->begin(); i != dsl->end(); ++i) { - (*i)->set_pending_overwrite (true); + boost::shared_ptr rl = routes.reader(); + for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) { + boost::shared_ptr tr = boost::dynamic_pointer_cast (*i); + if (tr) { + tr->set_pending_overwrite (true); + } } }