aboutsummaryrefslogtreecommitdiffstats
path: root/lvz/audioeffectx.h
diff options
context:
space:
mode:
Diffstat (limited to 'lvz/audioeffectx.h')
-rw-r--r--lvz/audioeffectx.h41
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