Audacity  2.2.0
aeffectx.h
Go to the documentation of this file.
1 /*
2  * aeffectx.h - simple header to allow VeSTige compilation and eventually work
3  *
4  * Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
5  *
6  * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
7  *
8  * This program is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public
10  * License as published by the Free Software Foundation; either
11  * version 2 of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public
19  * License along with this program (see COPYING); if not, write to the
20  * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301 USA.
22  *
23  */
24 
25 
26 #ifndef _AEFFECTX_H
27 #define _AEFFECTX_H
28 
29 #define CCONST(a, b, c, d)( ( ( (int) a ) << 24 ) | \
30  ( ( (int) b ) << 16 ) | \
31  ( ( (int) c ) << 8 ) | \
32  ( ( (int) d ) << 0 ) )
33 
34 const int audioMasterAutomate = 0;
35 const int audioMasterVersion = 1;
36 const int audioMasterCurrentId = 2;
37 const int audioMasterIdle = 3;
39 // unsupported? 5
40 const int audioMasterWantMidi = 6;
41 const int audioMasterGetTime = 7;
43 const int audioMasterSetTime = 9;
44 const int audioMasterTempoAt = 10;
47 const int audioMasterIOChanged = 13;
48 const int audioMasterNeedIdle = 14;
49 const int audioMasterSizeWindow = 15;
50 const int audioMasterGetSampleRate = 16;
51 const int audioMasterGetBlockSize = 17;
55 const int audioMasterGetNextPlug = 21;
59 const int audioMasterOfflineStart = 25;
60 const int audioMasterOfflineRead = 26;
61 const int audioMasterOfflineWrite = 27;
65 // unsupported? 31
66 const int audioMasterGetSpeakerArrangement = 31; // deprecated in 2.4?
71 const int audioMasterSetIcon = 36;
72 const int audioMasterCanDo = 37;
73 const int audioMasterGetLanguage = 38;
74 const int audioMasterOpenWindow = 39;
75 const int audioMasterCloseWindow = 40;
76 const int audioMasterGetDirectory = 41;
77 const int audioMasterUpdateDisplay = 42;
78 const int audioMasterBeginEdit = 43;
79 const int audioMasterEndEdit = 44;
81 const int audioMasterCloseFileSelector = 46; // currently unused
82 const int audioMasterEditFile = 47; // currently unused
83 const int audioMasterGetChunkFile = 48; // currently unused
84 const int audioMasterGetInputSpeakerArrangement = 49; // currently unused
85 
86 const int effFlagsHasEditor = 1;
87 const int effFlagsCanReplacing = 1 << 4; // very likely
88 const int effFlagsProgramChunks = 1 << 5; // from Ardour
89 const int effFlagsIsSynth = 1 << 8; // currently unused
90 
91 const int effOpen = 0;
92 const int effClose = 1; // currently unused
93 const int effSetProgram = 2; // currently unused
94 const int effGetProgram = 3; // currently unused
95 // The next one was gleaned from http://www.kvraudio.com/forum/viewtopic.php?p=1905347
96 const int effSetProgramName = 4;
97 const int effGetProgramName = 5; // currently unused
98 // The next two were gleaned from http://www.kvraudio.com/forum/viewtopic.php?p=1905347
99 const int effGetParamLabel = 6;
100 const int effGetParamDisplay = 7;
101 const int effGetParamName = 8; // currently unused
102 const int effSetSampleRate = 10;
103 const int effSetBlockSize = 11;
104 const int effMainsChanged = 12;
105 const int effEditGetRect = 13;
106 const int effEditOpen = 14;
107 const int effEditClose = 15;
108 const int effEditIdle = 19;
109 const int effEditTop = 20;
110 const int effIdentify = 22; // from http://www.asseca.org/vst-24-specs/efIdentify.html
111 const int effGetChunk = 23; // from Ardour
112 const int effSetChunk = 24; // from Ardour
113 const int effProcessEvents = 25;
114 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efCanBeAutomated.html
115 const int effCanBeAutomated = 26;
116 // The next one was gleaned from http://www.kvraudio.com/forum/viewtopic.php?p=1905347
118 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efGetPlugCategory.html
119 const int effGetPlugCategory = 35;
120 const int effGetEffectName = 45;
121 const int effGetParameterProperties = 56; // missing
122 const int effGetVendorString = 47;
123 const int effGetProductString = 48;
124 const int effGetVendorVersion = 49;
125 const int effCanDo = 51; // currently unused
126 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efIdle.html
127 const int effIdle = 53;
128 const int effGetVstVersion = 58; // currently unused
129 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efBeginSetProgram.html
130 const int effBeginSetProgram = 67;
131 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efEndSetProgram.html
132 const int effEndSetProgram = 68;
133 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efShellGetNextPlugin.html
134 const int effShellGetNextPlugin = 70;
135 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efBeginLoadBank.html
136 const int effBeginLoadBank = 75;
137 // The next one was gleaned from http://www.asseca.org/vst-24-specs/efBeginLoadProgram.html
138 const int effBeginLoadProgram = 76;
139 
140 // The next two were gleaned from http://www.kvraudio.com/forum/printview.php?t=143587&start=0
141 const int effStartProcess = 71;
142 const int effStopProcess = 72;
143 
144 const int kEffectMagic = CCONST( 'V', 's', 't', 'P' );
145 const int kVstLangEnglish = 1;
146 const int kVstMidiType = 1;
147 
148 const int kVstNanosValid = 1 << 8;
149 const int kVstPpqPosValid = 1 << 9;
150 const int kVstTempoValid = 1 << 10;
151 const int kVstBarsValid = 1 << 11;
152 const int kVstCyclePosValid = 1 << 12;
153 const int kVstTimeSigValid = 1 << 13;
154 const int kVstSmpteValid = 1 << 14; // from Ardour
155 const int kVstClockValid = 1 << 15; // from Ardour
156 
157 const int kVstTransportPlaying = 1 << 1;
158 const int kVstTransportCycleActive = 1 << 2;
159 const int kVstTransportChanged = 1;
160 
161 
162 class RemoteVstPlugin;
163 
164 
166 {
167 public:
168  // 00
169  int type;
170  // 04
171  int byteSize;
172  // 08
174  // 0c?
175  int flags;
176  // 10?
178  // 14?
180  // 18
181  char midiData[4];
182  // 1c?
183  char detune;
184  // 1d?
186  // 1e?
187  char reserved1;
188  // 1f?
189  char reserved2;
190 
191 } ;
192 
193 
194 
195 
196 class VstEvent
197 {
198  char dump[sizeof( VstMidiEvent )];
199 
200 } ;
201 
202 
203 
204 
206 {
207 public:
208  // 00
210  // 04
211  void *reserved;
212  // 08
214 
215 } ;
216 
217 
218 
219 
220 // Not finished, neither really used
222 {
223 public:
224 /* float stepFloat;
225  char label[64];
226  int flags;
227  int minInteger;
228  int maxInteger;
229  int stepInteger;
230  char shortLabel[8];
231  int category;
232  char categoryLabel[24];
233  char empty[128];*/
234 
235  float stepFloat;
238  char label[64];
239  unsigned int flags;
240  unsigned int minInteger;
241  unsigned int maxInteger;
242  unsigned int stepInteger;
243  unsigned int largeStepInteger;
244  char shortLabel[8];
245  unsigned short displayIndex;
246  unsigned short category;
247  unsigned short numParametersInCategory;
248  unsigned short reserved;
249  char categoryLabel[24];
250  char future[16];
251 
252 } ;
253 
254 
255 #include <stdint.h>
256 
257 class AEffect
258 {
259 public:
260  // Never use virtual functions!!!
261  // 00-03
262  int magic;
263  // dispatcher 04-07
264  intptr_t (* dispatcher)( AEffect * , int , int , intptr_t, void * , float );
265  // process, quite sure 08-0b
266  void (* process)( AEffect * , float * * , float * * , int );
267  // setParameter 0c-0f
268  void (* setParameter)( AEffect * , int , float );
269  // getParameter 10-13
270  float (* getParameter)( AEffect * , int );
271  // programs 14-17
273  // Params 18-1b
275  // Input 1c-1f
277  // Output 20-23
279  // flags 24-27
280  int flags;
281  // Fill somewhere 28-2b
282  void * ptr1;
283  void * ptr2;
285  // Zeroes 34-37 38-3b
286  int empty3a;
287  int empty3b;
288  // 1.0f 3c-3f
290  // An object? pointer 40-43
291  void *ptr3;
292  // Zeroes 44-47
293  void *user;
294  // Id 48-4b
295  int32_t uniqueID;
296  int32_t version;
297  // processReplacing 50-53
298  void (* processReplacing)( AEffect * , float * * , float * * , int );
299 
300 } ;
301 
302 
303 
304 
306 {
307 public:
308  // 00
309  double samplePos;
310  // 08
311  double sampleRate;
312  // 10
313  double nanoSeconds;
314  // 18
315  double ppqPos;
316  // 20?
317  double tempo;
318  // 28
319  double barStartPos;
320  // 30?
322  // 38?
323  double cycleEndPos;
324  // 40?
326  // 44?
328  // unconfirmed 48 4c 50
329  char empty3[4 + 4 + 4];
330  // 54
331  int flags;
332 
333 } ;
334 
335 
336 
337 typedef intptr_t (* audioMasterCallback)( AEffect * , int32_t, int32_t, intptr_t, void * , float );
338 
339 
340 // from http://www.asseca.org/vst-24-specs/efGetParameterProperties.html
342 {
343  kVstParameterIsSwitch = 1 << 0, // parameter is a switch (on/off)
344  kVstParameterUsesIntegerMinMax = 1 << 1, // minInteger, maxInteger valid
345  kVstParameterUsesFloatStep = 1 << 2, // stepFloat, smallStepFloat, largeStepFloat valid
346  kVstParameterUsesIntStep = 1 << 3, // stepInteger, largeStepInteger valid
347  kVstParameterSupportsDisplayIndex = 1 << 4, // displayIndex valid
348  kVstParameterSupportsDisplayCategory = 1 << 5, // category, etc. valid
349  kVstParameterCanRamp = 1 << 6 // set if parameter value can ramp up/down
350 };
351 
352 // from http://www.asseca.org/vst-24-specs/efBeginLoadProgram.html
354 {
355  int32_t version; // Format Version (should be 1)
356  int32_t pluginUniqueID; // UniqueID of the plug-in
357  int32_t pluginVersion; // Plug-in Version
358  int32_t numElements; // Number of Programs (Bank) or Parameters (Program)
359  char future[48]; // Reserved for future use
360 };
361 
362 // from http://www.asseca.org/vst-24-specs/efGetPlugCategory.html
364 {
365  kPlugCategUnknown = 0, // 0=Unknown, category not implemented
366  kPlugCategEffect, // 1=Simple Effect
367  kPlugCategSynth, // 2=VST Instrument (Synths, samplers,...)
368  kPlugCategAnalysis, // 3=Scope, Tuner, ...
369  kPlugCategMastering, // 4=Dynamics, ...
370  kPlugCategSpacializer, // 5=Panners, ...
371  kPlugCategRoomFx, // 6=Delays and Reverbs
372  kPlugSurroundFx, // 7=Dedicated surround processor
373  kPlugCategRestoration, // 8=Denoiser, ...
374  kPlugCategOfflineProcess, // 9=Offline Process
375  kPlugCategShell, // 10=Plug-in is container of other plug-ins @see effShellGetNextPlugin()
376  kPlugCategGenerator, // 11=ToneGenerator, ...
377  kPlugCategMaxCount // 12=Marker to count the categories
378 };
379 
380 
381 
382 class VstRect
383 {
384 public:
385  short top;
386  short left;
387  short bottom;
388  short right;
389 } ;
390 
391 #endif
const int audioMasterGetSampleRate
Definition: aeffectx.h:50
Definition: aeffectx.h:349
Definition: aeffectx.h:257
void * user
Definition: aeffectx.h:293
const int audioMasterOpenFileSelector
Definition: aeffectx.h:80
unsigned int maxInteger
Definition: aeffectx.h:241
const int effSetProgram
Definition: aeffectx.h:93
const int audioMasterProcessEvents
Definition: aeffectx.h:42
Definition: aeffectx.h:373
const int audioMasterGetVendorVersion
Definition: aeffectx.h:69
const int effStopProcess
Definition: aeffectx.h:142
const int audioMasterWillReplaceOrAccumulate
Definition: aeffectx.h:56
const int kVstTransportChanged
Definition: aeffectx.h:159
const int kVstLangEnglish
Definition: aeffectx.h:145
const int effGetParameterProperties
Definition: aeffectx.h:121
Definition: aeffectx.h:353
VstEvent * events[1]
Definition: aeffectx.h:213
Definition: aeffectx.h:369
const int audioMasterBeginEdit
Definition: aeffectx.h:78
Definition: aeffectx.h:382
Definition: aeffectx.h:366
const int audioMasterVendorSpecific
Definition: aeffectx.h:70
Definition: aeffectx.h:365
const int effOpen
Definition: aeffectx.h:91
int32_t pluginUniqueID
Definition: aeffectx.h:356
intptr_t(* audioMasterCallback)(AEffect *, int32_t, int32_t, intptr_t, void *, float)
Definition: aeffectx.h:337
const int effGetEffectName
Definition: aeffectx.h:120
const int audioMasterCloseFileSelector
Definition: aeffectx.h:81
Definition: aeffectx.h:345
const int effClose
Definition: aeffectx.h:92
Definition: aeffectx.h:377
float smallStepFloat
Definition: aeffectx.h:236
const int effSetProgramName
Definition: aeffectx.h:96
const int audioMasterGetPreviousPlug
Definition: aeffectx.h:54
const int kVstTransportPlaying
Definition: aeffectx.h:157
void(* setParameter)(AEffect *, int, float)
Definition: aeffectx.h:268
const int audioMasterGetDirectory
Definition: aeffectx.h:76
const int audioMasterCurrentId
Definition: aeffectx.h:36
char dump[sizeof(VstMidiEvent)]
Definition: aeffectx.h:198
const int effEditOpen
Definition: aeffectx.h:106
const int effGetProgramNameIndexed
Definition: aeffectx.h:117
const int audioMasterTempoAt
Definition: aeffectx.h:44
const int kVstSmpteValid
Definition: aeffectx.h:154
void * reserved
Definition: aeffectx.h:211
intptr_t(* dispatcher)(AEffect *, int, int, intptr_t, void *, float)
Definition: aeffectx.h:264
const int audioMasterGetInputSpeakerArrangement
Definition: aeffectx.h:84
unsigned int stepInteger
Definition: aeffectx.h:242
const int audioMasterGetCurrentProcessLevel
Definition: aeffectx.h:57
const int audioMasterEditFile
Definition: aeffectx.h:82
double nanoSeconds
Definition: aeffectx.h:313
unsigned short category
Definition: aeffectx.h:246
int noteLength
Definition: aeffectx.h:177
const int kVstCyclePosValid
Definition: aeffectx.h:152
const int audioMasterVersion
Definition: aeffectx.h:35
const int effShellGetNextPlugin
Definition: aeffectx.h:134
const int effMainsChanged
Definition: aeffectx.h:104
float unkown_float
Definition: aeffectx.h:289
int magic
Definition: aeffectx.h:262
Definition: aeffectx.h:371
char reserved1
Definition: aeffectx.h:187
const int effGetProductString
Definition: aeffectx.h:123
const int effIdle
Definition: aeffectx.h:127
const int audioMasterSizeWindow
Definition: aeffectx.h:49
const int audioMasterOfflineStart
Definition: aeffectx.h:59
void * ptr2
Definition: aeffectx.h:283
char future[48]
Definition: aeffectx.h:359
int type
Definition: aeffectx.h:169
void(* processReplacing)(AEffect *, float **, float **, int)
Definition: aeffectx.h:298
const int effFlagsHasEditor
Definition: aeffectx.h:86
double barStartPos
Definition: aeffectx.h:319
const int effProcessEvents
Definition: aeffectx.h:113
int numOutputs
Definition: aeffectx.h:278
const int kVstClockValid
Definition: aeffectx.h:155
float stepFloat
Definition: aeffectx.h:235
const int kVstMidiType
Definition: aeffectx.h:146
const int effEditIdle
Definition: aeffectx.h:108
const int kVstPpqPosValid
Definition: aeffectx.h:149
const int effGetParamDisplay
Definition: aeffectx.h:100
const int audioMasterPinConnected
Definition: aeffectx.h:38
const int effGetVendorString
Definition: aeffectx.h:122
unsigned int minInteger
Definition: aeffectx.h:240
char noteOffVelocity
Definition: aeffectx.h:185
Definition: aeffectx.h:196
char midiData[4]
Definition: aeffectx.h:181
int numParams
Definition: aeffectx.h:274
const int audioMasterOfflineGetCurrentPass
Definition: aeffectx.h:62
void * ptr3
Definition: aeffectx.h:291
int32_t uniqueID
Definition: aeffectx.h:295
void(* process)(AEffect *, float **, float **, int)
Definition: aeffectx.h:266
const int audioMasterAutomate
Definition: aeffectx.h:34
int numPrograms
Definition: aeffectx.h:272
Definition: aeffectx.h:165
Definition: aeffectx.h:221
const int audioMasterOfflineGetCurrentMetaPass
Definition: aeffectx.h:63
const int audioMasterGetBlockSize
Definition: aeffectx.h:51
short left
Definition: aeffectx.h:386
const int audioMasterGetSpeakerArrangement
Definition: aeffectx.h:66
Definition: aeffectx.h:367
const int effGetParamLabel
Definition: aeffectx.h:99
VstPlugCategory
Definition: aeffectx.h:363
unsigned short displayIndex
Definition: aeffectx.h:245
const int audioMasterGetLanguage
Definition: aeffectx.h:73
const int effBeginSetProgram
Definition: aeffectx.h:130
char detune
Definition: aeffectx.h:183
const int effBeginLoadBank
Definition: aeffectx.h:136
int32_t version
Definition: aeffectx.h:296
int byteSize
Definition: aeffectx.h:171
const int effStartProcess
Definition: aeffectx.h:141
short right
Definition: aeffectx.h:388
unsigned int largeStepInteger
Definition: aeffectx.h:243
Definition: aeffectx.h:347
const int effBeginLoadProgram
Definition: aeffectx.h:138
const int audioMasterSetIcon
Definition: aeffectx.h:71
const int audioMasterIdle
Definition: aeffectx.h:37
const int effGetProgram
Definition: aeffectx.h:94
const int audioMasterNeedIdle
Definition: aeffectx.h:48
char shortLabel[8]
Definition: aeffectx.h:244
unsigned short reserved
Definition: aeffectx.h:248
const int audioMasterOfflineWrite
Definition: aeffectx.h:61
const int effSetChunk
Definition: aeffectx.h:112
int timeSigDenominator
Definition: aeffectx.h:327
const int audioMasterGetAutomationState
Definition: aeffectx.h:58
const int effCanDo
Definition: aeffectx.h:125
const int audioMasterSetOutputSampleRate
Definition: aeffectx.h:64
int numInputs
Definition: aeffectx.h:276
const int audioMasterGetNumAutomatableParameters
Definition: aeffectx.h:45
const int audioMasterSetTime
Definition: aeffectx.h:43
const int effIdentify
Definition: aeffectx.h:110
const int effFlagsProgramChunks
Definition: aeffectx.h:88
unsigned int flags
Definition: aeffectx.h:239
Definition: aeffectx.h:374
void * ptr1
Definition: aeffectx.h:282
const int effGetVstVersion
Definition: aeffectx.h:128
const int kVstBarsValid
Definition: aeffectx.h:151
char categoryLabel[24]
Definition: aeffectx.h:249
const int kVstTimeSigValid
Definition: aeffectx.h:153
const int audioMasterUpdateDisplay
Definition: aeffectx.h:77
Definition: aeffectx.h:343
const int effSetBlockSize
Definition: aeffectx.h:103
unsigned short numParametersInCategory
Definition: aeffectx.h:247
double ppqPos
Definition: aeffectx.h:315
const int audioMasterWantMidi
Definition: aeffectx.h:40
const int effEditClose
Definition: aeffectx.h:107
const int kEffectMagic
Definition: aeffectx.h:144
#define CCONST(a, b, c, d)
Definition: aeffectx.h:29
int32_t numElements
Definition: aeffectx.h:358
const int effFlagsCanReplacing
Definition: aeffectx.h:87
const int audioMasterCanDo
Definition: aeffectx.h:72
double tempo
Definition: aeffectx.h:317
int deltaFrames
Definition: aeffectx.h:173
int flags
Definition: aeffectx.h:331
const int audioMasterGetOutputLatency
Definition: aeffectx.h:53
const int effGetVendorVersion
Definition: aeffectx.h:124
const int kVstTransportCycleActive
Definition: aeffectx.h:158
Definition: aeffectx.h:205
char empty3[4+4+4]
Definition: aeffectx.h:329
const int effEditGetRect
Definition: aeffectx.h:105
const int audioMasterIOChanged
Definition: aeffectx.h:47
const int audioMasterOfflineRead
Definition: aeffectx.h:60
double cycleEndPos
Definition: aeffectx.h:323
short top
Definition: aeffectx.h:385
const int effGetPlugCategory
Definition: aeffectx.h:119
Definition: aeffectx.h:348
const int effSetSampleRate
Definition: aeffectx.h:102
int32_t pluginVersion
Definition: aeffectx.h:357
int numEvents
Definition: aeffectx.h:209
Definition: aeffectx.h:368
char label[64]
Definition: aeffectx.h:238
Definition: aeffectx.h:376
const int effEndSetProgram
Definition: aeffectx.h:132
Definition: aeffectx.h:346
int flags
Definition: aeffectx.h:175
const int audioMasterGetParameterQuantization
Definition: aeffectx.h:46
Definition: aeffectx.h:372
const int effGetChunk
Definition: aeffectx.h:111
const int audioMasterGetVendorString
Definition: aeffectx.h:67
int empty3a
Definition: aeffectx.h:286
Definition: aeffectx.h:370
const int effGetProgramName
Definition: aeffectx.h:97
int initialDelay
Definition: aeffectx.h:284
const int effEditTop
Definition: aeffectx.h:109
float(* getParameter)(AEffect *, int)
Definition: aeffectx.h:270
int noteOffset
Definition: aeffectx.h:179
double sampleRate
Definition: aeffectx.h:311
double samplePos
Definition: aeffectx.h:309
int flags
Definition: aeffectx.h:280
const int effFlagsIsSynth
Definition: aeffectx.h:89
const int audioMasterEndEdit
Definition: aeffectx.h:79
const int audioMasterGetProductString
Definition: aeffectx.h:68
short bottom
Definition: aeffectx.h:387
int32_t version
Definition: aeffectx.h:355
const int audioMasterGetTime
Definition: aeffectx.h:41
Definition: aeffectx.h:375
Definition: aeffectx.h:305
const int audioMasterGetNextPlug
Definition: aeffectx.h:55
const int audioMasterOpenWindow
Definition: aeffectx.h:74
float largeStepFloat
Definition: aeffectx.h:237
Definition: aeffectx.h:344
const int audioMasterCloseWindow
Definition: aeffectx.h:75
int empty3b
Definition: aeffectx.h:287
const int audioMasterGetInputLatency
Definition: aeffectx.h:52
VstParameterFlags
Definition: aeffectx.h:341
const int audioMasterGetChunkFile
Definition: aeffectx.h:83
const int effCanBeAutomated
Definition: aeffectx.h:115
double cycleStartPos
Definition: aeffectx.h:321
int timeSigNumerator
Definition: aeffectx.h:325
char reserved2
Definition: aeffectx.h:189
char future[16]
Definition: aeffectx.h:250
const int effGetParamName
Definition: aeffectx.h:101
const int kVstTempoValid
Definition: aeffectx.h:150
const int kVstNanosValid
Definition: aeffectx.h:148