From bef1c2ea010da638ffbb437c37a6d32ddc99b568 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 11 Jan 2013 21:07:26 +0000 Subject: Bring Machina back into the fold (fix #844). git-svn-id: http://svn.drobilla.net/lad/trunk/machina@4921 a436a847-0d15-0410-975c-d299462d15a1 --- src/engine/JackDriver.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/engine/JackDriver.cpp') 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) - : Driver(machine) +JackDriver::JackDriver(Raul::Forge& forge, SharedPtr 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(new Machine( - TimeUnit::frames(jack_get_sample_rate(jack_client())))); + _machine = SharedPtr( + new Machine(_forge, + TimeUnit::frames(jack_get_sample_rate(jack_client())))); _machine->activate(); } @@ -162,7 +163,7 @@ JackDriver::set_machine(SharedPtr machine) } void -JackDriver::process_input(SharedPtr machine, const TimeSlice& time) +JackDriver::process_input(SharedPtr 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, 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(new Recorder(1024, _beats_unit, _quantization.get(), step)); + _recorder = SharedPtr(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 = _recorder->finish(); _recorder.reset(); machine->activate(); - _machine->nodes().append(machine->nodes()); + _machine->nodes().insert(_machine->nodes().end(), + machine->nodes().begin(), + machine->nodes().end()); } int -- cgit v1.2.1