reset DiskReader "no disk output" flag in a couple of exceptional cases
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 27 Jul 2017 21:27:49 +0000 (17:27 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 18 Sep 2017 15:40:53 +0000 (11:40 -0400)
libs/ardour/session_process.cc
libs/ardour/session_transport.cc

index fa5d16632da170cf574c04fc2ab5f03971c49f9e..b642a0bb0d38a49aa2a1af6d3f0cc13fcb40df88 100644 (file)
@@ -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
index ca607969472ab928d17bcaf72ce2538f21575405..07369fff67078358bcb68e3f67fdcf4056ad7936 100644 (file)
@@ -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));