summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-07-20 16:45:14 +0200
committerRobin Gareus <robin@gareus.org>2017-07-20 16:45:24 +0200
commitadc2c756e61fb0051b53c39fe78d115493d81a47 (patch)
treef5791b4f0633dc721fbc5ff2c0209de262fd2947 /libs/ardour
parent40e2f9a68ab15b5accd1cd992c07d906d7d9b637 (diff)
Allow adding tracks w/o running backend
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/port.cc4
-rw-r--r--libs/ardour/route.cc4
-rw-r--r--libs/ardour/session.cc3
3 files changed, 6 insertions, 5 deletions
diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc
index e8e6b75529..b3311932af 100644
--- a/libs/ardour/port.cc
+++ b/libs/ardour/port.cc
@@ -70,7 +70,9 @@ Port::Port (std::string const & n, DataType t, PortFlags f)
assert (_name.find_first_of (':') == std::string::npos);
- if ((_port_handle = port_engine.register_port (_name, t, _flags)) == 0) {
+ if (!port_engine.available ()) {
+ _port_handle = 0; // created during ::reestablish() later
+ } else if ((_port_handle = port_engine.register_port (_name, t, _flags)) == 0) {
cerr << "Failed to register port \"" << _name << "\", reason is unknown from here\n";
throw failed_constructor ();
}
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index acd5149e3b..22d9713486 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -926,10 +926,6 @@ Route::add_processors (const ProcessorList& others, boost::shared_ptr<Processor>
loc = _processors.end ();
}
- if (!AudioEngine::instance()->connected()) {
- return 1;
- }
-
if (others.empty()) {
return 0;
}
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 0463794d84..04c8770a78 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -6826,6 +6826,9 @@ Session::update_latency (bool playback)
if ((_state_of_the_state & (InitialConnecting|Deletion)) || _adding_routes_in_progress || _route_deletion_in_progress) {
return;
}
+ if (!_engine.running()) {
+ return;
+ }
boost::shared_ptr<RouteList> r = routes.reader ();
framecnt_t max_latency = 0;