diff options
author | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-13 07:49:49 +0000 |
commit | 67a8adbc93991acfb688f378f52392995a272fac (patch) | |
tree | a4e629bd9c0d7da4cc5c7cb644b3352ca6f0dc78 /src/engine/JackDriver.hpp | |
parent | 33aa54fa98783d1da2a322ee136c17df7f9c98a5 (diff) | |
download | machina-67a8adbc93991acfb688f378f52392995a272fac.tar.gz machina-67a8adbc93991acfb688f378f52392995a272fac.tar.bz2 machina-67a8adbc93991acfb688f378f52392995a272fac.zip |
Change model to have a single initial node.
Merge multiple recording into branches off the same initial node.
Make transport state sane with 3 distinct states.
Handle announcing objects several times correctly.
Don't send useless zero coordinates for new nodes, position in visible area.
Rewrite and clean up Machine code.
Update help.
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4954 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/JackDriver.hpp')
-rw-r--r-- | src/engine/JackDriver.hpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/engine/JackDriver.hpp b/src/engine/JackDriver.hpp index 3045165..14e84ec 100644 --- a/src/engine/JackDriver.hpp +++ b/src/engine/JackDriver.hpp @@ -43,8 +43,7 @@ class Node; * "Ticks" are individual frames when running under this driver, and all code * in the processing context must be realtime safe (non-blocking). */ -class JackDriver - : public machina::Driver +class JackDriver : public machina::Driver { public: JackDriver(Raul::Forge& forge, @@ -66,11 +65,7 @@ public: void set_bpm(double bpm) { _bpm.set(bpm); } void set_quantization(double q) { _quantization.set(q); } - void stop(); - - bool recording() { return _recording.load(); } - void start_record(bool step); - void finish_record(); + void set_play_state(PlayState state); void start_transport() { jack_transport_start(_client); } void stop_transport() { jack_transport_stop(_client); } @@ -100,6 +95,9 @@ private: static int jack_process_cb(jack_nframes_t nframes, void* me); static void jack_shutdown_cb(void* me); + void start_record(bool step); + void finish_record(); + void on_process(jack_nframes_t nframes); jack_client_t* _client; @@ -122,7 +120,6 @@ private: bool _stop_flag; Raul::TimeDuration _record_dur; - std::atomic<bool> _recording; SPtr<Recorder> _recorder; bool _is_activated; }; |