aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine/machina/MidiAction.hpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-02-11 01:26:07 +0000
committerDavid Robillard <d@drobilla.net>2007-02-11 01:26:07 +0000
commitda3ac16cbfbf66edebe929f8d9bf7d76ab24dd74 (patch)
tree8371f2d2e46925df9337be9b578cfb74d671d285 /src/engine/machina/MidiAction.hpp
parentcee33ba4c0859b117be94df6ccbf3eb756a850af (diff)
downloadmachina-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.hpp22
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;