diff options
author | David Robillard <d@drobilla.net> | 2007-02-10 03:39:10 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-02-10 03:39:10 +0000 |
commit | b924ead0db7c09ee50d2d4eee487b844c5fb867b (patch) | |
tree | 36fa1a6c879989a111f4fbbaf9a03b7f442b618c /src/engine/JackDriver.cpp | |
parent | 9f2a520a8f20661385bf6c9f7447aef1227d8696 (diff) | |
download | machina-b924ead0db7c09ee50d2d4eee487b844c5fb867b.tar.gz machina-b924ead0db7c09ee50d2d4eee487b844c5fb867b.tar.bz2 machina-b924ead0db7c09ee50d2d4eee487b844c5fb867b.zip |
Machine GUI talking to Jack engine, running machines made in GUI, etc.
git-svn-id: http://svn.drobilla.net/lad/machina@297 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/JackDriver.cpp')
-rw-r--r-- | src/engine/JackDriver.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/engine/JackDriver.cpp b/src/engine/JackDriver.cpp index 848c3d7..f6f0ea6 100644 --- a/src/engine/JackDriver.cpp +++ b/src/engine/JackDriver.cpp @@ -33,7 +33,7 @@ JackDriver::JackDriver() void JackDriver::attach(const std::string& client_name) { - Raul::JackDriver::attach(client_name); + Raul::JackDriver::attach(client_name, "debug"); if (jack_client()) { _output_port = jack_port_register(jack_client(), @@ -57,6 +57,8 @@ JackDriver::detach() Timestamp JackDriver::stamp_to_offset(Timestamp stamp) { + assert(stamp >= _current_cycle_start); + Timestamp ret = stamp - _current_cycle_start + _current_cycle_offset; assert(ret < _current_cycle_offset + _current_cycle_nframes); return ret; @@ -77,6 +79,11 @@ JackDriver::on_process(jack_nframes_t nframes) bool machine_done = ! _machine->run(_current_cycle_nframes); + if (machine_done && _machine->time() == 0) { + _machine->reset(); + return; + } + if (!machine_done) { _current_cycle_start += _current_cycle_nframes; break; |