aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/JackDriver.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2013-01-11 21:07:26 +0000
committerDavid Robillard <d@drobilla.net>2013-01-11 21:07:26 +0000
commitbef1c2ea010da638ffbb437c37a6d32ddc99b568 (patch)
tree3c40f06df385e40edd512247eda23b1f650623df /src/engine/JackDriver.cpp
parentd88a8a0a01baff2c4038c315672c6c670361b82c (diff)
downloadmachina-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.cpp25
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