diff options
Diffstat (limited to 'src/engine/JackDriver.cpp')
-rw-r--r-- | src/engine/JackDriver.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/engine/JackDriver.cpp b/src/engine/JackDriver.cpp index 1056820..a52cd91 100644 --- a/src/engine/JackDriver.cpp +++ b/src/engine/JackDriver.cpp @@ -25,13 +25,16 @@ using namespace Raul; namespace Machina { -JackDriver::JackDriver() - : _input_port(NULL) +JackDriver::JackDriver(SharedPtr<Machine> machine) + : _machine(machine) + , _input_port(NULL) , _output_port(NULL) , _cycle_time(1/48000.0, 120.0) , _bpm(120.0) , _quantization(120.0) { + if (!_machine) + _machine = SharedPtr<Machine>(new Machine()); } @@ -59,6 +62,8 @@ JackDriver::attach(const std::string& client_name) if (!_output_port) std::cerr << "WARNING: Failed to create MIDI output port." << std::endl; + + _machine->activate(); } } @@ -66,6 +71,8 @@ JackDriver::attach(const std::string& client_name) void JackDriver::detach() { + _machine->deactivate(); + if (_input_port) { jack_port_unregister(jack_client(), _input_port); _input_port = NULL; |