#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/crossfade.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"
BUTLER THREAD
---------------------------------------------------------------------------*/
+void
+Session::adjust_playback_buffering ()
+{
+ request_stop (false, false);
+ SessionEvent *ev = new SessionEvent (SessionEvent::AdjustPlaybackBuffering, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
+ queue_event (ev);
+}
+
+void
+Session::adjust_capture_buffering ()
+{
+ request_stop (false, false);
+ SessionEvent *ev = new SessionEvent (SessionEvent::AdjustCaptureBuffering, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
+ queue_event (ev);
+}
+
+void
+Session::schedule_playback_buffering_adjustment ()
+{
+ add_post_transport_work (PostTransportAdjustPlaybackBuffering);
+ _butler->schedule_transport_work ();
+}
+
+void
+Session::schedule_capture_buffering_adjustment ()
+{
+ add_post_transport_work (PostTransportAdjustCaptureBuffering);
+ _butler->schedule_transport_work ();
+}
+
void
Session::schedule_curve_reallocation ()
{
}
void
-Session::request_overwrite_buffer (Diskstream* stream)
+Session::request_overwrite_buffer (Track* t)
{
SessionEvent *ev = new SessionEvent (SessionEvent::Overwrite, SessionEvent::Add, SessionEvent::Immediate, 0, 0, 0.0);
- ev->set_ptr (stream);
+ 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<DiskstreamList> dsl = diskstreams.reader();
- for (DiskstreamList::iterator i = dsl->begin(); i != dsl->end(); ++i) {
- (*i)->set_pending_overwrite (true);
+ boost::shared_ptr<RouteList> rl = routes.reader();
+ for (RouteList::iterator i = rl->begin(); i != rl->end(); ++i) {
+ boost::shared_ptr<Track> tr = boost::dynamic_pointer_cast<Track> (*i);
+ if (tr) {
+ tr->set_pending_overwrite (true);
+ }
}
}
{
return (uint32_t) g_atomic_int_get (&_capture_load);
}
-
-uint32_t
-Session::playback_load_min ()
-{
- return (uint32_t) g_atomic_int_get (&_playback_load_min);
-}
-
-uint32_t
-Session::capture_load_min ()
-{
- return (uint32_t) g_atomic_int_get (&_capture_load_min);
-}
-
-void
-Session::reset_capture_load_min ()
-{
- g_atomic_int_set (&_capture_load_min, 100);
-}
-
-void
-Session::reset_playback_load_min ()
-{
- g_atomic_int_set (&_playback_load_min, 100);
-}
-