aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina/SMFDriver.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-18 02:11:51 +0000
committerDavid Robillard <d@drobilla.net>2007-03-18 02:11:51 +0000
commit47f59aaad7a5ab8c189905544a761940ae9f8509 (patch)
tree67b6ec9ad915de327cda5007c8c1708a1e256c87 /src/engine/machina/SMFDriver.hpp
parenta716b2c0571f5bdcd817835cecb30cb7a4c745e0 (diff)
downloadmachina-47f59aaad7a5ab8c189905544a761940ae9f8509.tar.gz
machina-47f59aaad7a5ab8c189905544a761940ae9f8509.tar.bz2
machina-47f59aaad7a5ab8c189905544a761940ae9f8509.zip
Improved automata diagram drawing (include notes, use standard initial note notation).
Made compilation without Jack possible. git-svn-id: http://svn.drobilla.net/lad/machina@363 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina/SMFDriver.hpp')
-rw-r--r--src/engine/machina/SMFDriver.hpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/engine/machina/SMFDriver.hpp b/src/engine/machina/SMFDriver.hpp
index 3e74726..0d58db3 100644
--- a/src/engine/machina/SMFDriver.hpp
+++ b/src/engine/machina/SMFDriver.hpp
@@ -24,7 +24,7 @@
#include <raul/SMFWriter.h>
#include <raul/SMFReader.h>
#include "machina/types.hpp"
-#include "machina/MidiDriver.hpp"
+#include "machina/Driver.hpp"
namespace Machina {
@@ -32,15 +32,29 @@ class Node;
class Machine;
-class SMFDriver : public Raul::SMFWriter,
+class SMFDriver : public Driver,
public boost::enable_shared_from_this<SMFDriver> {
public:
+ SMFDriver(SharedPtr<Machine> machine = SharedPtr<Machine>());
+
SharedPtr<Machine> learn(const std::string& filename, Raul::BeatTime max_duration=0);
SharedPtr<Machine> learn(const std::string& filename, unsigned track, Raul::BeatTime max_duration=0);
void run(SharedPtr<Machine> machine, Raul::BeatTime max_time);
+
+ void write_event(Raul::BeatTime time,
+ size_t ev_size,
+ const unsigned char* ev) throw (std::logic_error)
+ { _writer->write_event(time, ev_size, ev); }
+
+ void set_bpm(double /*bpm*/) { }
+ void set_quantization(double /*quantization*/) { }
+
+ SharedPtr<Raul::SMFWriter> writer() { return _writer; }
private:
+ SharedPtr<Raul::SMFWriter> _writer;
+
void learn_track(SharedPtr<Machine> machine,
Raul::SMFReader& reader,
unsigned track,