diff options
author | David Robillard <d@drobilla.net> | 2007-02-11 01:26:07 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-02-11 01:26:07 +0000 |
commit | da3ac16cbfbf66edebe929f8d9bf7d76ab24dd74 (patch) | |
tree | 8371f2d2e46925df9337be9b578cfb74d671d285 /src/engine/machina/MidiAction.hpp | |
parent | cee33ba4c0859b117be94df6ccbf3eb756a850af (diff) | |
download | machina-da3ac16cbfbf66edebe929f8d9bf7d76ab24dd74.tar.gz machina-da3ac16cbfbf66edebe929f8d9bf7d76ab24dd74.tar.bz2 machina-da3ac16cbfbf66edebe929f8d9bf7d76ab24dd74.zip |
Moved Maid from Ingen to Raul.
Working machina MIDI learn, fixes, etc, etc.
git-svn-id: http://svn.drobilla.net/lad/machina@302 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/machina/MidiAction.hpp')
-rw-r--r-- | src/engine/machina/MidiAction.hpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/engine/machina/MidiAction.hpp b/src/engine/machina/MidiAction.hpp index d362a63..7dff692 100644 --- a/src/engine/machina/MidiAction.hpp +++ b/src/engine/machina/MidiAction.hpp @@ -18,6 +18,7 @@ #ifndef MACHINA_MIDIACTION_HPP #define MACHINA_MIDIACTION_HPP +#include <raul/Maid.h> #include <raul/WeakPtr.h> #include <raul/AtomicPtr.h> #include "types.hpp" @@ -30,18 +31,29 @@ class MidiDriver; class MidiAction : public Action { public: - MidiAction(WeakPtr<MidiDriver> driver, - size_t size, - const unsigned char* event); - ~MidiAction(); + + static SharedPtr<MidiAction> + create(SharedPtr<Raul::Maid> maid, + size_t size, const unsigned char* event) + { + SharedPtr<MidiAction> ret(new MidiAction(size, event)); + maid->manage(ret); + return ret; + } + + static void set_driver(SharedPtr<MidiDriver> driver); bool set_event(size_t size, const byte* event); void execute(Timestamp time); private: - WeakPtr<MidiDriver> _driver; + MidiAction(size_t size, + const unsigned char* event); + + static WeakPtr<MidiDriver> _driver; + size_t _size; const size_t _max_size; Raul::AtomicPtr<byte> _event; |