summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/session_process.cc1
-rw-r--r--libs/ardour/session_transport.cc7
2 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index fa5d16632d..b642a0bb0d 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -529,6 +529,7 @@ Session::reset_slave_state ()
delta_accumulator_cnt = 0;
have_first_delta_accumulator = false;
_slave_state = Stopped;
+ DiskReader::set_no_disk_output (false);
}
bool
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index ca60796947..07369fff67 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -41,6 +41,7 @@
#include "ardour/butler.h"
#include "ardour/click.h"
#include "ardour/debug.h"
+#include "ardour/disk_reader.h"
#include "ardour/location.h"
#include "ardour/profile.h"
#include "ardour/scene_changer.h"
@@ -1831,6 +1832,12 @@ Session::use_sync_source (Slave* new_slave)
delete _slave;
_slave = new_slave;
+
+ /* slave change, reset any DiskIO block on disk output because it is no
+ longer valid with a new slave.
+ */
+ DiskReader::set_no_disk_output (false);
+
MTC_Slave* mtc_slave = dynamic_cast<MTC_Slave*>(_slave);
if (mtc_slave) {
mtc_slave->ActiveChanged.connect_same_thread (mtc_status_connection, boost::bind (&Session::mtc_status_changed, this, _1));