vst-fixes
authorIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Fri, 11 Jan 2019 23:44:27 +0000 (00:44 +0100)
committerIOhannes m zmölnig <zmoelnig@umlautS.umlaeute.mur.at>
Fri, 11 Jan 2019 23:44:27 +0000 (00:44 +0100)
Gbp-Dch: ignore

debian/extra/juce_audio_processors/format_types/juce_VSTInterface.h [new file with mode: 0644]
debian/missing-sources/juce_VSTInterface.h [deleted file]
debian/patches/debian_vst.patch
debian/rules

diff --git a/debian/extra/juce_audio_processors/format_types/juce_VSTInterface.h b/debian/extra/juce_audio_processors/format_types/juce_VSTInterface.h
new file mode 100644 (file)
index 0000000..490dd5b
--- /dev/null
@@ -0,0 +1,763 @@
+/*
+  ==============================================================================
+
+   This file is part of the JUCE library.
+   Copyright (c) 2017 - ROLI Ltd.
+
+   JUCE is an open source library subject to commercial or open-source
+   licensing.
+
+   By using JUCE, you agree to the terms of both the JUCE 5 End-User License
+   Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
+   27th April 2017).
+
+   End User License Agreement: www.juce.com/juce-5-licence
+   Privacy Policy: www.juce.com/juce-5-privacy-policy
+
+   Or: You may also use this code under the terms of the GPL v3 (see
+   www.gnu.org/licenses).
+
+   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
+   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
+   DISCLAIMED.
+
+  ==============================================================================
+*/
+
+/*
+  Copyright © 2019 IOhannes m zmölnig
+
+  Provide additional structs & enum-aliases, to allow compilation with JUCE-5.4.1
+
+  The names of the struct-members and enum-aliases have been derived by comparing
+  juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp of
+  both JUCE-5.3.2 and JUCE-5.4.1
+ */
+
+#define JUCE_VSTINTERFACE_H_INCLUDED
+
+using namespace juce;
+
+#if JUCE_MSVC
+ #define VSTINTERFACECALL __cdecl
+ #pragma pack(push)
+ #pragma pack(8)
+#elif JUCE_MAC || JUCE_IOS
+ #define VSTINTERFACECALL
+ #if JUCE_64BIT
+  #pragma options align=power
+ #else
+  #pragma options align=mac68k
+ #endif
+#else
+ #define VSTINTERFACECALL
+ #pragma pack(push, 8)
+#endif
+
+const int32 juceVstInterfaceVersion = 2400;
+#define kVstVersion 2400
+const int32 juceVstInterfaceIdentifier = 0x56737450;    // The "magic" identifier in the SDK is 'VstP'.
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstEffectInterface
+{
+    int32 interfaceIdentifier;
+    pointer_sized_int (VSTINTERFACECALL* dispatchFunction)          (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+    void              (VSTINTERFACECALL* processAudioFunction)      (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples);
+    void              (VSTINTERFACECALL* setParameterValueFunction) (VstEffectInterface*, int32 parameterIndex, float value);
+    float             (VSTINTERFACECALL* getParameterValueFunction) (VstEffectInterface*, int32 parameterIndex);
+    int32 numPrograms;
+    int32 numParameters;
+    int32 numInputChannels;
+    int32 numOutputChannels;
+    int32 flags;
+    pointer_sized_int hostSpace1;
+    pointer_sized_int hostSpace2;
+    int32 latency;
+    int32 deprecated1;
+    int32 deprecated2;
+    float deprecated3;
+    void* effectPointer;
+    void* userPointer;
+    int32 plugInIdentifier;
+    int32 plugInVersion;
+    void (VSTINTERFACECALL* processAudioInplaceFunction)       (VstEffectInterface*, float**  inputs, float**  outputs, int32 numSamples);
+    void (VSTINTERFACECALL* processDoubleAudioInplaceFunction) (VstEffectInterface*, double** inputs, double** outputs, int32 numSamples);
+    char emptySpace[56];
+};
+
+struct AEffect;
+typedef pointer_sized_int (VSTINTERFACECALL*AEffectDispatcherProc)(AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+typedef void  (VSTINTERFACECALL*AEffectProcessProc)(AEffect*, float** inputs, float** outputs, int32 numSamples);
+typedef void  (VSTINTERFACECALL*AEffectProcessDoubleProc)(AEffect*, double** inputs, double** outputs, int32 numSamples);
+typedef float (VSTINTERFACECALL*AEffectGetParameterProc)(AEffect*, int32 parameterIndex);
+typedef void  (VSTINTERFACECALL*AEffectSetParameterProc)(AEffect*, int32 parameterIndex, float value);
+
+struct AEffect
+{
+    int32 magic;
+  AEffectDispatcherProc dispatcher;
+  AEffectProcessProc process;
+  AEffectSetParameterProc setParameter;
+  AEffectGetParameterProc getParameter;
+    int32 numPrograms;
+    int32 numParams;
+    int32 numInputs;
+    int32 numOutputs;
+    int32 flags;
+    pointer_sized_int hostSpace1;
+    pointer_sized_int hostSpace2;
+    int32 initialDelay;
+    int32 deprecated1;
+    int32 deprecated2;
+    float deprecated3;
+    void* object;
+    void* userPointer;
+    int32 uniqueID;
+    int32 version;
+  AEffectProcessProc processReplacing;
+  AEffectProcessDoubleProc processDoubleReplacing;
+    char emptySpace[56];
+};
+
+
+typedef pointer_sized_int (VSTINTERFACECALL* VstHostCallback) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+typedef pointer_sized_int (VSTINTERFACECALL* audioMasterCallback) (AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
+
+enum VstEffectInterfaceFlags
+{
+    vstEffectFlagHasEditor          = 1,
+    vstEffectFlagInplaceAudio       = 16,
+    vstEffectFlagDataInChunks       = 32,
+    vstEffectFlagIsSynth            = 256,
+    vstEffectFlagInplaceDoubleAudio = 4096
+
+    , effFlagsHasEditor = vstEffectFlagHasEditor
+    , effFlagsNoSoundInStop = 0 // FIXXME
+    , 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
+};
+
+//==============================================================================
+// These names must be identical to the Steinberg SDK so JUCE users can set
+// exactly what they want.
+enum VstPlugInCategory
+{
+    kPlugCategUnknown,
+    kPlugCategEffect,
+    kPlugCategSynth,
+    kPlugCategAnalysis,
+    kPlugCategMastering,
+    kPlugCategSpacializer,
+    kPlugCategRoomFx,
+    kPlugSurroundFx,
+    kPlugCategRestoration,
+    kPlugCategOfflineProcess,
+    kPlugCategShell,
+    kPlugCategGenerator
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstEditorBounds
+{
+    int16 upper;
+    int16 leftmost;
+    int16 lower;
+    int16 rightmost;
+};
+struct ERect {
+    int16 top;
+    int16 left;
+    int16 bottom;
+    int16 right;
+};
+
+//==============================================================================
+enum VstMaxStringLengths
+{
+    vstMaxNameLength                     = 64,
+    vstMaxParameterOrPinLabelLength      = 64,
+    vstMaxParameterOrPinShortLabelLength = 8,
+    vstMaxCategoryLength                 = 24,
+    vstMaxManufacturerStringLength       = 64,
+    vstMaxPlugInNameStringLength         = 64
+
+    , kVstMaxLabelLen = vstMaxParameterOrPinLabelLength
+    , kVstMaxShortLabelLen = vstMaxParameterOrPinShortLabelLength
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstPinInfo
+{
+    char text[vstMaxParameterOrPinLabelLength];
+    int32 flags;
+    int32 configurationType;
+    char shortText[vstMaxParameterOrPinShortLabelLength];
+    char unused[48];
+};
+struct VstPinProperties
+{
+    char label[vstMaxParameterOrPinLabelLength];
+    int32 flags;
+  int32 arrangementType;
+    char shortLabel[vstMaxParameterOrPinShortLabelLength];
+    char unused[48];
+};
+
+enum VstPinInfoFlags
+{
+    vstPinInfoFlagIsActive = 1,
+    vstPinInfoFlagIsStereo = 2,
+    vstPinInfoFlagValid    = 4
+
+    , kVstPinIsActive = vstPinInfoFlagIsActive
+    , kVstPinUseSpeaker = vstPinInfoFlagValid
+    , kVstPinIsStereo = vstPinInfoFlagIsStereo
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstEvent
+{
+    int32 type;
+  int32 byteSize; // size;
+  int32 deltaFrames; //? sampleOffset;
+    int32 flags;
+    char content[16];
+};
+
+enum VstEventTypes
+{
+    vstMidiEventType  = 1,
+    vstSysExEventType = 6,
+    kVstMidiType = vstMidiEventType,
+    kVstSysExType = vstSysExEventType
+};
+
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstEvents
+{
+    int32 numEvents;
+    pointer_sized_int future;
+    VstEvent* events[2];
+};
+
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstMidiEvent
+{
+    int32 type;
+  int32 byteSize; // size;
+  int32 deltaFrames; //? sampleOffset;
+    int32 flags;
+  int32 noteLength; // noteSampleLength;
+  int32 noteOffset; // noteSampleOffset;
+    char midiData[4];
+  char detune; // tuning;
+  char noteOffVelocity; // noteVelocityOff;
+    char future1;
+    char future2;
+};
+
+enum VstMidiEventFlags
+{
+    vstMidiEventIsRealtime = 1
+};
+
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstSysExEvent
+{
+    int32 type;
+  int32 byteSize; // size;
+  int32 deltaFrames; //? offsetSamples;
+    int32 flags;
+  int32 dumpBytes; // sysExDumpSize;
+  pointer_sized_int resvd1; // future1;
+  char* sysexDump; // sysExDump;
+  pointer_sized_int resvd2; // future2;
+};
+typedef VstSysExEvent VstMidiSysexEvent;
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstTimingInformation
+{
+    double samplePosition;
+    double sampleRate;
+    double systemTimeNanoseconds;
+    double musicalPosition;
+    double tempoBPM;
+    double lastBarPosition;
+    double loopStartPosition;
+    double loopEndPosition;
+    int32 timeSignatureNumerator;
+    int32 timeSignatureDenominator;
+    int32 smpteOffset;
+    int32 smpteRate;
+    int32 samplesToNearestClock;
+    int32 flags;
+};
+struct VstTimeInfo
+{
+  double samplePos;
+    double sampleRate;
+    double systemTimeNanoseconds;
+  double ppqPos;
+  double tempo;
+    double barStartPos;
+  double cycleStartPos;
+  double cycleEndPos;
+  int32 timeSigNumerator;
+  int32 timeSigDenominator;
+    int32 smpteOffset;
+  int32 smpteFrameRate;
+    int32 samplesToNearestClock;
+    int32 flags;
+};
+
+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
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstIndividualSpeakerInfo
+{
+    float azimuthalAngle;
+    float elevationAngle;
+    float radius;
+    float reserved;
+    char label[vstMaxNameLength];
+    int32 type;
+    char unused[28];
+};
+typedef VstIndividualSpeakerInfo VstSpeakerProperties;
+
+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
+};
+
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct VstSpeakerConfiguration
+{
+    int32 type;
+  int32 numChannels; // numberOfChannels;
+    VstIndividualSpeakerInfo speakers[8];
+};
+typedef VstSpeakerConfiguration VstSpeakerArrangement;
+
+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 // create7point0SDDS
+    , kSpeakerArr71Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRc
+    , kSpeakerArr80Cine = vstSpeakerConfigTypeLRCLsRsLcRcCs
+    , kSpeakerArr81Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRcCs
+    , kSpeakerArr30Music = vstSpeakerConfigTypeLRS
+    , kSpeakerArr31Music = vstSpeakerConfigTypeLRLfeS
+    , kSpeakerArr40Music = vstSpeakerConfigTypeLRLsRs
+    , kSpeakerArr41Music = vstSpeakerConfigTypeLRLfeLsRs
+    , kSpeakerArr60Music = vstSpeakerConfigTypeLRLsRsSlSr
+    , kSpeakerArr61Music = vstSpeakerConfigTypeLRLfeLsRsSlSr
+    , kSpeakerArr70Music = vstSpeakerConfigTypeLRCLsRsSlSr // create7point0
+    , kSpeakerArr71Music = vstSpeakerConfigTypeLRCLfeLsRsSlSr
+    , kSpeakerArr80Music = vstSpeakerConfigTypeLRCLsRsCsSlSr
+    , kSpeakerArr81Music = vstSpeakerConfigTypeLRCLfeLsRsCsSlSr
+    , kSpeakerArr50 = vstSpeakerConfigTypeLRCLsRs
+    , kSpeakerArr51 = vstSpeakerConfigTypeLRCLfeLsRs
+    , kSpeakerArr102 = vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2
+    , kSpeakerArrEmpty = vstSpeakerConfigTypeEmpty
+    , kSpeakerArrUserDefined = vstSpeakerConfigTypeUser
+};
+
+#if JUCE_BIG_ENDIAN
+ #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (a | (((uint32) b) << 8) | (((uint32) c) << 16) | (((uint32) d) << 24))
+#else
+ #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24))
+#endif
+
+enum PresonusExtensionConstants
+{
+    presonusVendorID                = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'),
+    presonusSetContentScaleFactor   = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's')
+};
+
+//==============================================================================
+/** Structure used for VSTs
+
+    @tags{Audio}
+*/
+struct vst2FxBank
+{
+    int32 magic1;
+    int32 size;
+    int32 magic2;
+    int32 version1;
+    int32 fxID;
+    int32 version2;
+    int32 elements;
+    int32 current;
+    char shouldBeZero[124];
+    int32 chunkSize;
+    char chunk[1];
+};
+
+#if JUCE_MSVC
+ #pragma pack(pop)
+#elif JUCE_MAC || JUCE_IOS
+ #pragma options align=reset
+#else
+ #pragma pack(pop)
+#endif
diff --git a/debian/missing-sources/juce_VSTInterface.h b/debian/missing-sources/juce_VSTInterface.h
deleted file mode 100644 (file)
index 490dd5b..0000000
+++ /dev/null
@@ -1,763 +0,0 @@
-/*
-  ==============================================================================
-
-   This file is part of the JUCE library.
-   Copyright (c) 2017 - ROLI Ltd.
-
-   JUCE is an open source library subject to commercial or open-source
-   licensing.
-
-   By using JUCE, you agree to the terms of both the JUCE 5 End-User License
-   Agreement and JUCE 5 Privacy Policy (both updated and effective as of the
-   27th April 2017).
-
-   End User License Agreement: www.juce.com/juce-5-licence
-   Privacy Policy: www.juce.com/juce-5-privacy-policy
-
-   Or: You may also use this code under the terms of the GPL v3 (see
-   www.gnu.org/licenses).
-
-   JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
-   EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
-   DISCLAIMED.
-
-  ==============================================================================
-*/
-
-/*
-  Copyright © 2019 IOhannes m zmölnig
-
-  Provide additional structs & enum-aliases, to allow compilation with JUCE-5.4.1
-
-  The names of the struct-members and enum-aliases have been derived by comparing
-  juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp of
-  both JUCE-5.3.2 and JUCE-5.4.1
- */
-
-#define JUCE_VSTINTERFACE_H_INCLUDED
-
-using namespace juce;
-
-#if JUCE_MSVC
- #define VSTINTERFACECALL __cdecl
- #pragma pack(push)
- #pragma pack(8)
-#elif JUCE_MAC || JUCE_IOS
- #define VSTINTERFACECALL
- #if JUCE_64BIT
-  #pragma options align=power
- #else
-  #pragma options align=mac68k
- #endif
-#else
- #define VSTINTERFACECALL
- #pragma pack(push, 8)
-#endif
-
-const int32 juceVstInterfaceVersion = 2400;
-#define kVstVersion 2400
-const int32 juceVstInterfaceIdentifier = 0x56737450;    // The "magic" identifier in the SDK is 'VstP'.
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstEffectInterface
-{
-    int32 interfaceIdentifier;
-    pointer_sized_int (VSTINTERFACECALL* dispatchFunction)          (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
-    void              (VSTINTERFACECALL* processAudioFunction)      (VstEffectInterface*, float** inputs, float** outputs, int32 numSamples);
-    void              (VSTINTERFACECALL* setParameterValueFunction) (VstEffectInterface*, int32 parameterIndex, float value);
-    float             (VSTINTERFACECALL* getParameterValueFunction) (VstEffectInterface*, int32 parameterIndex);
-    int32 numPrograms;
-    int32 numParameters;
-    int32 numInputChannels;
-    int32 numOutputChannels;
-    int32 flags;
-    pointer_sized_int hostSpace1;
-    pointer_sized_int hostSpace2;
-    int32 latency;
-    int32 deprecated1;
-    int32 deprecated2;
-    float deprecated3;
-    void* effectPointer;
-    void* userPointer;
-    int32 plugInIdentifier;
-    int32 plugInVersion;
-    void (VSTINTERFACECALL* processAudioInplaceFunction)       (VstEffectInterface*, float**  inputs, float**  outputs, int32 numSamples);
-    void (VSTINTERFACECALL* processDoubleAudioInplaceFunction) (VstEffectInterface*, double** inputs, double** outputs, int32 numSamples);
-    char emptySpace[56];
-};
-
-struct AEffect;
-typedef pointer_sized_int (VSTINTERFACECALL*AEffectDispatcherProc)(AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
-typedef void  (VSTINTERFACECALL*AEffectProcessProc)(AEffect*, float** inputs, float** outputs, int32 numSamples);
-typedef void  (VSTINTERFACECALL*AEffectProcessDoubleProc)(AEffect*, double** inputs, double** outputs, int32 numSamples);
-typedef float (VSTINTERFACECALL*AEffectGetParameterProc)(AEffect*, int32 parameterIndex);
-typedef void  (VSTINTERFACECALL*AEffectSetParameterProc)(AEffect*, int32 parameterIndex, float value);
-
-struct AEffect
-{
-    int32 magic;
-  AEffectDispatcherProc dispatcher;
-  AEffectProcessProc process;
-  AEffectSetParameterProc setParameter;
-  AEffectGetParameterProc getParameter;
-    int32 numPrograms;
-    int32 numParams;
-    int32 numInputs;
-    int32 numOutputs;
-    int32 flags;
-    pointer_sized_int hostSpace1;
-    pointer_sized_int hostSpace2;
-    int32 initialDelay;
-    int32 deprecated1;
-    int32 deprecated2;
-    float deprecated3;
-    void* object;
-    void* userPointer;
-    int32 uniqueID;
-    int32 version;
-  AEffectProcessProc processReplacing;
-  AEffectProcessDoubleProc processDoubleReplacing;
-    char emptySpace[56];
-};
-
-
-typedef pointer_sized_int (VSTINTERFACECALL* VstHostCallback) (VstEffectInterface*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
-typedef pointer_sized_int (VSTINTERFACECALL* audioMasterCallback) (AEffect*, int32 op, int32 index, pointer_sized_int value, void* ptr, float opt);
-
-enum VstEffectInterfaceFlags
-{
-    vstEffectFlagHasEditor          = 1,
-    vstEffectFlagInplaceAudio       = 16,
-    vstEffectFlagDataInChunks       = 32,
-    vstEffectFlagIsSynth            = 256,
-    vstEffectFlagInplaceDoubleAudio = 4096
-
-    , effFlagsHasEditor = vstEffectFlagHasEditor
-    , effFlagsNoSoundInStop = 0 // FIXXME
-    , 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
-};
-
-//==============================================================================
-// These names must be identical to the Steinberg SDK so JUCE users can set
-// exactly what they want.
-enum VstPlugInCategory
-{
-    kPlugCategUnknown,
-    kPlugCategEffect,
-    kPlugCategSynth,
-    kPlugCategAnalysis,
-    kPlugCategMastering,
-    kPlugCategSpacializer,
-    kPlugCategRoomFx,
-    kPlugSurroundFx,
-    kPlugCategRestoration,
-    kPlugCategOfflineProcess,
-    kPlugCategShell,
-    kPlugCategGenerator
-};
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstEditorBounds
-{
-    int16 upper;
-    int16 leftmost;
-    int16 lower;
-    int16 rightmost;
-};
-struct ERect {
-    int16 top;
-    int16 left;
-    int16 bottom;
-    int16 right;
-};
-
-//==============================================================================
-enum VstMaxStringLengths
-{
-    vstMaxNameLength                     = 64,
-    vstMaxParameterOrPinLabelLength      = 64,
-    vstMaxParameterOrPinShortLabelLength = 8,
-    vstMaxCategoryLength                 = 24,
-    vstMaxManufacturerStringLength       = 64,
-    vstMaxPlugInNameStringLength         = 64
-
-    , kVstMaxLabelLen = vstMaxParameterOrPinLabelLength
-    , kVstMaxShortLabelLen = vstMaxParameterOrPinShortLabelLength
-};
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstPinInfo
-{
-    char text[vstMaxParameterOrPinLabelLength];
-    int32 flags;
-    int32 configurationType;
-    char shortText[vstMaxParameterOrPinShortLabelLength];
-    char unused[48];
-};
-struct VstPinProperties
-{
-    char label[vstMaxParameterOrPinLabelLength];
-    int32 flags;
-  int32 arrangementType;
-    char shortLabel[vstMaxParameterOrPinShortLabelLength];
-    char unused[48];
-};
-
-enum VstPinInfoFlags
-{
-    vstPinInfoFlagIsActive = 1,
-    vstPinInfoFlagIsStereo = 2,
-    vstPinInfoFlagValid    = 4
-
-    , kVstPinIsActive = vstPinInfoFlagIsActive
-    , kVstPinUseSpeaker = vstPinInfoFlagValid
-    , kVstPinIsStereo = vstPinInfoFlagIsStereo
-};
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstEvent
-{
-    int32 type;
-  int32 byteSize; // size;
-  int32 deltaFrames; //? sampleOffset;
-    int32 flags;
-    char content[16];
-};
-
-enum VstEventTypes
-{
-    vstMidiEventType  = 1,
-    vstSysExEventType = 6,
-    kVstMidiType = vstMidiEventType,
-    kVstSysExType = vstSysExEventType
-};
-
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstEvents
-{
-    int32 numEvents;
-    pointer_sized_int future;
-    VstEvent* events[2];
-};
-
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstMidiEvent
-{
-    int32 type;
-  int32 byteSize; // size;
-  int32 deltaFrames; //? sampleOffset;
-    int32 flags;
-  int32 noteLength; // noteSampleLength;
-  int32 noteOffset; // noteSampleOffset;
-    char midiData[4];
-  char detune; // tuning;
-  char noteOffVelocity; // noteVelocityOff;
-    char future1;
-    char future2;
-};
-
-enum VstMidiEventFlags
-{
-    vstMidiEventIsRealtime = 1
-};
-
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstSysExEvent
-{
-    int32 type;
-  int32 byteSize; // size;
-  int32 deltaFrames; //? offsetSamples;
-    int32 flags;
-  int32 dumpBytes; // sysExDumpSize;
-  pointer_sized_int resvd1; // future1;
-  char* sysexDump; // sysExDump;
-  pointer_sized_int resvd2; // future2;
-};
-typedef VstSysExEvent VstMidiSysexEvent;
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstTimingInformation
-{
-    double samplePosition;
-    double sampleRate;
-    double systemTimeNanoseconds;
-    double musicalPosition;
-    double tempoBPM;
-    double lastBarPosition;
-    double loopStartPosition;
-    double loopEndPosition;
-    int32 timeSignatureNumerator;
-    int32 timeSignatureDenominator;
-    int32 smpteOffset;
-    int32 smpteRate;
-    int32 samplesToNearestClock;
-    int32 flags;
-};
-struct VstTimeInfo
-{
-  double samplePos;
-    double sampleRate;
-    double systemTimeNanoseconds;
-  double ppqPos;
-  double tempo;
-    double barStartPos;
-  double cycleStartPos;
-  double cycleEndPos;
-  int32 timeSigNumerator;
-  int32 timeSigDenominator;
-    int32 smpteOffset;
-  int32 smpteFrameRate;
-    int32 samplesToNearestClock;
-    int32 flags;
-};
-
-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
-};
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstIndividualSpeakerInfo
-{
-    float azimuthalAngle;
-    float elevationAngle;
-    float radius;
-    float reserved;
-    char label[vstMaxNameLength];
-    int32 type;
-    char unused[28];
-};
-typedef VstIndividualSpeakerInfo VstSpeakerProperties;
-
-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
-};
-
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct VstSpeakerConfiguration
-{
-    int32 type;
-  int32 numChannels; // numberOfChannels;
-    VstIndividualSpeakerInfo speakers[8];
-};
-typedef VstSpeakerConfiguration VstSpeakerArrangement;
-
-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 // create7point0SDDS
-    , kSpeakerArr71Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRc
-    , kSpeakerArr80Cine = vstSpeakerConfigTypeLRCLsRsLcRcCs
-    , kSpeakerArr81Cine = vstSpeakerConfigTypeLRCLfeLsRsLcRcCs
-    , kSpeakerArr30Music = vstSpeakerConfigTypeLRS
-    , kSpeakerArr31Music = vstSpeakerConfigTypeLRLfeS
-    , kSpeakerArr40Music = vstSpeakerConfigTypeLRLsRs
-    , kSpeakerArr41Music = vstSpeakerConfigTypeLRLfeLsRs
-    , kSpeakerArr60Music = vstSpeakerConfigTypeLRLsRsSlSr
-    , kSpeakerArr61Music = vstSpeakerConfigTypeLRLfeLsRsSlSr
-    , kSpeakerArr70Music = vstSpeakerConfigTypeLRCLsRsSlSr // create7point0
-    , kSpeakerArr71Music = vstSpeakerConfigTypeLRCLfeLsRsSlSr
-    , kSpeakerArr80Music = vstSpeakerConfigTypeLRCLsRsCsSlSr
-    , kSpeakerArr81Music = vstSpeakerConfigTypeLRCLfeLsRsCsSlSr
-    , kSpeakerArr50 = vstSpeakerConfigTypeLRCLsRs
-    , kSpeakerArr51 = vstSpeakerConfigTypeLRCLfeLsRs
-    , kSpeakerArr102 = vstSpeakerConfigTypeLRCLfeLsRsTflTfcTfrTrlTrrLfe2
-    , kSpeakerArrEmpty = vstSpeakerConfigTypeEmpty
-    , kSpeakerArrUserDefined = vstSpeakerConfigTypeUser
-};
-
-#if JUCE_BIG_ENDIAN
- #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (a | (((uint32) b) << 8) | (((uint32) c) << 16) | (((uint32) d) << 24))
-#else
- #define JUCE_MULTICHAR_CONSTANT(a, b, c, d) (d | (((uint32) c) << 8) | (((uint32) b) << 16) | (((uint32) a) << 24))
-#endif
-
-enum PresonusExtensionConstants
-{
-    presonusVendorID                = JUCE_MULTICHAR_CONSTANT ('P', 'r', 'e', 'S'),
-    presonusSetContentScaleFactor   = JUCE_MULTICHAR_CONSTANT ('A', 'e', 'C', 's')
-};
-
-//==============================================================================
-/** Structure used for VSTs
-
-    @tags{Audio}
-*/
-struct vst2FxBank
-{
-    int32 magic1;
-    int32 size;
-    int32 magic2;
-    int32 version1;
-    int32 fxID;
-    int32 version2;
-    int32 elements;
-    int32 current;
-    char shouldBeZero[124];
-    int32 chunkSize;
-    char chunk[1];
-};
-
-#if JUCE_MSVC
- #pragma pack(pop)
-#elif JUCE_MAC || JUCE_IOS
- #pragma options align=reset
-#else
- #pragma pack(pop)
-#endif
index 6671b6d299c2a8f3792466f97fb05beb9ac139a5..b84ebd1098c1376a50067e511ffe762281525259 100644 (file)
@@ -16,6 +16,14 @@ This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
  }\r
  \r
  using namespace juce;\r
+@@ -111,7 +110,6 @@
+  #pragma pack (push, 8)\r
+ #endif\r
\r
+-#define JUCE_VSTINTERFACE_H_INCLUDED 1\r
\r
+ #include "../utility/juce_IncludeModuleHeaders.h"\r
+ #include "../utility/juce_FakeMouseMoveGenerator.h"\r
 --- juce.orig/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
 +++ juce/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
 @@ -37,7 +37,6 @@
index 14f2603bfc229d39a5f1be81a901b761e344cbef..6c54d7dcc5ea730beed6eee27fad7532531904a2 100755 (executable)
@@ -23,7 +23,8 @@ LDFLAGS += $(shell pkg-config --libs libjpeg libpng zlib)
        dh $@
 
 override_dh_auto_build-arch:
-       cp $(CURDIR)/debian/missing-sources/juce_VSTInterface.h $(CURDIR)/modules/juce_audio_processors/format_types/
+       cp $(CURDIR)/debian/extra/juce_audio_processors/format_types/juce_VSTInterface.h \
+               $(CURDIR)/modules/juce_audio_processors/format_types/
        cp $(CURDIR)/examples/DemoRunner/Builds/iOS/DemoRunner/Images.xcassets/AppIcon.appiconset/Icon.png \
                $(DEBIAN_BUILD_ARTIFACTS)/juce.png
        dh_auto_build -D $(DEB_SRCDIR) -- \