aboutsummaryrefslogtreecommitdiffstats
path: root/lvz/audioeffectx.h
diff options
context:
space:
mode:
Diffstat (limited to 'lvz/audioeffectx.h')
-rw-r--r--lvz/audioeffectx.h40
1 files changed, 36 insertions, 4 deletions
diff --git a/lvz/audioeffectx.h b/lvz/audioeffectx.h
index 288d1cd..a1f975a 100644
--- a/lvz/audioeffectx.h
+++ b/lvz/audioeffectx.h
@@ -22,10 +22,29 @@
#include <stdint.h>
#include <string.h>
+// Some plugins seem to use these names...
+#ifndef VstInt32
+# define VstInt32 LvzInt32
+# define VstInt16 LvzInt16
+#endif
+#define VstEvents LvzEvents
+#define VstMidiEvent LvzMidiEvent
+#define VstPinProperty LvzPinProperty
+
typedef int16_t LvzInt16;
typedef int32_t LvzInt32;
typedef int (*audioMasterCallback)(int, int ver, int, int, int, int);
+class AEffEditor;
+
+struct VstFileSelect {
+ int reserved;
+ char* returnPath;
+ size_t sizeReturnPath;
+ char** returnMultiplePaths;
+ long nbReturnPath;
+};
+
enum LvzPinFlags {
kLvzPinIsActive = 1<<0,
kLvzPinIsStereo = 1<<1
@@ -59,9 +78,16 @@ struct LvzEvents {
class AudioEffect {
public:
+ AudioEffect() : editor(NULL) {}
virtual ~AudioEffect() {}
+
+ void setEditor(AEffEditor* e) { editor = e; }
+ virtual void masterIdle() {}
+protected:
+ AEffEditor* editor;
};
+
class AudioEffectX : public AudioEffect {
public:
AudioEffectX(audioMasterCallback audioMaster, LvzInt32 progs, LvzInt32 params)
@@ -91,10 +117,11 @@ public:
virtual void getParameterName(LvzInt32 index, char *label) = 0;
virtual bool getProductString(char* text) = 0;
- virtual void canMono() {}
- virtual void canProcessReplacing() {}
- virtual void isSynth() {}
- virtual void wantEvents() {}
+ virtual bool canHostDo(const char* act) { return false; }
+ virtual void canMono() {}
+ virtual void canProcessReplacing() {}
+ virtual void isSynth() {}
+ virtual void wantEvents() {}
virtual void setBlockSize(LvzInt32 size) {}
virtual void setNumInputs(LvzInt32 num) { numInputs = num; }
@@ -104,6 +131,11 @@ public:
virtual void setURI(const char* uri) { URI = uri; }
virtual void setUniqueID(const char* id) { uniqueID = id; }
virtual void suspend() {}
+ virtual void beginEdit(VstInt32 index) {}
+ virtual void endEdit(VstInt32 index) {}
+
+ virtual bool openFileSelector (VstFileSelect* sel) { return false; }
+ virtual bool closeFileSelector (VstFileSelect* sel) { return false; }
protected:
const char* URI;