*/
-#include <algorithm>
-#include <string>
-#include <cmath>
-#include <cerrno>
-#include <unistd.h>
-#include <fcntl.h>
-#include <poll.h>
-
-#include <glibmm/thread.h>
-
#include "pbd/error.h"
#include "pbd/pthread_utils.h"
#include "pbd/stacktrace.h"
-#include "ardour/audio_diskstream.h"
-#include "ardour/audioengine.h"
#include "ardour/butler.h"
-#include "ardour/configuration.h"
-#include "ardour/io.h"
-#include "ardour/midi_diskstream.h"
+#include "ardour/route.h"
#include "ardour/session.h"
-#include "ardour/timestamps.h"
+#include "ardour/session_event.h"
#include "ardour/track.h"
+#include "ardour/types.h"
-#include "i18n.h"
+#include "pbd/i18n.h"
using namespace std;
using namespace ARDOUR;
using namespace PBD;
-/* XXX put this in the right place */
-
-static inline uint32_t next_power_of_two (uint32_t n)
-{
- --n;
- n |= n >> 16;
- n |= n >> 8;
- n |= n >> 4;
- n |= n >> 2;
- n |= n >> 1;
- ++n;
- return n;
-}
-
/*---------------------------------------------------------------------------
BUTLER THREAD
---------------------------------------------------------------------------*/
}
void
-Session::request_overwrite_buffer (Track* t)
+Session::request_overwrite_buffer (boost::shared_ptr<Route> r)
{
+ boost::shared_ptr<Track> t = boost::dynamic_pointer_cast<Track> (r);
+ if (!t) {
+ return;
+ }
+
SessionEvent *ev = new SessionEvent (SessionEvent::Overwrite, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
- ev->set_ptr (t);
+ ev->set_ptr (t.get());
queue_event (ev);
}