aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina/JackDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-31 05:28:01 +0000
committerDavid Robillard <d@drobilla.net>2007-03-31 05:28:01 +0000
commitf8883a56e44a42e97ca84392fdbff61e11540fcd (patch)
tree745eef6b5685b9f668c48b36ae6c761bee49b271 /src/engine/machina/JackDriver.hpp
parentdd6be02a7478225f19f02432919b64b96b733172 (diff)
downloadmachina-f8883a56e44a42e97ca84392fdbff61e11540fcd.tar.gz
machina-f8883a56e44a42e97ca84392fdbff61e11540fcd.tar.bz2
machina-f8883a56e44a42e97ca84392fdbff61e11540fcd.zip
Realtime MIDI recording.
git-svn-id: http://svn.drobilla.net/lad/machina@383 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina/JackDriver.hpp')
-rw-r--r--src/engine/machina/JackDriver.hpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/engine/machina/JackDriver.hpp b/src/engine/machina/JackDriver.hpp
index a048c0c..47b718d 100644
--- a/src/engine/machina/JackDriver.hpp
+++ b/src/engine/machina/JackDriver.hpp
@@ -22,11 +22,12 @@
#include <raul/JackDriver.h>
#include <raul/SharedPtr.h>
#include <raul/DoubleBuffer.h>
+#include <raul/MIDIRingBuffer.h>
#include <raul/Semaphore.h>
#include <jack/midiport.h>
#include "Machine.hpp"
#include "Driver.hpp"
-
+#include "Recorder.hpp"
namespace Machina {
@@ -61,6 +62,10 @@ public:
void set_bpm(double bpm) { _bpm.set(bpm); }
void set_quantization(double quantization) { _quantization.set(quantization); }
+ bool recording() { return _recording.get(); }
+ void start_record();
+ void finish_record();
+
private:
void process_input(SharedPtr<Machine> machine,
const Raul::TimeSlice& time);
@@ -76,6 +81,10 @@ private:
Raul::DoubleBuffer<double> _bpm;
Raul::DoubleBuffer<double> _quantization;
+
+ Raul::TickTime _record_time;
+ Raul::AtomicInt _recording;
+ SharedPtr<Recorder> _recorder;
};