summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-07-20 17:53:56 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2017-09-18 11:40:53 -0400
commit66c5fe41ee937f2e8b85a4a655aa4d3e6e6fee5b (patch)
treecd3d5c9cab7c08f4e70ffe06b8caac029a067871 /libs/ardour/session_process.cc
parent144f95c3056bb62d3f2445b7746eebce7c0e1ad5 (diff)
framework for silent-roll-while-slave-syncing
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc42
1 files changed, 5 insertions, 37 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 19a6b64720..9229372b43 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -32,6 +32,7 @@
#include "ardour/butler.h"
#include "ardour/cycle_timer.h"
#include "ardour/debug.h"
+#include "ardour/disk_reader.h"
#include "ardour/graph.h"
#include "ardour/port.h"
#include "ardour/process_thread.h"
@@ -235,43 +236,10 @@ Session::process_routes (pframes_t nframes, bool& need_butler)
int
Session::silent_process_routes (pframes_t nframes, bool& need_butler)
{
- boost::shared_ptr<RouteList> r = routes.reader ();
-
- const framepos_t start_frame = _transport_frame;
- const framepos_t end_frame = _transport_frame + lrintf(nframes * _transport_speed);
-
- VCAList v = _vca_manager->vcas ();
- for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) {
- (*i)->automation_run (start_frame, nframes);
- }
-
- _global_locate_pending = locate_pending();
-
- if (_process_graph) {
- _process_graph->silent_process_routes (nframes, start_frame, end_frame, need_butler);
- } else {
- for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
-
- int ret;
-
- if ((*i)->is_auditioner()) {
- continue;
- }
-
- bool b = false;
-
- if ((ret = (*i)->silent_roll (nframes, start_frame, end_frame, b)) < 0) {
- stop_transport ();
- return -1;
- }
-
- if (b) {
- need_butler = true;
- }
- }
- }
-
- return 0;
+ DiskReader::set_no_disk_output (true);
+ int ret = process_routes (nframes, need_butler);
+ DiskReader::set_no_disk_output (false);
+ return ret;
}
void