diff options
author | David Robillard <d@drobilla.net> | 2007-03-26 05:27:56 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-03-26 05:27:56 +0000 |
commit | 2124952b855e093d6253bfd763cd9ebfe69e9def (patch) | |
tree | 51c9913a3630676d97c2c2e0e84d990e5108560b /src/engine | |
parent | 3dee4f8a64548dbb2aa11521e258865e5b93e9e3 (diff) | |
download | machina-2124952b855e093d6253bfd763cd9ebfe69e9def.tar.gz machina-2124952b855e093d6253bfd763cd9ebfe69e9def.tar.bz2 machina-2124952b855e093d6253bfd763cd9ebfe69e9def.zip |
Deleting selected states with delete key.
Fixed loading all states as initial.
git-svn-id: http://svn.drobilla.net/lad/machina@378 a436a847-0d15-0410-975c-d299462d15a1
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; |