summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/vestige
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-11-23 22:46:43 +0000
committerCarl Hetherington <carl@carlh.net>2011-11-23 22:46:43 +0000
commit7548afd3561536e8c057ad9637e5b643289b9f11 (patch)
tree463b948796e9dbe2924000780d27d7c7fc328386 /libs/ardour/ardour/vestige
parentd9c9d0e8a8220b0749ac6f1a134c4758052ce9f6 (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-xlibs/ardour/ardour/vestige/aeffectx.h32
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!!!