aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-26 05:27:56 +0000
committerDavid Robillard <d@drobilla.net>2007-03-26 05:27:56 +0000
commit2124952b855e093d6253bfd763cd9ebfe69e9def (patch)
tree51c9913a3630676d97c2c2e0e84d990e5108560b /src/engine
parent3dee4f8a64548dbb2aa11521e258865e5b93e9e3 (diff)
downloadmachina-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.cpp2
-rw-r--r--src/engine/Node.cpp12
-rw-r--r--src/engine/machina/Node.hpp3
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;