diff options
author | David Robillard <d@drobilla.net> | 2007-03-18 02:11:51 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-03-18 02:11:51 +0000 |
commit | 47f59aaad7a5ab8c189905544a761940ae9f8509 (patch) | |
tree | 67b6ec9ad915de327cda5007c8c1708a1e256c87 /src/engine/machina/SMFDriver.hpp | |
parent | a716b2c0571f5bdcd817835cecb30cb7a4c745e0 (diff) | |
download | machina-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.hpp | 18 |
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, |