summaryrefslogtreecommitdiffstats
path: root/ingen
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2012-05-22 03:30:42 +0000
committerDavid Robillard <d@drobilla.net>2012-05-22 03:30:42 +0000
commitb1d4027b58465d9cc31d6cb1be05a7ff4f202711 (patch)
treeb1b7e9d1379fc16c5f451fda7afff0d2bc071e18 /ingen
parente3b0886bfbd12f65450d4b302371f07f511458c3 (diff)
downloadingen-b1d4027b58465d9cc31d6cb1be05a7ff4f202711.tar.gz
ingen-b1d4027b58465d9cc31d6cb1be05a7ff4f202711.tar.bz2
ingen-b1d4027b58465d9cc31d6cb1be05a7ff4f202711.zip
More work on test suite.
Clean up, simplify, and shrink event code. Support disconnect_all via Atom protocol. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@4432 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'ingen')
-rw-r--r--ingen/EngineBase.hpp5
-rw-r--r--ingen/Status.hpp8
-rw-r--r--ingen/shared/AtomReader.hpp3
-rw-r--r--ingen/shared/AtomSink.hpp6
-rw-r--r--ingen/shared/URIs.hpp2
5 files changed, 21 insertions, 3 deletions
diff --git a/ingen/EngineBase.hpp b/ingen/EngineBase.hpp
index 5288eafa..caa1cf00 100644
--- a/ingen/EngineBase.hpp
+++ b/ingen/EngineBase.hpp
@@ -54,6 +54,11 @@ public:
virtual void deactivate() = 0;
/**
+ Return true iff events are waiting to be processed.
+ */
+ virtual bool pending_events() = 0;
+
+ /**
Process audio for @p sample_count frames.
If the return value is non-zero, events have been processed and are
diff --git a/ingen/Status.hpp b/ingen/Status.hpp
index 79655e3d..c14bfc06 100644
--- a/ingen/Status.hpp
+++ b/ingen/Status.hpp
@@ -25,6 +25,7 @@ enum Status {
BAD_INDEX,
BAD_OBJECT_TYPE,
+ BAD_REQUEST,
BAD_VALUE_TYPE,
CLIENT_NOT_FOUND,
CREATION_FAILED,
@@ -33,8 +34,10 @@ enum Status {
INTERNAL_ERROR,
INVALID_PARENT_PATH,
INVALID_POLY,
+ NOT_DELETABLE,
NOT_FOUND,
NOT_MOVABLE,
+ NOT_PREPARED,
NO_SPACE,
PARENT_DIFFERS,
PARENT_NOT_FOUND,
@@ -53,6 +56,7 @@ ingen_status_string(Status st)
case BAD_INDEX: return "Invalid index";
case BAD_OBJECT_TYPE: return "Invalid object type";
+ case BAD_REQUEST: return "Bad request";
case BAD_VALUE_TYPE: return "Invalid value type";
case CLIENT_NOT_FOUND: return "Client not found";
case CREATION_FAILED: return "Creation failed";
@@ -61,13 +65,15 @@ ingen_status_string(Status st)
case INTERNAL_ERROR: return "Internal error";
case INVALID_PARENT_PATH: return "Invalid parent path";
case INVALID_POLY: return "Invalid polyphony";
+ case NOT_DELETABLE: return "Object not deletable";
case NOT_FOUND: return "Object not found";
case NOT_MOVABLE: return "Object not movable";
+ case NOT_PREPARED: return "Not prepared";
case NO_SPACE: return "Insufficient space";
case PARENT_DIFFERS: return "Parent differs";
case PARENT_NOT_FOUND: return "Parent not found";
- case PORT_NOT_FOUND: return "Port not found";
case PLUGIN_NOT_FOUND: return "Plugin not found";
+ case PORT_NOT_FOUND: return "Port not found";
case TYPE_MISMATCH: return "Type mismatch";
case UNKNOWN_TYPE: return "Unknown type";
}
diff --git a/ingen/shared/AtomReader.hpp b/ingen/shared/AtomReader.hpp
index 2887aad1..1386d3ba 100644
--- a/ingen/shared/AtomReader.hpp
+++ b/ingen/shared/AtomReader.hpp
@@ -38,10 +38,11 @@ public:
AtomReader(URIMap& map, URIs& uris, Forge& forge, Interface& iface);
~AtomReader() {}
- void write(const LV2_Atom* msg);
+ bool write(const LV2_Atom* msg);
private:
void get_atom(const LV2_Atom* in, Raul::Atom& out);
+ const char* atom_to_uri(const LV2_Atom* atom);
void get_props(const LV2_Atom_Object* obj,
Ingen::Resource::Properties& props);
diff --git a/ingen/shared/AtomSink.hpp b/ingen/shared/AtomSink.hpp
index b4694926..f25e6548 100644
--- a/ingen/shared/AtomSink.hpp
+++ b/ingen/shared/AtomSink.hpp
@@ -28,7 +28,11 @@ namespace Shared {
class AtomSink {
public:
virtual ~AtomSink() {}
- virtual void write(const LV2_Atom* msg) = 0;
+
+ /** Write an Atom to the sink.
+ * @return True on success.
+ */
+ virtual bool write(const LV2_Atom* msg) = 0;
};
} // namespace Shared
diff --git a/ingen/shared/URIs.hpp b/ingen/shared/URIs.hpp
index 7b89c2ba..c1eec103 100644
--- a/ingen/shared/URIs.hpp
+++ b/ingen/shared/URIs.hpp
@@ -59,6 +59,7 @@ public:
const Quark atom_Bool;
const Quark atom_Float;
const Quark atom_Int;
+ const Quark atom_Resource;
const Quark atom_Sequence;
const Quark atom_Sound;
const Quark atom_String;
@@ -82,6 +83,7 @@ public:
const Quark ingen_enabled;
const Quark ingen_engine;
const Quark ingen_head;
+ const Quark ingen_incidentTo;
const Quark ingen_nil;
const Quark ingen_node;
const Quark ingen_polyphonic;