summaryrefslogtreecommitdiffstats
path: root/src/engine/events/Delete.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2011-04-19 21:27:38 +0000
committerDavid Robillard <d@drobilla.net>2011-04-19 21:27:38 +0000
commit74c76bd82792b03bd12f30aa875fae3e5047ccc2 (patch)
treefc547c60d974b2f064c2e401ddcbecee82ed9d2a /src/engine/events/Delete.cpp
parent08759b27bc19de59bfd17fc929ee7e0021181ffb (diff)
downloadingen-74c76bd82792b03bd12f30aa875fae3e5047ccc2.tar.gz
ingen-74c76bd82792b03bd12f30aa875fae3e5047ccc2.tar.bz2
ingen-74c76bd82792b03bd12f30aa875fae3e5047ccc2.zip
Remove EngineInterface::quit().
Use del("ingen:engine") instead. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3172 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/engine/events/Delete.cpp')
-rw-r--r--src/engine/events/Delete.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/engine/events/Delete.cpp b/src/engine/events/Delete.cpp
index 50b9174a..4a6e520b 100644
--- a/src/engine/events/Delete.cpp
+++ b/src/engine/events/Delete.cpp
@@ -36,9 +36,12 @@ namespace Ingen {
namespace Engine {
namespace Events {
-Delete::Delete(Engine& engine, SharedPtr<Request> request, FrameTime time, const Raul::Path& path)
+Delete::Delete(Engine& engine,
+ SharedPtr<Request> request,
+ FrameTime time,
+ const Raul::URI& uri)
: QueuedEvent(engine, request, time, true)
- , _path(path)
+ , _uri(uri)
, _store_iterator(engine.engine_store()->end())
, _garbage(NULL)
, _driver_port(NULL)
@@ -50,6 +53,9 @@ Delete::Delete(Engine& engine, SharedPtr<Request> request, FrameTime time, const
{
assert(request);
assert(request->source());
+
+ if (Raul::Path::is_path(uri))
+ _path = Raul::Path(uri.str());
}
Delete::~Delete()
@@ -166,7 +172,8 @@ Delete::post_process()
{
_removed_bindings.reset();
- if (_path.is_root() || _path == "path:/control_in" || _path == "path:/control_out") {
+ if (!Raul::Path::is_path(_uri)
+ || _path.is_root() || _path == "path:/control_in" || _path == "path:/control_out") {
// XXX: Just ignore?
//_request->respond_error(_path.chop_scheme() + " can not be deleted");
} else if (!_node && !_port) {