diff options
author | Carl Hetherington <carl@carlh.net> | 2011-11-23 22:46:43 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-11-23 22:46:43 +0000 |
commit | 7548afd3561536e8c057ad9637e5b643289b9f11 (patch) | |
tree | 463b948796e9dbe2924000780d27d7c7fc328386 /libs/ardour/ardour/vestige | |
parent | d9c9d0e8a8220b0749ac6f1a134c4758052ce9f6 (diff) |
Fix some confusion over getting parameter details from
VSTs.
git-svn-id: svn://localhost/ardour2/branches/3.0@10814 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/vestige')
-rwxr-xr-x | libs/ardour/ardour/vestige/aeffectx.h | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/libs/ardour/ardour/vestige/aeffectx.h b/libs/ardour/ardour/vestige/aeffectx.h index 29fdb9a145..5238df1c75 100755 --- a/libs/ardour/ardour/vestige/aeffectx.h +++ b/libs/ardour/ardour/vestige/aeffectx.h @@ -102,17 +102,17 @@ #define effEditTop 20 #define effProcessEvents 25 #define effGetEffectName 45 -#define effGetParameterProperties 47 // missing #define effGetVendorString 47 #define effGetProductString 48 #define effGetVendorVersion 49 #define effCanDo 51 // currently unused +/* from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ +#define effGetParameterProperties 56 #define effGetVstVersion 58 // currently unused #define kEffectMagic (CCONST( 'V', 's', 't', 'P' )) #define kVstLangEnglish 1 #define kVstMidiType 1 -#define kVstParameterUsesFloatStep (1 << 2) #define kVstTempoValid (1 << 10) #define kVstTransportPlaying (1 << 1) @@ -177,23 +177,35 @@ struct _VstEvents typedef struct _VstEvents VstEvents; -// Not finished, neither really used +/* this struct taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ struct _VstParameterProperties { float stepFloat; + float smallStepFloat; + float largeStepFloat; char label[64]; - int flags; - int minInteger; - int maxInteger; - int stepInteger; + int32_t flags; + int32_t minInteger; + int32_t maxInteger; + int32_t stepInteger; + int32_t largeStepInteger; char shortLabel[8]; - int category; - char categoryLabel[24]; - char empty[128]; }; typedef struct _VstParameterProperties VstParameterProperties; +/* 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 */ +}; + struct _AEffect { // Never use virtual functions!!! |