diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-21 16:24:24 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-21 16:24:24 -0400 |
commit | cfe42bc4ea9a5a6234f43c173e14fdd89af39589 (patch) | |
tree | 9af6cd22c43c9e92523e48311499f8bca636f7a7 /libs/ardour/engine_slave.cc | |
parent | f1a6735ca4f36b5291b472463b979df01300cbac (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.cc | 26 |
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; } |