summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-02-13 01:56:33 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-02-13 01:56:33 +0000
commit22a407fb6b4dac1c88bf757832998c6d8ed8f6f2 (patch)
tree5cf381e22b773318866d98a5716277f2759e9966 /libs/ardour/route.cc
parentea41f0f37b709f6d5e0b8fe66dd1335f9a8a0b2f (diff)
allow ardour to use the (hard) maximum number of open files (this one's for you essej)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3044 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 95571bd3da..0ff6a02799 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -2194,7 +2194,7 @@ Route::handle_transport_stopped (bool abort_ignored, bool did_locate, bool can_f
Glib::RWLock::ReaderLock lm (redirect_lock);
if (!did_locate) {
- automation_snapshot (now);
+ automation_snapshot (now, true);
}
for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) {
@@ -2301,7 +2301,7 @@ Route::roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame, nfra
if (lm.locked()) {
// automation snapshot can also be called from the non-rt context
// and it uses the redirect list, so we take the lock out here
- automation_snapshot (_session.transport_frame());
+ automation_snapshot (_session.transport_frame(), false);
}
}
@@ -2442,12 +2442,16 @@ Route::set_latency_delay (nframes_t longest_session_latency)
}
void
-Route::automation_snapshot (nframes_t now)
+Route::automation_snapshot (nframes_t now, bool force)
{
- IO::automation_snapshot (now);
+ if (!force && !should_snapshot(now)) {
+ return;
+ }
+
+ IO::automation_snapshot (now, force);
for (RedirectList::iterator i = _redirects.begin(); i != _redirects.end(); ++i) {
- (*i)->automation_snapshot (now);
+ (*i)->automation_snapshot (now, force);
}
}