summaryrefslogtreecommitdiffstats
path: root/ingen
diff options
context:
space:
mode:
Diffstat (limited to 'ingen')
-rw-r--r--ingen/AtomReader.hpp2
-rw-r--r--ingen/AtomSink.hpp6
-rw-r--r--ingen/Configuration.hpp1
-rw-r--r--ingen/EngineBase.hpp5
-rw-r--r--ingen/Status.hpp4
-rw-r--r--ingen/TurtleWriter.hpp2
-rw-r--r--ingen/URIs.hpp6
-rw-r--r--ingen/ingen.h13
8 files changed, 35 insertions, 4 deletions
diff --git a/ingen/AtomReader.hpp b/ingen/AtomReader.hpp
index 7bb4b359..09aa672a 100644
--- a/ingen/AtomReader.hpp
+++ b/ingen/AtomReader.hpp
@@ -45,7 +45,7 @@ public:
static bool is_message(const URIs& uris, const LV2_Atom* msg);
- bool write(const LV2_Atom* msg);
+ bool write(const LV2_Atom* msg, int32_t default_id=0);
private:
void get_atom(const LV2_Atom* in, Atom& out);
diff --git a/ingen/AtomSink.hpp b/ingen/AtomSink.hpp
index 789b7d61..8228001e 100644
--- a/ingen/AtomSink.hpp
+++ b/ingen/AtomSink.hpp
@@ -30,9 +30,13 @@ public:
virtual ~AtomSink() {}
/** Write an Atom to the sink.
+ *
+ * @param default_id The default response ID to use if no
+ * patch:sequenceNumber property is present on the message.
+ *
* @return True on success.
*/
- virtual bool write(const LV2_Atom* msg) = 0;
+ virtual bool write(const LV2_Atom* msg, int32_t default_id=0) = 0;
};
} // namespace Ingen
diff --git a/ingen/Configuration.hpp b/ingen/Configuration.hpp
index 28b6a19d..6d4655d6 100644
--- a/ingen/Configuration.hpp
+++ b/ingen/Configuration.hpp
@@ -23,6 +23,7 @@
#include <list>
#include <map>
+#include <ostream>
#include <string>
#include "ingen/Atom.hpp"
diff --git a/ingen/EngineBase.hpp b/ingen/EngineBase.hpp
index 3a460b62..7ba4467a 100644
--- a/ingen/EngineBase.hpp
+++ b/ingen/EngineBase.hpp
@@ -68,6 +68,11 @@ public:
virtual bool pending_events() = 0;
/**
+ Locate to a given cycle.
+ */
+ virtual void locate(uint32_t start, uint32_t sample_count) = 0;
+
+ /**
Process audio for `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 88e9d707..c1002a17 100644
--- a/ingen/Status.hpp
+++ b/ingen/Status.hpp
@@ -46,7 +46,8 @@ enum class Status {
PROTOTYPE_NOT_FOUND,
PORT_NOT_FOUND,
TYPE_MISMATCH,
- UNKNOWN_TYPE
+ UNKNOWN_TYPE,
+ COMPILATION_FAILED
};
static inline const char*
@@ -80,6 +81,7 @@ ingen_status_string(Status st)
case Status::PORT_NOT_FOUND: return "Port not found";
case Status::TYPE_MISMATCH: return "Type mismatch";
case Status::UNKNOWN_TYPE: return "Unknown type";
+ case Status::COMPILATION_FAILED: return "Graph compilation failed";
}
return "Unknown error";
diff --git a/ingen/TurtleWriter.hpp b/ingen/TurtleWriter.hpp
index 4ce10f3c..3a439b98 100644
--- a/ingen/TurtleWriter.hpp
+++ b/ingen/TurtleWriter.hpp
@@ -44,7 +44,7 @@ public:
virtual ~TurtleWriter();
/** AtomSink method which receives calls serialized to LV2 atoms. */
- bool write(const LV2_Atom* msg);
+ bool write(const LV2_Atom* msg, int32_t default_id=0);
/** Pure virtual text sink which receives calls serialized to Turtle. */
virtual size_t text_sink(const void* buf, size_t len) = 0;
diff --git a/ingen/URIs.hpp b/ingen/URIs.hpp
index 9fc771da..6a691ba2 100644
--- a/ingen/URIs.hpp
+++ b/ingen/URIs.hpp
@@ -118,6 +118,11 @@ public:
const Quark ingen_head;
const Quark ingen_incidentTo;
const Quark ingen_loadedBundle;
+ const Quark ingen_maxEventLoad;
+ const Quark ingen_maxRunLoad;
+ const Quark ingen_meanRunLoad;
+ const Quark ingen_minRunLoad;
+ const Quark ingen_numThreads;
const Quark ingen_polyphonic;
const Quark ingen_polyphony;
const Quark ingen_prototype;
@@ -138,6 +143,7 @@ public:
const Quark lv2_appliesTo;
const Quark lv2_binary;
const Quark lv2_connectionOptional;
+ const Quark lv2_control;
const Quark lv2_default;
const Quark lv2_designation;
const Quark lv2_enumeration;
diff --git a/ingen/ingen.h b/ingen/ingen.h
index 3af2042c..11fd592a 100644
--- a/ingen/ingen.h
+++ b/ingen/ingen.h
@@ -34,6 +34,14 @@
# define INGEN_API
#endif
+#ifndef INGEN_WARN_UNUSED_RESULT
+# if __GNUC__ > 3 || __GNUC__ == 3 && __GNUC_MINOR__ >= 4
+# define INGEN_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
+# else
+# define INGEN_WARN_UNUSED_RESULT
+# endif
+#endif
+
#define INGEN_NS "http://drobilla.net/ns/ingen#"
#define INGEN__Arc INGEN_NS "Arc"
@@ -58,6 +66,11 @@
#define INGEN__head INGEN_NS "head"
#define INGEN__incidentTo INGEN_NS "incidentTo"
#define INGEN__loadedBundle INGEN_NS "loadedBundle"
+#define INGEN__maxEventLoad INGEN_NS "maxEventLoad"
+#define INGEN__maxRunLoad INGEN_NS "maxRunLoad"
+#define INGEN__meanRunLoad INGEN_NS "meanRunLoad"
+#define INGEN__minRunLoad INGEN_NS "minRunLoad"
+#define INGEN__numThreads INGEN_NS "numThreads"
#define INGEN__polyphonic INGEN_NS "polyphonic"
#define INGEN__polyphony INGEN_NS "polyphony"
#define INGEN__prototype INGEN_NS "prototype"