diff options
Diffstat (limited to 'src/engine/machina/Machine.hpp')
-rw-r--r-- | src/engine/machina/Machine.hpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/engine/machina/Machine.hpp b/src/engine/machina/Machine.hpp index 4544090..5c4df36 100644 --- a/src/engine/machina/Machine.hpp +++ b/src/engine/machina/Machine.hpp @@ -18,6 +18,7 @@ #ifndef MACHINA_MACHINE_HPP #define MACHINA_MACHINE_HPP +#include <vector> #include <boost/utility.hpp> #include <raul/SharedPtr.hpp> #include <raul/WeakPtr.hpp> @@ -37,7 +38,11 @@ class Machine : public Raul::Stateful { public: Machine(); Machine(const Machine& copy); - ~Machine(); + + Machine& operator=(const Machine& other); + + // Kluge to appease Eugene + bool operator==(const Machine& other) { return false; } // Main context void activate() { _is_activated = true; } @@ -64,7 +69,8 @@ public: void clear_pending_learn() { _pending_learn.reset(); } typedef Raul::List< SharedPtr<Node> > Nodes; - Nodes& nodes() { return _nodes; } + Nodes& nodes() { return _nodes; } + const Nodes& nodes() const { return _nodes; } SharedPtr<Node> random_node(); SharedPtr<Edge> random_edge(); @@ -75,11 +81,11 @@ private: // Audio context SharedPtr<Node> earliest_node() const; - bool enter_node(const SharedPtr<Raul::MIDISink> sink, const SharedPtr<Node> node); - void exit_node(const SharedPtr<Raul::MIDISink> sink, const SharedPtr<Node>); + bool enter_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node); + void exit_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node>); static const size_t MAX_ACTIVE_NODES = 128; - SharedPtr<Node> _active_nodes[MAX_ACTIVE_NODES]; + std::vector< SharedPtr<Node> > _active_nodes; bool _is_activated; bool _is_finished; |