diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/Loader.cpp | 2 | ||||
-rw-r--r-- | src/engine/Node.cpp | 12 | ||||
-rw-r--r-- | src/engine/machina/Node.hpp | 3 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/engine/Loader.cpp b/src/engine/Loader.cpp index 02aff51..539c86f 100644 --- a/src/engine/Loader.cpp +++ b/src/engine/Loader.cpp @@ -128,7 +128,7 @@ Loader::load(const Glib::ustring& uri) cout << "Node: " << node_id << " - " << duration << endl; if (created.find(node_id.collate_key()) == created.end()) { - SharedPtr<Node> node(new Node(strtod(duration.c_str(), NULL), true)); + SharedPtr<Node> node(new Node(strtod(duration.c_str(), NULL), false)); machine->add_node(node); created.insert(std::make_pair(node_id.collate_key(), node)); } else { diff --git a/src/engine/Node.cpp b/src/engine/Node.cpp index d94e0bc..768422e 100644 --- a/src/engine/Node.cpp +++ b/src/engine/Node.cpp @@ -25,6 +25,7 @@ namespace Machina { Node::Node(BeatCount duration, bool initial) : _is_initial(initial) + , _is_selector(false) , _is_active(false) , _enter_time(0) , _duration(duration) @@ -127,9 +128,14 @@ Node::write_state(Raul::RDFWriter& writer) if (!_id) set_id(writer.blank_id()); - writer.write(_id, - RdfId(RdfId::RESOURCE, "rdf:type"), - RdfId(RdfId::RESOURCE, "machina:Node")); + if (_is_selector) + writer.write(_id, + RdfId(RdfId::RESOURCE, "rdf:type"), + RdfId(RdfId::RESOURCE, "machina:SelectorNode")); + else + writer.write(_id, + RdfId(RdfId::RESOURCE, "rdf:type"), + RdfId(RdfId::RESOURCE, "machina:Node")); writer.write(_id, RdfId(RdfId::RESOURCE, "machina:duration"), diff --git a/src/engine/machina/Node.hpp b/src/engine/machina/Node.hpp index 5181149..b4c72e2 100644 --- a/src/engine/machina/Node.hpp +++ b/src/engine/machina/Node.hpp @@ -66,6 +66,8 @@ public: bool is_initial() const { return _is_initial; } void set_initial(bool i) { _is_initial = i; } + bool is_selector() const { return _is_selector; } + void set_selector(bool i) { _is_selector = i; } bool is_active() const { return _is_active; } BeatTime enter_time() const { assert(_is_active); return _enter_time; } BeatTime exit_time() const { assert(_is_active); return _enter_time + _duration; } @@ -77,6 +79,7 @@ public: private: bool _is_initial; + bool _is_selector; bool _is_active; BeatTime _enter_time; ///< valid iff _is_active BeatCount _duration; |