diff options
Diffstat (limited to 'ingen')
-rw-r--r-- | ingen/AtomReader.hpp | 2 | ||||
-rw-r--r-- | ingen/AtomSink.hpp | 6 | ||||
-rw-r--r-- | ingen/Configuration.hpp | 1 | ||||
-rw-r--r-- | ingen/EngineBase.hpp | 5 | ||||
-rw-r--r-- | ingen/Status.hpp | 4 | ||||
-rw-r--r-- | ingen/TurtleWriter.hpp | 2 | ||||
-rw-r--r-- | ingen/URIs.hpp | 6 | ||||
-rw-r--r-- | ingen/ingen.h | 13 |
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" |