Towards fixing AU preset invalidation
[ardour.git] / libs / ardour / session_butler.cc
index 3e7c2226ccb4d9c56b5cbf9e78e742b365f98291..262444c4358cab5fd7b8eec23787df64240d4687 100644 (file)
 #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
  ---------------------------------------------------------------------------*/
@@ -90,10 +76,15 @@ Session::schedule_curve_reallocation ()
 }
 
 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);
 }