diff options
Diffstat (limited to 'lvz/audioeffectx.h')
-rw-r--r-- | lvz/audioeffectx.h | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/lvz/audioeffectx.h b/lvz/audioeffectx.h index e4a7fb9..296bb06 100644 --- a/lvz/audioeffectx.h +++ b/lvz/audioeffectx.h @@ -22,6 +22,9 @@ #include <stdint.h> #include <string.h> +#include "lv2/lv2plug.in/ns/ext/atom/atom.h" +#include "lv2/lv2plug.in/ns/ext/urid/urid.h" + class AudioEffect; typedef int (*audioMasterCallback)(int, int ver, int, int, int, int); @@ -69,12 +72,12 @@ public: virtual void masterIdle() {} }; - class AudioEffectX : public AudioEffect { public: AudioEffectX(audioMasterCallback audioMaster, int32_t progs, int32_t params) : URI("NIL") , uniqueID("NIL") + , eventInput(NULL) , sampleRate(44100) , curProgram(0) , numInputs(0) @@ -84,9 +87,12 @@ public: { } - virtual void process (float **inputs, float **outputs, int32_t nframes) = 0; + virtual void process (float **inputs, float **outputs, int32_t nframes) {} virtual void processReplacing(float **inputs, float **outputs, int32_t nframes) = 0; + void setMidiEventType(LV2_URID urid) { midiEventType = urid; } + void setEventInput(const LV2_Atom_Sequence* seq) { eventInput = seq; } + virtual int32_t processEvents(LvzEvents* ev) { return 0; } virtual const char* getURI() { return URI; } @@ -95,15 +101,18 @@ public: virtual int32_t getNumInputs() { return numInputs; } virtual int32_t getNumOutputs() { return numOutputs; } virtual int32_t getNumParameters() { return numParams; } + virtual int32_t getNumPrograms() { return numPrograms; } virtual void getParameterName(int32_t index, char *label) = 0; virtual bool getProductString(char* text) = 0; + virtual void getProgramName(char *name) { name[0] = '\0'; } - virtual bool canHostDo(const char* act) { return false; } - virtual void canMono() {} - virtual void canProcessReplacing() {} - virtual void isSynth() {} - virtual void wantEvents() {} + virtual int32_t canDo(const char* text) { return false; } + virtual bool canHostDo(const char* act) { return false; } + virtual void canMono() {} + virtual void canProcessReplacing() {} + virtual void isSynth() {} + virtual void wantEvents() {} virtual void setBlockSize(int32_t size) {} virtual void setNumInputs(int32_t num) { numInputs = num; } @@ -121,14 +130,16 @@ public: } protected: - const char* URI; - const char* uniqueID; - float sampleRate; - int32_t curProgram; - int32_t numInputs; - int32_t numOutputs; - int32_t numParams; - int32_t numPrograms; + const char* URI; + const char* uniqueID; + const LV2_Atom_Sequence* eventInput; + LV2_URID midiEventType; + float sampleRate; + int32_t curProgram; + int32_t numInputs; + int32_t numOutputs; + int32_t numParams; + int32_t numPrograms; }; #endif // LVZ_AUDIOEFFECTX_H |