- Main Page
- Namespaces
- Classes
- Files
- Directories
- Related Pages

- File List
- File Members

# aeffect.h File Reference

`#include <string.h>`
`#include <stdint.h>`

## Classes
struct | AEffect
struct | ERect
## Defines
#define | VSTCALLBACK
#define | VST_2_1_EXTENSIONS 1
| Version 2.1 extensions (08-06-2000).
#define | VST_2_2_EXTENSIONS 1
| Version 2.2 extensions (08-06-2001).
#define | VST_2_3_EXTENSIONS 1
| Version 2.3 extensions (20-05-2003).
#define | kVstVersion 2400
#define | VST_FORCE_DEPRECATED VST_2_4_EXTENSIONS
#define | DECLARE_VST_DEPRECATED(identifier) __##identifier##Deprecated
#define | VST_64BIT_PLATFORM _WIN64 || __LP64__
#define | CCONST(a, b, c, d) ((((VstInt32)a) << 24) | (((VstInt32)b) << 16) | (((VstInt32)c) << 8) | (((VstInt32)d) << 0))
#define | kEffectMagic CCONST ('V', 's', 't', 'P')
## Typedefs
typedef int16_t | VstInt16
| 16 bit integer type
typedef int32_t | VstInt32
| 32 bit integer type
typedef int64_t | VstInt64
| 64 bit integer type
typedef VstInt32 | VstIntPtr
| platform-dependent integer type, same size as pointer
## Enumerations
enum | VstAEffectFlags { effFlagsHasEditor = 1 << 0, effFlagsCanReplacing = 1 << 4, effFlagsProgramChunks = 1 << 5, effFlagsIsSynth = 1 << 8, effFlagsNoSoundInStop = 1 << 9, effFlagsCanDoubleReplacing = 1 << 12, effFlagsHasClip = 1 << 1, effFlagsHasVu = 1 << 2, effFlagsCanMono = 1 << 3, effFlagsExtIsAsync = 1 << 10, effFlagsExtHasBuffer = 1 << 11 }
enum | AEffectOpcodes { effOpen = 0, effClose, effSetProgram, effGetProgram, effSetProgramName, effGetProgramName, effGetParamLabel, effGetParamDisplay, effGetParamName, effGetVu, effSetSampleRate, effSetBlockSize, effMainsChanged, effEditGetRect, effEditOpen, effEditClose, effEditDraw, effEditMouse, effEditKey, effEditIdle, effEditTop, effEditSleep, effIdentify, effGetChunk, effSetChunk, effNumOpcodes }
enum | AudioMasterOpcodes { audioMasterAutomate = 0, audioMasterVersion, audioMasterCurrentId, audioMasterIdle, audioMasterPinConnected }
enum | VstStringConstants { kVstMaxProgNameLen = 24, kVstMaxParamStrLen = 8, kVstMaxVendorStrLen = 64, kVstMaxProductStrLen = 64, kVstMaxEffectNameLen = 32 }
## Functions
char * | vst_strncpy (char *dst, const char *src, size_t maxLen)
char * | vst_strncat (char *dst, const char *src, size_t maxLen)
template<class T>
T * | FromVstPtr (VstIntPtr &arg)
template<class T>
VstIntPtr | ToVstPtr (T *ptr)

## Define Documentation

#define CCONST | ( | a,
|  | b,
|  | c,
|  | d |  | ) | ((((VstInt32)a) << 24) | (((VstInt32)b) << 16) | (((VstInt32)c) << 8) | (((VstInt32)d) << 0))

Four Character Constant (for AEffect->uniqueID)

#define DECLARE_VST_DEPRECATED | ( | identifier |  | ) | __##identifier##Deprecated

Declares identifier as deprecated.

#define kEffectMagic CCONST ('V', 's', 't', 'P')

AEffect magic number

#define kVstVersion 2400

Current VST Version

#define VST_2_1_EXTENSIONS 1

Version 2.1 extensions (08-06-2000).

Define SDK Version (you can generate different versions (from 2.0 to 2.4) of this SDK by setting the unwanted extensions to 0).

#define VST_2_2_EXTENSIONS 1

Version 2.2 extensions (08-06-2001).

#define VST_2_3_EXTENSIONS 1

Version 2.3 extensions (20-05-2003).

#define VST_64BIT_PLATFORM _WIN64 || __LP64__

Define for 64 Bit Platform.

#define VST_FORCE_DEPRECATED VST_2_4_EXTENSIONS

Disable for Hosts to serve Plug-ins below VST 2.4

#define VSTCALLBACK

## Typedef Documentation

typedef int16_t VstInt16

16 bit integer type

typedef int32_t VstInt32

32 bit integer type

typedef int64_t VstInt64

64 bit integer type

typedef VstInt32 VstIntPtr

platform-dependent integer type, same size as pointer

## Enumeration Type Documentation

enum AEffectOpcodes

Basic dispatcher Opcodes (Host to Plug-in)

Enumerator:

  effOpen | no arguments See also: AudioEffect::open
  effClose | no arguments See also: AudioEffect::close
  effSetProgram | [value]: new program number See also: AudioEffect::setProgram
  effGetProgram | [return value]: current program number See also: AudioEffect::getProgram
  effSetProgramName | [ptr]: char* with new program name, limited to kVstMaxProgNameLen See also: AudioEffect::setProgramName
  effGetProgramName | [ptr]: char buffer for current program name, limited to kVstMaxProgNameLen See also: AudioEffect::getProgramName
  effGetParamLabel | [ptr]: char buffer for parameter label, limited to kVstMaxParamStrLen See also: AudioEffect::getParameterLabel
  effGetParamDisplay | [ptr]: char buffer for parameter display, limited to kVstMaxParamStrLen See also: AudioEffect::getParameterDisplay
  effGetParamName | [ptr]: char buffer for parameter name, limited to kVstMaxParamStrLen See also: AudioEffect::getParameterName
  effGetVu | Deprecated: deprecated in VST 2.4
  effSetSampleRate | [opt]: new sample rate for audio processing See also: AudioEffect::setSampleRate
  effSetBlockSize | [value]: new maximum block size for audio processing See also: AudioEffect::setBlockSize
  effMainsChanged | [value]: 0 means "turn off", 1 means "turn on" See also: AudioEffect::suspend AudioEffect::resume
  effEditGetRect | [ptr]: ERect** receiving pointer to editor size See also: ERect AEffEditor::getRect
  effEditOpen | [ptr]: system dependent Window pointer, e.g. HWND on Windows See also: AEffEditor::open
  effEditClose | no arguments See also: AEffEditor::close
  effEditDraw | Deprecated: deprecated in VST 2.4
  effEditMouse | Deprecated: deprecated in VST 2.4
  effEditKey | Deprecated: deprecated in VST 2.4
  effEditIdle | no arguments See also: AEffEditor::idle
  effEditTop | Deprecated: deprecated in VST 2.4
  effEditSleep | Deprecated: deprecated in VST 2.4
  effIdentify | Deprecated: deprecated in VST 2.4
  effGetChunk | [ptr]: void** for chunk data address [index]: 0 for bank, 1 for program See also: AudioEffect::getChunk
  effSetChunk | [ptr]: chunk data [value]: byte size [index]: 0 for bank, 1 for program See also: AudioEffect::setChunk
  effNumOpcodes |

enum AudioMasterOpcodes

Basic dispatcher Opcodes (Plug-in to Host)

Enumerator:

  audioMasterAutomate | [index]: parameter index [opt]: parameter value See also: AudioEffect::setParameterAutomated
  audioMasterVersion | [return value]: Host VST version (for example 2400 for VST 2.4) See also: AudioEffect::getMasterVersion
  audioMasterCurrentId | [return value]: current unique identifier on shell plug-in See also: AudioEffect::getCurrentUniqueId
  audioMasterIdle | no arguments See also: AudioEffect::masterIdle
  audioMasterPinConnected | Deprecated: deprecated in VST 2.4 r2

enum VstAEffectFlags

AEffect flags

Enumerator:

  effFlagsHasEditor | set if the plug-in provides a custom editor
  effFlagsCanReplacing | supports replacing process mode (which should the default mode in VST 2.4)
  effFlagsProgramChunks | program data is handled in formatless chunks
  effFlagsIsSynth | plug-in is a synth (VSTi), Host may assign mixer channels for its outputs
  effFlagsNoSoundInStop | plug-in does not produce sound when input is all silence
  effFlagsCanDoubleReplacing | plug-in supports double precision processing
  effFlagsHasClip | Deprecated: deprecated in VST 2.4
  effFlagsHasVu | Deprecated: deprecated in VST 2.4
  effFlagsCanMono | Deprecated: deprecated in VST 2.4
  effFlagsExtIsAsync | Deprecated: deprecated in VST 2.4
  effFlagsExtHasBuffer | Deprecated: deprecated in VST 2.4

enum VstStringConstants

String length limits (in characters excl. 0 byte)

Enumerator:

  kVstMaxProgNameLen | used for effGetProgramName, effSetProgramName, effGetProgramNameIndexed
  kVstMaxParamStrLen | used for effGetParamLabel, effGetParamDisplay, effGetParamName
  kVstMaxVendorStrLen | used for effGetVendorString, audioMasterGetVendorString
  kVstMaxProductStrLen | used for effGetProductString, audioMasterGetProductString
  kVstMaxEffectNameLen | used for effGetEffectName

## Function Documentation

template<class T>

T* FromVstPtr | ( | VstIntPtr & | arg | ) | `[inline]`

Cast VstIntPtr to pointer.

template<class T>

VstIntPtr ToVstPtr | ( | T * | ptr | ) | `[inline]`

Cast pointer to VstIntPtr.

char* vst_strncat | ( | char * | dst,
|  | const char * | src,
|  | size_t | maxLen |
| ) |  |  | `[inline]`

String concatenation taking care of null terminator.

char* vst_strncpy | ( | char * | dst,
|  | const char * | src,
|  | size_t | maxLen |
| ) |  |  | `[inline]`

String copy taking care of null terminator.

Empty

Copyright ©2006 Steinberg Media Technologies. All Rights Reserved.