projects
/
ardour.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
set sidechain port pretty name
[ardour.git]
/
libs
/
ardour
/
engine_slave.cc
diff --git
a/libs/ardour/engine_slave.cc
b/libs/ardour/engine_slave.cc
index eb55c9ba540dc51e1a445d20723e6e5f5a550f62..8b7c3ba510512bf7eb8a031672d28a285ec971a6 100644
(file)
--- a/
libs/ardour/engine_slave.cc
+++ b/
libs/ardour/engine_slave.cc
@@
-21,6
+21,7
@@
#include <cerrno>
#include "ardour/audioengine.h"
#include <cerrno>
#include "ardour/audioengine.h"
+#include "ardour/audio_backend.h"
#include "ardour/slave.h"
using namespace std;
#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)
{
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;
_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;
}
return true;
}