summaryrefslogtreecommitdiffstats
path: root/src/engine/QueuedEngineInterface.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-04-19 21:07:07 +0000
committerDavid Robillard <d@drobilla.net>2011-04-19 21:07:07 +0000
commit08759b27bc19de59bfd17fc929ee7e0021181ffb (patch)
tree111d19160758efc7ae3e120ec4212fed2aa79558 /src/engine/QueuedEngineInterface.cpp
parentc9683eb916ff52ab6907773360c655d776b24f23 (diff)
downloadingen-08759b27bc19de59bfd17fc929ee7e0021181ffb.tar.gz
ingen-08759b27bc19de59bfd17fc929ee7e0021181ffb.tar.bz2
ingen-08759b27bc19de59bfd17fc929ee7e0021181ffb.zip
Remove EngineInterface::activate() and EngineInterface::deactivate().
Use set_property("ingen:driver", "ingen:enabled", true | false) instead. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3171 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/QueuedEngineInterface.cpp')
-rw-r--r--src/engine/QueuedEngineInterface.cpp35
1 files changed, 17 insertions, 18 deletions
diff --git a/src/engine/QueuedEngineInterface.cpp b/src/engine/QueuedEngineInterface.cpp
index 8e9363ec..1fc68799 100644
--- a/src/engine/QueuedEngineInterface.cpp
+++ b/src/engine/QueuedEngineInterface.cpp
@@ -100,19 +100,6 @@ QueuedEngineInterface::unregister_client(const URI& uri)
// Engine commands
void
-QueuedEngineInterface::activate()
-{
- _engine.activate();
- push_queued(new Events::Ping(_engine, _request, now()));
-}
-
-void
-QueuedEngineInterface::deactivate()
-{
- push_queued(new Events::Deactivate(_engine, _request, now()));
-}
-
-void
QueuedEngineInterface::quit()
{
_request->respond_ok();
@@ -191,11 +178,23 @@ QueuedEngineInterface::set_property(const URI& uri,
const URI& predicate,
const Atom& value)
{
- Resource::Properties remove;
- remove.insert(make_pair(predicate, _engine.world()->uris()->wildcard));
- Resource::Properties add;
- add.insert(make_pair(predicate, value));
- push_queued(new Events::SetMetadata(_engine, _request, now(), false, Resource::DEFAULT, uri, add, remove));
+ if (uri == "ingen:engine" && predicate == "ingen:enabled"
+ && value.type() == Atom::BOOL) {
+ if (value.get_bool()) {
+ _engine.activate();
+ push_queued(new Events::Ping(_engine, _request, now()));
+ } else {
+ push_queued(new Events::Deactivate(_engine, _request, now()));
+ }
+ } else {
+ Resource::Properties remove;
+ remove.insert(make_pair(predicate, _engine.world()->uris()->wildcard));
+ Resource::Properties add;
+ add.insert(make_pair(predicate, value));
+ push_queued(new Events::SetMetadata(
+ _engine, _request, now(), false, Resource::DEFAULT,
+ uri, add, remove));
+ }
}
// Requests //