summaryrefslogtreecommitdiff
path: root/libs/fst/vestige/aeffectx.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/fst/vestige/aeffectx.h')
-rw-r--r--libs/fst/vestige/aeffectx.h108
1 files changed, 68 insertions, 40 deletions
diff --git a/libs/fst/vestige/aeffectx.h b/libs/fst/vestige/aeffectx.h
index 790c93e6dc..dda128f45e 100644
--- a/libs/fst/vestige/aeffectx.h
+++ b/libs/fst/vestige/aeffectx.h
@@ -26,6 +26,7 @@
#ifndef _AEFFECTX_H
#define _AEFFECTX_H
+#include <stdint.h>
#define audioMasterAutomate 0
#define audioMasterVersion 1
@@ -128,9 +129,18 @@
#define kVstLangEnglish 1
#define kVstMidiType 1
#define kVstTransportPlaying (1 << 1)
-#define kVstParameterUsesFloatStep (1 << 2)
+
+/* validity flags for a VstTimeINfo structure this info comes from the web */
+
+#define kVstNanosValid (1 << 8)
+#define kVstPpqPosValid (1 << 9)
#define kVstTempoValid (1 << 10)
#define kVstBarsValid (1 << 11)
+#define kVstCyclePosValid (1 << 12)
+#define kVstTimeSigValid (1 << 13)
+#define kVstSmpteValid (1 << 14)
+#define kVstClockValid (1 << 15)
+
#define kVstTransportChanged 1
typedef struct VstMidiEvent
@@ -182,27 +192,49 @@ typedef struct VstEvents
VstEvent * events[];
} VstEvents;
+/* constants from http://www.rawmaterialsoftware.com/juceforum/viewtopic.php?t=3740&sid=183f74631fee71a493316735e2b9f28b */
-
-
-// Not finished, neither really used
-typedef struct VstParameterProperties
+enum Vestige2StringConstants
{
- float stepFloat;
- char label[64];
- int flags;
- int minInteger;
- int maxInteger;
- int stepInteger;
- char shortLabel[8];
- int category;
- char categoryLabel[24];
- char empty[128];
-
-} VstParameterProperties;
-
-
-
+ VestigeMaxNameLen = 64,
+ VestigeMaxLabelLen = 64,
+ VestigeMaxShortLabelLen = 8,
+ VestigeMaxCategLabelLen = 24,
+ VestigeMaxFileNameLen = 100
+};
+
+/* this struct taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */
+struct VstParameterProperties
+{
+ float stepFloat; /* float step */
+ float smallStepFloat; /* small float step */
+ float largeStepFloat; /* large float step */
+ char label[VestigeMaxLabelLen]; /* parameter label */
+ int32_t flags; /* @see VstParameterFlags */
+ int32_t minInteger; /* integer minimum */
+ int32_t maxInteger; /* integer maximum */
+ int32_t stepInteger; /* integer step */
+ int32_t largeStepInteger; /* large integer step */
+ char shortLabel[VestigeMaxShortLabelLen]; /* short label, recommended: 6 + delimiter */
+ int16_t displayIndex; /* index where this parameter should be displayed (starting with 0) */
+ int16_t category; /* 0: no category, else group index + 1 */
+ int16_t numParametersInCategory; /* number of parameters in category */
+ int16_t reserved; /* zero */
+ char categoryLabel[VestigeMaxCategLabelLen]; /* category label, e.g. "Osc 1" */
+ char future[16]; /* reserved for future use */
+};
+
+/* this enum taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */
+enum VstParameterFlags
+{
+ kVstParameterIsSwitch = 1 << 0, /* parameter is a switch (on/off) */
+ kVstParameterUsesIntegerMinMax = 1 << 1, /* minInteger, maxInteger valid */
+ kVstParameterUsesFloatStep = 1 << 2, /* stepFloat, smallStepFloat, largeStepFloat valid */
+ kVstParameterUsesIntStep = 1 << 3, /* stepInteger, largeStepInteger valid */
+ kVstParameterSupportsDisplayIndex = 1 << 4, /* displayIndex valid */
+ kVstParameterSupportsDisplayCategory = 1 << 5, /* category, etc. valid */
+ kVstParameterCanRamp = 1 << 6 /* set if parameter value can ramp up/down */
+};
typedef struct AEffect
{
@@ -253,30 +285,26 @@ typedef struct AEffect
typedef struct VstTimeInfo
{
- // 00
- double samplePos;
- // 08
- double sampleRate;
- // unconfirmed 10 18
- char empty1[8 + 8];
- // 20?
- double tempo;
- // unconfirmed 28 30 38
- char empty2[8 + 8 + 8];
- // 40?
- int timeSigNumerator;
- // 44?
- int timeSigDenominator;
- // unconfirmed 48 4c 50
- char empty3[4 + 4 + 4];
- // 54
- int flags;
+ /* info from online documentation of VST provided by Steinberg */
+
+ double samplePos;
+ double sampleRate;
+ double nanoSeconds;
+ double ppqPos;
+ double tempo;
+ double barStartPos;
+ double cycleStartPos;
+ double cycleEndPos;
+ double timeSigNumerator;
+ double timeSigDenominator;
+ long smpteOffset;
+ long smpteFrameRate;
+ long samplesToNextClock;
+ long flags;
} VstTimeInfo;
-
-
typedef long int (* audioMasterCallback)( AEffect * , long int , long int ,
long int , void * , float );
// we don't use it, may be noise