fix merge conflicts with audioengine
[ardour.git] / libs / ardour / jack_slave.cc
index 9ef6eb8579ed21897a0ad7822846cd2c12e8e02a..4b2f3b18609dbfecf176dc808918624de64b2bba 100644 (file)
 #include <iostream>
 #include <cerrno>
 
-#include <jack/jack.h>
-#include <jack/transport.h>
-
+#include "ardour/audioengine.h"
 #include "ardour/slave.h"
-#include "ardour/session.h"
-
-#include "i18n.h"
 
 using namespace std;
 using namespace ARDOUR;
 
-JACK_Slave::JACK_Slave (jack_client_t* j)
-       : jack (j)
+JACK_Slave::JACK_Slave (AudioEngine& e)
+       : engine (e)
 {
        double x;
-       nframes64_t p;
+       framepos_t p;
        /* call this to initialize things */
        speed_and_position (x, p);
 }
@@ -44,12 +39,6 @@ JACK_Slave::~JACK_Slave ()
 {
 }
 
-void
-JACK_Slave::reset_client (jack_client_t* j)
-{
-       jack = j;
-}
-
 bool
 JACK_Slave::locked() const
 {
@@ -63,35 +52,28 @@ JACK_Slave::ok() const
 }
 
 bool
-JACK_Slave::speed_and_position (double& sp, nframes64_t& position)
+JACK_Slave::speed_and_position (double& sp, framepos_t& position)
 {
-       jack_position_t pos;
-       jack_transport_state_t state;
-
-       state = jack_transport_query (jack, &pos);
-
-       switch (state) {
-       case JackTransportStopped:
+       switch (engine.transport_state()) {
+       case TransportStopped:
                speed = 0;
                _starting = false;
                break;
-       case JackTransportRolling:
+       case TransportRolling:
                speed = 1.0;
                _starting = false;
                break;
-       case JackTransportLooping:
+       case TransportLooping:
                speed = 1.0;
                _starting = false;
                break;
-       case JackTransportStarting:
+       case TransportStarting:
                _starting = true;
                // don't adjust speed here, just leave it as it was
                break;
-       default:
-               cerr << "WARNING: Unknown JACK transport state: " << state << endl;
        }
 
        sp = speed;
-       position = pos.frame;
+       position = engine.transport_frame();
        return true;
 }