summaryrefslogtreecommitdiffstats
path: root/src/server/JackDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-11-16 04:26:45 +0000
committerDavid Robillard <d@drobilla.net>2012-11-16 04:26:45 +0000
commite5943aa05fd46771f1ff7009c8971f1294c9d791 (patch)
tree828fb9156f373149883a81dd0638991b0b9ba851 /src/server/JackDriver.hpp
parentefd2fb1315413bb456cf5a7dc9a61513e15c8035 (diff)
downloadingen-e5943aa05fd46771f1ff7009c8971f1294c9d791.tar.gz
ingen-e5943aa05fd46771f1ff7009c8971f1294c9d791.tar.bz2
ingen-e5943aa05fd46771f1ff7009c8971f1294c9d791.zip
Add time internal that sends Jack transport updates as LV2 time positions.
git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4819 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/server/JackDriver.hpp')
-rw-r--r--src/server/JackDriver.hpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/JackDriver.hpp b/src/server/JackDriver.hpp
index 8ea84fd6..0369be05 100644
--- a/src/server/JackDriver.hpp
+++ b/src/server/JackDriver.hpp
@@ -30,6 +30,8 @@
#include "raul/AtomicInt.hpp"
#include "raul/Semaphore.hpp"
+#include "lv2/lv2plug.in/ns/ext/atom/forge.h"
+
#include "Driver.hpp"
#include "EnginePort.hpp"
@@ -81,6 +83,9 @@ public:
inline const jack_position_t* position() { return &_position; }
inline jack_transport_state_t transport_state() { return _transport_state; }
+ void append_time_events(ProcessContext& context,
+ Buffer& buffer);
+
bool is_realtime() const { return jack_is_realtime(_client); }
jack_client_t* jack_client() const { return _client; }
@@ -130,6 +135,7 @@ protected:
Engine& _engine;
Ports _ports;
+ LV2_Atom_Forge _forge;
Raul::Semaphore _sem;
Raul::AtomicInt _flag;
jack_client_t* _client;
@@ -139,6 +145,9 @@ protected:
bool _is_activated;
jack_position_t _position;
jack_transport_state_t _transport_state;
+ float _old_bpm;
+ jack_nframes_t _old_frame;
+ bool _old_rolling;
};
} // namespace Server