summaryrefslogtreecommitdiff
path: root/libs/ardour/engine_slave.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-10-21 16:24:24 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-10-21 16:24:24 -0400
commitcfe42bc4ea9a5a6234f43c173e14fdd89af39589 (patch)
tree9af6cd22c43c9e92523e48311499f8bca636f7a7 /libs/ardour/engine_slave.cc
parentf1a6735ca4f36b5291b472463b979df01300cbac (diff)
fix issues with recording while synced to JACK (non-pure-virtual method added to AudioBackend) and remove pause() from AudioEngine/AudioBackend APIs
Diffstat (limited to 'libs/ardour/engine_slave.cc')
-rw-r--r--libs/ardour/engine_slave.cc26
1 files changed, 7 insertions, 19 deletions
diff --git a/libs/ardour/engine_slave.cc b/libs/ardour/engine_slave.cc
index eb55c9ba54..849b7320d3 100644
--- a/libs/ardour/engine_slave.cc
+++ b/libs/ardour/engine_slave.cc
@@ -21,6 +21,7 @@
#include <cerrno>
#include "ardour/audioengine.h"
+#include "ardour/audio_backend.h"
#include "ardour/slave.h"
using namespace std;
@@ -54,26 +55,13 @@ Engine_Slave::ok() const
bool
Engine_Slave::speed_and_position (double& sp, framepos_t& position)
{
- switch (engine.transport_state()) {
- case TransportStopped:
- speed = 0;
- _starting = false;
- break;
- case TransportRolling:
- speed = 1.0;
- _starting = false;
- break;
- case TransportLooping:
- speed = 1.0;
+ boost::shared_ptr<AudioBackend> backend = engine.current_backend();
+
+ if (backend) {
+ _starting = backend->speed_and_position (sp, position);
+ } else {
_starting = false;
- break;
- case TransportStarting:
- _starting = true;
- // don't adjust speed here, just leave it as it was
- break;
}
-
- sp = speed;
- position = engine.transport_frame();
+
return true;
}