summaryrefslogtreecommitdiff
path: root/libs/ardour/session_butler.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-06-09 17:24:07 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-06-09 17:24:07 +0000
commit14004b75a6d18a74fa59ac06c203af693164b774 (patch)
tree1d0d3f416a7c1c1a8d8edd8ff630d87e2b276498 /libs/ardour/session_butler.cc
parent01829e63382ebab3d54b02fffbad11de7cf69ea6 (diff)
dynamic playback & capture buffer resizing (though transport is stopped first)
git-svn-id: svn://localhost/ardour2/branches/3.0@7250 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/session_butler.cc')
-rw-r--r--libs/ardour/session_butler.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/libs/ardour/session_butler.cc b/libs/ardour/session_butler.cc
index 7cbbd194ae..c92c0604c7 100644
--- a/libs/ardour/session_butler.cc
+++ b/libs/ardour/session_butler.cc
@@ -67,6 +67,36 @@ static inline uint32_t next_power_of_two (uint32_t n)
---------------------------------------------------------------------------*/
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 ()
{
add_post_transport_work (PostTransportCurveRealloc);