diff options
author | David Robillard <d@drobilla.net> | 2013-01-11 21:07:26 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2013-01-11 21:07:26 +0000 |
commit | bef1c2ea010da638ffbb437c37a6d32ddc99b568 (patch) | |
tree | 3c40f06df385e40edd512247eda23b1f650623df /src/engine/JackDriver.cpp | |
parent | d88a8a0a01baff2c4038c315672c6c670361b82c (diff) | |
download | machina-bef1c2ea010da638ffbb437c37a6d32ddc99b568.tar.gz machina-bef1c2ea010da638ffbb437c37a6d32ddc99b568.tar.bz2 machina-bef1c2ea010da638ffbb437c37a6d32ddc99b568.zip |
Bring Machina back into the fold (fix #844).
git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4921 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/JackDriver.cpp')
-rw-r--r-- | src/engine/JackDriver.cpp | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/engine/JackDriver.cpp b/src/engine/JackDriver.cpp index 2775dcc..bcde9ef 100644 --- a/src/engine/JackDriver.cpp +++ b/src/engine/JackDriver.cpp @@ -27,13 +27,13 @@ #include "MidiAction.hpp" #include "jack_compat.h" -using namespace Raul; +using namespace Machina; using namespace std; namespace Machina { -JackDriver::JackDriver(SharedPtr<Machine> machine) - : Driver(machine) +JackDriver::JackDriver(Raul::Forge& forge, SharedPtr<Machine> machine) + : Driver(forge, machine) , _client(NULL) , _machine_changed(0) , _input_port(NULL) @@ -96,8 +96,9 @@ JackDriver::attach(const std::string& client_name) std::cerr << "WARNING: Failed to create MIDI output port." << std::endl; if (!_machine) - _machine = SharedPtr<Machine>(new Machine( - TimeUnit::frames(jack_get_sample_rate(jack_client())))); + _machine = SharedPtr<Machine>( + new Machine(_forge, + TimeUnit::frames(jack_get_sample_rate(jack_client())))); _machine->activate(); } @@ -162,7 +163,7 @@ JackDriver::set_machine(SharedPtr<Machine> machine) } void -JackDriver::process_input(SharedPtr<Machine> machine, const TimeSlice& time) +JackDriver::process_input(SharedPtr<Machine> machine, const Raul::TimeSlice& time) { // We only actually read Jack input at the beginning of a cycle //assert(time.offset_ticks().is_zero()); @@ -222,13 +223,13 @@ JackDriver::process_input(SharedPtr<Machine> machine, const TimeSlice& time) const uint64_t id = Stateful::next_id(); write_set(_updates, id, URIs::instance().rdf_type, - URIs::instance().machina_MidiAction_atom); + _forge.make_urid(URIs::instance().machina_MidiAction)); write_set(_updates, learn->node()->id(), URIs::instance().machina_enter_action, - Raul::Atom((int32_t)id)); + _forge.make((int32_t)id)); write_set(_updates, id, URIs::instance().machina_note_number, - Raul::Atom((int32_t)ev.buffer[1])); + _forge.make((int32_t)ev.buffer[1])); machine->clear_pending_learn(); } @@ -386,7 +387,7 @@ void JackDriver::start_record(bool step) { // FIXME: Choose an appropriate maximum ringbuffer size - _recorder = SharedPtr<Recorder>(new Recorder(1024, _beats_unit, _quantization.get(), step)); + _recorder = SharedPtr<Recorder>(new Recorder(_forge, 1024, _beats_unit, _quantization.get(), step)); _recorder->start(); _record_dur = 0; _recording = true; @@ -399,7 +400,9 @@ JackDriver::finish_record() SharedPtr<Machine> machine = _recorder->finish(); _recorder.reset(); machine->activate(); - _machine->nodes().append(machine->nodes()); + _machine->nodes().insert(_machine->nodes().end(), + machine->nodes().begin(), + machine->nodes().end()); } int |