diff options
Diffstat (limited to 'src/engine/machina')
-rw-r--r-- | src/engine/machina/Driver.hpp | 12 | ||||
-rw-r--r-- | src/engine/machina/Engine.hpp | 10 | ||||
-rw-r--r-- | src/engine/machina/Loader.hpp | 5 | ||||
-rw-r--r-- | src/engine/machina/Machine.hpp | 15 | ||||
-rw-r--r-- | src/engine/machina/URIs.hpp | 9 |
5 files changed, 34 insertions, 17 deletions
diff --git a/src/engine/machina/Driver.hpp b/src/engine/machina/Driver.hpp index c80fc26..69bf951 100644 --- a/src/engine/machina/Driver.hpp +++ b/src/engine/machina/Driver.hpp @@ -18,18 +18,23 @@ #ifndef MACHINA_DRIVER_HPP #define MACHINA_DRIVER_HPP -#include "raul/MIDISink.hpp" #include "raul/RingBuffer.hpp" #include "machina/types.hpp" +#include "MIDISink.hpp" + namespace Machina { class Machine; -class Driver : public Raul::MIDISink { +class Driver : public MIDISink { public: - Driver(SharedPtr<Machine> machine) : _machine(machine) {} + Driver(Raul::Forge& forge, SharedPtr<Machine> machine) + : _forge(forge) + , _machine(machine) + {} + virtual ~Driver() {} SharedPtr<Machine> machine() { return _machine; } @@ -52,6 +57,7 @@ public: virtual void finish_record() {} protected: + Raul::Forge& _forge; SharedPtr<Machine> _machine; SharedPtr<UpdateBuffer> _updates; }; diff --git a/src/engine/machina/Engine.hpp b/src/engine/machina/Engine.hpp index 8c3a117..5f11d55 100644 --- a/src/engine/machina/Engine.hpp +++ b/src/engine/machina/Engine.hpp @@ -22,6 +22,7 @@ #include <glibmm/ustring.h> +#include "raul/Atom.hpp" #include "raul/SharedPtr.hpp" #include "machina/Driver.hpp" @@ -33,15 +34,19 @@ class Machine; class Engine { public: - Engine(SharedPtr<Driver> driver, Sord::World& rdf_world); + Engine(Raul::Forge& forge, + SharedPtr<Driver> driver, + Sord::World& rdf_world); Sord::World& rdf_world() { return _rdf_world; } - static SharedPtr<Driver> new_driver(const std::string& name, + static SharedPtr<Driver> new_driver(Raul::Forge& forge, + const std::string& name, SharedPtr<Machine> machine); SharedPtr<Driver> driver() { return _driver; } SharedPtr<Machine> machine() { return _driver->machine(); } + Raul::Forge& forge() { return _forge; } SharedPtr<Machine> load_machine(const Glib::ustring& uri); SharedPtr<Machine> load_machine_midi(const Glib::ustring& uri, @@ -60,6 +65,7 @@ private: SharedPtr<Driver> _driver; Sord::World& _rdf_world; Loader _loader; + Raul::Forge _forge; }; } // namespace Machina diff --git a/src/engine/machina/Loader.hpp b/src/engine/machina/Loader.hpp index a393ccd..470b109 100644 --- a/src/engine/machina/Loader.hpp +++ b/src/engine/machina/Loader.hpp @@ -20,7 +20,7 @@ #include <glibmm/ustring.h> -#include "raul/Path.hpp" +#include "raul/Atom.hpp" #include "raul/SharedPtr.hpp" #include "sord/sordmm.hpp" @@ -33,11 +33,12 @@ class Machine; class Loader { public: - Loader(Sord::World& rdf_world); + Loader(Raul::Forge& forge, Sord::World& rdf_world); SharedPtr<Machine> load(const Glib::ustring& filename); private: + Raul::Forge& _forge; Sord::World& _rdf_world; }; diff --git a/src/engine/machina/Machine.hpp b/src/engine/machina/Machine.hpp index b9ad4c1..d65b670 100644 --- a/src/engine/machina/Machine.hpp +++ b/src/engine/machina/Machine.hpp @@ -21,7 +21,7 @@ #include <vector> #include <boost/utility.hpp> -#include "raul/List.hpp" +#include "raul/Atom.hpp" #include "raul/Maid.hpp" #include "raul/RingBuffer.hpp" #include "raul/SharedPtr.hpp" @@ -42,7 +42,7 @@ class LearnRequest; */ class Machine : public Stateful { public: - Machine(TimeUnit unit); + Machine(Raul::Forge& forge, TimeUnit unit); Machine(const Machine& copy); Machine& operator=(const Machine& other); @@ -74,30 +74,31 @@ public: SharedPtr<LearnRequest> pending_learn() { return _pending_learn; } void clear_pending_learn() { _pending_learn.reset(); } - typedef Raul::List< SharedPtr<Node> > Nodes; + typedef std::list< SharedPtr<Node> > Nodes; Nodes& nodes() { return _nodes; } const Nodes& nodes() const { return _nodes; } SharedPtr<Node> random_node(); SharedPtr<Edge> random_edge(); - void set_sink(SharedPtr<Raul::MIDISink> sink); + void set_sink(SharedPtr<MIDISink> sink); private: // Audio context SharedPtr<Node> earliest_node() const; - bool enter_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node> node, SharedPtr<UpdateBuffer> updates); - void exit_node(SharedPtr<Raul::MIDISink> sink, SharedPtr<Node>, SharedPtr<UpdateBuffer> updates); + bool enter_node(SharedPtr<MIDISink> sink, SharedPtr<Node> node, SharedPtr<UpdateBuffer> updates); + void exit_node(SharedPtr<MIDISink> sink, SharedPtr<Node>, SharedPtr<UpdateBuffer> updates); static const size_t MAX_ACTIVE_NODES = 128; std::vector< SharedPtr<Node> > _active_nodes; + Raul::Forge& _forge; bool _is_activated; bool _is_finished; Raul::TimeStamp _time; SharedPtr<LearnRequest> _pending_learn; - WeakPtr<Raul::MIDISink> _sink; + WeakPtr<MIDISink> _sink; Nodes _nodes; }; diff --git a/src/engine/machina/URIs.hpp b/src/engine/machina/URIs.hpp index 944ab63..ae6cd2f 100644 --- a/src/engine/machina/URIs.hpp +++ b/src/engine/machina/URIs.hpp @@ -32,8 +32,9 @@ public: static inline const URIs& instance() { assert(_instance); return *_instance; } - Raul::Atom machina_MidiAction_atom; - + URIInt machina_Edge; + URIInt machina_MidiAction; + URIInt machina_Node; URIInt machina_active; URIInt machina_canvas_x; URIInt machina_canvas_y; @@ -50,7 +51,9 @@ public: private: URIs() - : machina_MidiAction_atom(Raul::Atom::URI, "machina:MidiAction") + : machina_Edge(43) + , machina_MidiAction(43) + , machina_Node(42) , machina_active(1) , machina_canvas_x(2) , machina_canvas_y(3) |