JUCE
Classes | Macros | Typedefs | Enumerations | Functions | Variables
juce_VSTInterface.h File Reference

Classes

struct  VstEffectInterface
 Structure used for VSTs. More...
 
struct  AEffect
 
struct  VstEditorBounds
 Structure used for VSTs. More...
 
struct  ERect
 
struct  VstPinInfo
 Structure used for VSTs. More...
 
struct  VstPinProperties
 
struct  VstEvent
 Structure used for VSTs. More...
 
struct  VstEvents
 Structure used for VSTs. More...
 
struct  VstMidiEvent
 Structure used for VSTs. More...
 
struct  VstSysExEvent
 Structure used for VSTs. More...
 
struct  VstTimingInformation
 Structure used for VSTs. More...
 
struct  VstTimeInfo
 
struct  VstIndividualSpeakerInfo
 Structure used for VSTs. More...
 
struct  VstSpeakerConfiguration
 Structure used for VSTs. More...
 
struct  vst2FxBank
 Structure used for VSTs. More...
 

Macros

#define JUCE_VSTINTERFACE_H_INCLUDED
 
#define VSTINTERFACECALL
 
#define kVstVersion   2400
 
#define JUCE_MULTICHAR_CONSTANT(a, b, c, d)   (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24))
 

Typedefs

typedef int32 op
 
typedef int32 int32 index
 
typedef int32 int32 pointer_sized_int value
 
typedef int32 int32 pointer_sized_int void * ptr
 
typedef int32 int32 pointer_sized_int void float opt
 
typedef void(VSTINTERFACECALLAEffectProcessProc) (AEffect *, float **inputs, float **outputs, int32 numSamples)
 
typedef void(VSTINTERFACECALLAEffectProcessDoubleProc) (AEffect *, double **inputs, double **outputs, int32 numSamples)
 
typedef float(VSTINTERFACECALLAEffectGetParameterProc) (AEffect *, int32 parameterIndex)
 
typedef void(VSTINTERFACECALLAEffectSetParameterProc) (AEffect *, int32 parameterIndex, float value)
 
typedef pointer_sized_int(VSTINTERFACECALLVstHostCallback) (VstEffectInterface *, int32 op, int32 index, pointer_sized_int value, void *ptr, float opt)
 
typedef pointer_sized_int(VSTINTERFACECALLaudioMasterCallback) (AEffect *, int32 op, int32 index, pointer_sized_int value, void *ptr, float opt)
 
typedef VstSysExEvent VstMidiSysexEvent
 
typedef VstIndividualSpeakerInfo VstSpeakerProperties
 
typedef VstSpeakerConfiguration VstSpeakerArrangement
 

Enumerations

enum  VstEffectInterfaceFlags {
  vstEffectFlagHasEditor = 1, vstEffectFlagInplaceAudio = 16, vstEffectFlagDataInChunks = 32, vstEffectFlagIsSynth = 256,
  vstEffectFlagInplaceDoubleAudio = 4096, effFlagsHasEditor = vstEffectFlagHasEditor, effFlagsNoSoundInStop = 0, effFlagsProgramChunks = vstEffectFlagDataInChunks,
  effFlagsCanReplacing = vstEffectFlagInplaceAudio, effFlagsIsSynth = vstEffectFlagIsSynth, effFlagsCanDoubleReplacing = vstEffectFlagInplaceDoubleAudio
}
 
enum  VstHostToPlugInOpcodes {
  plugInOpcodeOpen, plugInOpcodeClose, plugInOpcodeSetCurrentProgram, plugInOpcodeGetCurrentProgram,
  plugInOpcodeSetCurrentProgramName, plugInOpcodeGetCurrentProgramName, plugInOpcodeGetParameterLabel, plugInOpcodeGetParameterText,
  plugInOpcodeGetParameterName, plugInOpcodeSetSampleRate = plugInOpcodeGetParameterName + 2, plugInOpcodeSetBlockSize, plugInOpcodeResumeSuspend,
  plugInOpcodeGetEditorBounds, plugInOpcodeOpenEditor, plugInOpcodeCloseEditor, plugInOpcodeDrawEditor,
  plugInOpcodeGetMouse, plugInOpcodeEditorIdle = plugInOpcodeGetMouse + 2, plugInOpcodeeffEditorTop, plugInOpcodeSleepEditor,
  plugInOpcodeIdentify, plugInOpcodeGetData, plugInOpcodeSetData, plugInOpcodePreAudioProcessingEvents,
  plugInOpcodeIsParameterAutomatable, plugInOpcodeParameterValueForText, plugInOpcodeGetProgramName = plugInOpcodeParameterValueForText + 2, plugInOpcodeConnectInput = plugInOpcodeGetProgramName + 2,
  plugInOpcodeConnectOutput, plugInOpcodeGetInputPinProperties, plugInOpcodeGetOutputPinProperties, plugInOpcodeGetPlugInCategory,
  plugInOpcodeSetSpeakerConfiguration = plugInOpcodeGetPlugInCategory + 7, plugInOpcodeSetBypass = plugInOpcodeSetSpeakerConfiguration + 2, plugInOpcodeGetPlugInName, plugInOpcodeGetManufacturerName = plugInOpcodeGetPlugInName + 2,
  plugInOpcodeGetManufacturerProductName, plugInOpcodeGetManufacturerVersion, plugInOpcodeManufacturerSpecific, plugInOpcodeCanPlugInDo,
  plugInOpcodeGetTailSize, plugInOpcodeIdle, plugInOpcodeKeyboardFocusRequired = plugInOpcodeIdle + 4, plugInOpcodeGetVstInterfaceVersion,
  plugInOpcodeGetCurrentMidiProgram = plugInOpcodeGetVstInterfaceVersion + 5, plugInOpcodeGetSpeakerArrangement = plugInOpcodeGetCurrentMidiProgram + 6, plugInOpcodeNextPlugInUniqueID, plugInOpcodeStartProcess,
  plugInOpcodeStopProcess, plugInOpcodeSetNumberOfSamplesToProcess, plugInOpcodeSetSampleFloatType = plugInOpcodeSetNumberOfSamplesToProcess + 4, pluginOpcodeGetNumMidiInputChannels,
  pluginOpcodeGetNumMidiOutputChannels, plugInOpcodeMaximum = pluginOpcodeGetNumMidiOutputChannels, effOpen = plugInOpcodeOpen, effClose = plugInOpcodeClose,
  effSetProgram = plugInOpcodeSetCurrentProgram, effGetProgram = plugInOpcodeGetCurrentProgram, effSetProgramName = plugInOpcodeSetCurrentProgramName, effGetProgramName = plugInOpcodeGetCurrentProgramName,
  effGetParamLabel = plugInOpcodeGetParameterLabel, effGetParamDisplay = plugInOpcodeGetParameterText, effGetParamName = plugInOpcodeGetParameterName, effSetSampleRate = plugInOpcodeSetSampleRate,
  effSetBlockSize = plugInOpcodeSetBlockSize, effMainsChanged = plugInOpcodeResumeSuspend, effEditGetRect = plugInOpcodeGetEditorBounds, effEditOpen = plugInOpcodeOpenEditor,
  effEditClose = plugInOpcodeCloseEditor, effIdentify = plugInOpcodeIdentify, effGetChunk = plugInOpcodeGetData, effSetChunk = plugInOpcodeSetData,
  effProcessEvents = plugInOpcodePreAudioProcessingEvents, effCanBeAutomated = plugInOpcodeIsParameterAutomatable, effString2Parameter = plugInOpcodeParameterValueForText, effGetProgramNameIndexed = plugInOpcodeGetProgramName,
  effGetInputProperties = plugInOpcodeGetInputPinProperties, effGetOutputProperties = plugInOpcodeGetOutputPinProperties, effGetPlugCategory = plugInOpcodeGetPlugInCategory, effSetSpeakerArrangement = plugInOpcodeSetSpeakerConfiguration,
  effSetBypass = plugInOpcodeSetBypass, effGetEffectName = plugInOpcodeGetPlugInName, effGetProductString = plugInOpcodeGetManufacturerProductName, effGetVendorString = plugInOpcodeGetManufacturerName,
  effGetVendorVersion = plugInOpcodeGetManufacturerVersion, effVendorSpecific = plugInOpcodeManufacturerSpecific, effCanDo = plugInOpcodeCanPlugInDo, effGetTailSize = plugInOpcodeGetTailSize,
  effKeysRequired = plugInOpcodeKeyboardFocusRequired, effGetVstVersion = plugInOpcodeGetVstInterfaceVersion, effGetCurrentMidiProgram = plugInOpcodeGetCurrentMidiProgram, effGetSpeakerArrangement = plugInOpcodeGetSpeakerArrangement,
  effSetTotalSampleToProcess = plugInOpcodeSetNumberOfSamplesToProcess, effSetProcessPrecision = plugInOpcodeSetSampleFloatType, effGetNumMidiInputChannels = pluginOpcodeGetNumMidiInputChannels, effGetNumMidiOutputChannels = pluginOpcodeGetNumMidiOutputChannels
}
 
enum  VstPlugInToHostOpcodes {
  hostOpcodeParameterChanged, hostOpcodeVstVersion, hostOpcodeCurrentId, hostOpcodeIdle,
  hostOpcodePinConnected, hostOpcodePlugInWantsMidi = hostOpcodePinConnected + 2, hostOpcodeGetTimingInfo, hostOpcodePreAudioProcessingEvents,
  hostOpcodeSetTime, hostOpcodeTempoAt, hostOpcodeGetNumberOfAutomatableParameters, hostOpcodeGetParameterInterval,
  hostOpcodeIOModified, hostOpcodeNeedsIdle, hostOpcodeWindowSize, hostOpcodeGetSampleRate,
  hostOpcodeGetBlockSize, hostOpcodeGetInputLatency, hostOpcodeGetOutputLatency, hostOpcodeGetPreviousPlugIn,
  hostOpcodeGetNextPlugIn, hostOpcodeWillReplace, hostOpcodeGetCurrentAudioProcessingLevel, hostOpcodeGetAutomationState,
  hostOpcodeOfflineStart, hostOpcodeOfflineReadSource, hostOpcodeOfflineWrite, hostOpcodeOfflineGetCurrentPass,
  hostOpcodeOfflineGetCurrentMetaPass, hostOpcodeSetOutputSampleRate, hostOpcodeGetOutputSpeakerConfiguration, hostOpcodeGetManufacturerName,
  hostOpcodeGetProductName, hostOpcodeGetManufacturerVersion, hostOpcodeManufacturerSpecific, hostOpcodeSetIcon,
  hostOpcodeCanHostDo, hostOpcodeGetLanguage, hostOpcodeOpenEditorWindow, hostOpcodeCloseEditorWindow,
  hostOpcodeGetDirectory, hostOpcodeUpdateView, hostOpcodeParameterChangeGestureBegin, hostOpcodeParameterChangeGestureEnd,
  audioMasterProcessEvents = hostOpcodePreAudioProcessingEvents, audioMasterWantMidi = hostOpcodePlugInWantsMidi, audioMasterVendorSpecific = hostOpcodeManufacturerSpecific, audioMasterAutomate = hostOpcodeParameterChanged,
  audioMasterBeginEdit = hostOpcodeParameterChangeGestureBegin, audioMasterEndEdit = hostOpcodeParameterChangeGestureEnd, audioMasterUpdateDisplay = hostOpcodeUpdateView, audioMasterIOChanged = hostOpcodeIOModified,
  audioMasterCanDo = hostOpcodeCanHostDo, audioMasterGetCurrentProcessLevel = hostOpcodeGetCurrentAudioProcessingLevel, audioMasterGetTime = hostOpcodeGetTimingInfo, audioMasterSizeWindow = hostOpcodeWindowSize,
  audioMasterVersion = hostOpcodeVstVersion
}
 
enum  VstProcessingSampleType { vstProcessingSampleTypeFloat, vstProcessingSampleTypeDouble, kVstProcessPrecision64 = vstProcessingSampleTypeDouble }
 
enum  VstPlugInCategory {
  kPlugCategUnknown, kPlugCategEffect, kPlugCategSynth, kPlugCategAnalysis,
  kPlugCategMastering, kPlugCategSpacializer, kPlugCategRoomFx, kPlugSurroundFx,
  kPlugCategRestoration, kPlugCategOfflineProcess, kPlugCategShell, kPlugCategGenerator
}
 
enum  VstMaxStringLengths {
  vstMaxNameLength = 64, vstMaxParameterOrPinLabelLength = 64, vstMaxParameterOrPinShortLabelLength = 8, vstMaxCategoryLength = 24,
  vstMaxManufacturerStringLength = 64, vstMaxPlugInNameStringLength = 64, kVstMaxLabelLen = vstMaxParameterOrPinLabelLength, kVstMaxShortLabelLen = vstMaxParameterOrPinShortLabelLength
}
 
enum  VstPinInfoFlags {
  vstPinInfoFlagIsActive = 1, vstPinInfoFlagIsStereo = 2, vstPinInfoFlagValid = 4, kVstPinIsActive = vstPinInfoFlagIsActive,
  kVstPinUseSpeaker = vstPinInfoFlagValid, kVstPinIsStereo = vstPinInfoFlagIsStereo
}
 
enum  VstEventTypes { vstMidiEventType = 1, vstSysExEventType = 6, kVstMidiType = vstMidiEventType, kVstSysExType = vstSysExEventType }
 
enum  VstMidiEventFlags { vstMidiEventIsRealtime = 1 }
 
enum  VstTimingInformationFlags {
  vstTimingInfoFlagTransportChanged = 1, vstTimingInfoFlagCurrentlyPlaying = 2, vstTimingInfoFlagLoopActive = 4, vstTimingInfoFlagCurrentlyRecording = 8,
  vstTimingInfoFlagAutomationWriteModeActive = 64, vstTimingInfoFlagAutomationReadModeActive = 128, vstTimingInfoFlagNanosecondsValid = 256, vstTimingInfoFlagMusicalPositionValid = 512,
  vstTimingInfoFlagTempoValid = 1024, vstTimingInfoFlagLastBarPositionValid = 2048, vstTimingInfoFlagLoopPositionValid = 4096, vstTimingInfoFlagTimeSignatureValid = 8192,
  vstTimingInfoFlagSmpteValid = 16384, vstTimingInfoFlagNearestClockValid = 32768, kVstTransportPlaying = vstTimingInfoFlagCurrentlyPlaying, kVstTransportCycleActive = vstTimingInfoFlagLoopActive,
  kVstTransportRecording = vstTimingInfoFlagCurrentlyRecording, kVstPpqPosValid = vstTimingInfoFlagMusicalPositionValid, kVstTempoValid = vstTimingInfoFlagTempoValid, kVstBarsValid = vstTimingInfoFlagLastBarPositionValid,
  kVstCyclePosValid = vstTimingInfoFlagLoopPositionValid, kVstTimeSigValid = vstTimingInfoFlagTimeSignatureValid, kVstSmpteValid = vstTimingInfoFlagSmpteValid, kVstClockValid = vstTimingInfoFlagNearestClockValid
}
 
enum  VstSmpteRates {
  vstSmpteRateFps24, vstSmpteRateFps25, vstSmpteRateFps2997, vstSmpteRateFps30,
  vstSmpteRateFps2997drop, vstSmpteRateFps30drop, vstSmpteRate16mmFilm, vstSmpteRate35mmFilm,
  vstSmpteRateFps239 = vstSmpteRate35mmFilm + 3, vstSmpteRateFps249, vstSmpteRateFps599, vstSmpteRateFps60,
  kVstSmpte239fps = vstSmpteRateFps239, kVstSmpte24fps = vstSmpteRateFps24, kVstSmpte25fps = vstSmpteRateFps25, kVstSmpte2997fps = vstSmpteRateFps2997,
  kVstSmpte30fps = vstSmpteRateFps30, kVstSmpte2997dfps = vstSmpteRateFps2997drop, kVstSmpte30dfps = vstSmpteRateFps30drop, kVstSmpteFilm16mm = vstSmpteRate16mmFilm,
  kVstSmpteFilm35mm = vstSmpteRate35mmFilm, kVstSmpte249fps = vstSmpteRateFps249, kVstSmpte599fps = vstSmpteRateFps599, kVstSmpte60fps = vstSmpteRateFps60
}
 
enum  VstIndividualSpeakerType {
  vstIndividualSpeakerTypeUndefined = 0x7fffffff, vstIndividualSpeakerTypeMono = 0, vstIndividualSpeakerTypeLeft, vstIndividualSpeakerTypeRight,
  vstIndividualSpeakerTypeCentre, vstIndividualSpeakerTypeLFE, vstIndividualSpeakerTypeLeftSurround, vstIndividualSpeakerTypeRightSurround,
  vstIndividualSpeakerTypeLeftCentre, vstIndividualSpeakerTypeRightCentre, vstIndividualSpeakerTypeSurround, vstIndividualSpeakerTypeCentreSurround = vstIndividualSpeakerTypeSurround,
  vstIndividualSpeakerTypeLeftRearSurround, vstIndividualSpeakerTypeRightRearSurround, vstIndividualSpeakerTypeTopMiddle, vstIndividualSpeakerTypeTopFrontLeft,
  vstIndividualSpeakerTypeTopFrontCentre, vstIndividualSpeakerTypeTopFrontRight, vstIndividualSpeakerTypeTopRearLeft, vstIndividualSpeakerTypeTopRearCentre,
  vstIndividualSpeakerTypeTopRearRight, vstIndividualSpeakerTypeLFE2, kSpeakerL = vstIndividualSpeakerTypeLeft, kSpeakerR = vstIndividualSpeakerTypeRight,
  kSpeakerC = vstIndividualSpeakerTypeCentre, kSpeakerLfe = vstIndividualSpeakerTypeLFE, kSpeakerLs = vstIndividualSpeakerTypeLeftSurround, kSpeakerRs = vstIndividualSpeakerTypeRightSurround,
  kSpeakerLc = vstIndividualSpeakerTypeLeftCentre, kSpeakerRc = vstIndividualSpeakerTypeRightCentre, kSpeakerS = vstIndividualSpeakerTypeSurround, kSpeakerSl = vstIndividualSpeakerTypeLeftRearSurround,
  kSpeakerSr = vstIndividualSpeakerTypeRightRearSurround, kSpeakerTm = vstIndividualSpeakerTypeTopMiddle, kSpeakerTfl = vstIndividualSpeakerTypeTopFrontLeft, kSpeakerTfc = vstIndividualSpeakerTypeTopFrontCentre,
  kSpeakerTfr = vstIndividualSpeakerTypeTopFrontRight, kSpeakerTrl = vstIndividualSpeakerTypeTopRearLeft, kSpeakerTrc = vstIndividualSpeakerTypeTopRearCentre, kSpeakerTrr = vstIndividualSpeakerTypeTopRearRight,
  kSpeakerLfe2 = vstIndividualSpeakerTypeLFE2
}
 
enum  VstSpeakerConfigurationType {
  vstSpeakerConfigTypeUser = -2, vstSpeakerConfigTypeEmpty = -1, vstSpeakerConfigTypeMono = 0, vstSpeakerConfigTypeLR,
  vstSpeakerConfigTypeLsRs, vstSpeakerConfigTypeLcRc, vstSpeakerConfigTypeSlSr, vstSpeakerConfigTypeCLfe,
  vstSpeakerConfigTypeLRC, vstSpeakerConfigTypeLRS, vstSpeakerConfigTypeLRCLfe, vstSpeakerConfigTypeLRLfeS,
  vstSpeakerConfigTypeLRCS, vstSpeakerConfigTypeLRLsRs, vstSpeakerConfigTypeLRCLfeS, vstSpeakerConfigTypeLRLfeLsRs,
  vstSpeakerConfigTypeLRCLsRs, vstSpeakerConfigTypeLRCLfeLsRs, vstSpeakerConfigTypeLRCLsRsCs, vstSpeakerConfigTypeLRLsRsSlSr,
  vstSpeakerConfigTypeLRCLfeLsRsCs, vstSpeakerConfigTypeLRLfeLsRsSlSr, vstSpeakerConfigTypeLRCLsRsLcRc, vstSpeakerConfigTypeLRCLsRsSlSr,
  vstSpeakerConfigTypeLRCLfeLsRsLcRc, vstSpeakerConfigTypeLRCLfeLsRsSlSr, vstSpeakerConfigTypeLRCLsRsLcRcCs, vstSpeakerConfigTypeLRCLsRsCsSlSr,
  vstSpeakerConfigTypeLRCLfeLsRsLcRcCs, vstSpeakerConfigTypeLRCLfeLsRsCsSlSr, vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2, kSpeakerArrMono = vstSpeakerConfigTypeMono,
  kSpeakerArrStereo = vstSpeakerConfigTypeLR, kSpeakerArrStereoCLfe = vstSpeakerConfigTypeCLfe, kSpeakerArrStereoCenter = vstSpeakerConfigTypeLcRc, kSpeakerArrStereoSide = vstSpeakerConfigTypeSlSr,
  kSpeakerArrStereoSurround = vstSpeakerConfigTypeLsRs, kSpeakerArr30Cine = vstSpeakerConfigTypeLRC, kSpeakerArr31Cine = vstSpeakerConfigTypeLRCLfe, kSpeakerArr40Cine = vstSpeakerConfigTypeLRCS,
  kSpeakerArr41Cine = vstSpeakerConfigTypeLRCLfeS, kSpeakerArr60Cine = vstSpeakerConfigTypeLRCLsRsCs, kSpeakerArr61Cine = vstSpeakerConfigTypeLRCLfeLsRsCs, kSpeakerArr70Cine = vstSpeakerConfigTypeLRCLsRsLcRc,
  kSpeakerArr71Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRc, kSpeakerArr80Cine = vstSpeakerConfigTypeLRCLsRsLcRcCs, kSpeakerArr81Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRcCs, kSpeakerArr30Music = vstSpeakerConfigTypeLRS,
  kSpeakerArr31Music = vstSpeakerConfigTypeLRLfeS, kSpeakerArr40Music = vstSpeakerConfigTypeLRLsRs, kSpeakerArr41Music = vstSpeakerConfigTypeLRLfeLsRs, kSpeakerArr60Music = vstSpeakerConfigTypeLRLsRsSlSr,
  kSpeakerArr61Music = vstSpeakerConfigTypeLRLfeLsRsSlSr, kSpeakerArr70Music = vstSpeakerConfigTypeLRCLsRsSlSr, kSpeakerArr71Music = vstSpeakerConfigTypeLRCLfeLsRsSlSr, kSpeakerArr80Music = vstSpeakerConfigTypeLRCLsRsCsSlSr,
  kSpeakerArr81Music = vstSpeakerConfigTypeLRCLfeLsRsCsSlSr, kSpeakerArr50 = vstSpeakerConfigTypeLRCLsRs, kSpeakerArr51 = vstSpeakerConfigTypeLRCLfeLsRs, kSpeakerArr102 = vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2,
  kSpeakerArrEmpty = vstSpeakerConfigTypeEmpty, kSpeakerArrUserDefined = vstSpeakerConfigTypeUser
}
 
enum  PresonusExtensionConstants { presonusVendorID = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'), presonusSetContentScaleFactor = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's') }
 

Functions

typedef pointer_sized_int (VSTINTERFACECALL *AEffectDispatcherProc)(AEffect *
 

Variables

const int32 juceVstInterfaceVersion = 2400
 
const int32 juceVstInterfaceIdentifier = 0x56737450