diff options
Diffstat (limited to 'libs/fst/vestige/aeffectx.h')
-rw-r--r-- | libs/fst/vestige/aeffectx.h | 108 |
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 |