aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/JackDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-13 07:49:49 +0000
committerDavid Robillard <d@drobilla.net>2013-01-13 07:49:49 +0000
commit67a8adbc93991acfb688f378f52392995a272fac (patch)
treea4e629bd9c0d7da4cc5c7cb644b3352ca6f0dc78 /src/engine/JackDriver.hpp
parent33aa54fa98783d1da2a322ee136c17df7f9c98a5 (diff)
downloadmachina-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.hpp13
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;
};