From 52f5768dffbfebbfa58c1ad96268f1acedaeffe3 Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 15 Jan 2016 17:19:54 +0100 Subject: [PATCH] Update vestige header from ardour --- source/backend/plugin/CarlaPluginVST2.cpp | 3 + source/includes/vestige/aeffectx.h | 82 +++++++++++++++++++---- source/utils/CarlaVstUtils.hpp | 7 -- 3 files changed, 72 insertions(+), 20 deletions(-) diff --git a/source/backend/plugin/CarlaPluginVST2.cpp b/source/backend/plugin/CarlaPluginVST2.cpp index 7d8aa5de6..3298a698e 100644 --- a/source/backend/plugin/CarlaPluginVST2.cpp +++ b/source/backend/plugin/CarlaPluginVST2.cpp @@ -36,6 +36,9 @@ #undef VST_FORCE_DEPRECATED #define VST_FORCE_DEPRECATED 0 +#undef kEffectMagic +#define kEffectMagic (CCONST( 'V', 's', 't', 'P' )) + using juce::File; CARLA_BACKEND_START_NAMESPACE diff --git a/source/includes/vestige/aeffectx.h b/source/includes/vestige/aeffectx.h index 23f84f2e1..f09c00999 100644 --- a/source/includes/vestige/aeffectx.h +++ b/source/includes/vestige/aeffectx.h @@ -2,7 +2,7 @@ * aeffectx.h - simple header to allow VeSTige compilation and eventually work * * Copyright (c) 2006 Javier Serrano Polo - * + * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * * This program is free software; you can redistribute it and/or @@ -101,16 +101,35 @@ #define effEditIdle 19 #define effEditTop 20 #define effProcessEvents 25 +// the next one from http://asseca.com/vst-24-specs/index.html +#define effGetPlugCategory 35 #define effGetEffectName 45 #define effGetVendorString 47 #define effGetProductString 48 #define effGetVendorVersion 49 #define effCanDo 51 // currently unused +/* from http://asseca.com/vst-24-specs/efIdle.html */ +#define effIdle 53 /* from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ #define effGetParameterProperties 56 #define effGetVstVersion 58 // currently unused +/* http://asseca.com/vst-24-specs/efShellGetNextPlugin.html */ +#define effShellGetNextPlugin 70 +/* The next two were gleaned from http://www.kvraudio.com/forum/printview.php?t=143587&start=0 */ +#define effStartProcess 71 +#define effStopProcess 72 + +#define effBeginSetProgram 67 +#define effEndSetProgram 68 + +#ifdef WORDS_BIGENDIAN +// "VstP" +#define kEffectMagic 0x50747356 +#else +// "PtsV" +#define kEffectMagic 0x56737450 +#endif -#define kEffectMagic (CCONST( 'V', 's', 't', 'P' )) #define kVstLangEnglish 1 #define kVstMidiType 1 @@ -171,7 +190,38 @@ struct _VstEvents // 04 void *reserved; // 08 - VstEvent * events[2]; + VstEvent * events[]; +}; + +/* constants from http://www.rawmaterialsoftware.com/juceforum/viewtopic.php?t=3740&sid=183f74631fee71a493316735e2b9f28b */ + +enum Vestige2StringConstants +{ + VestigeMaxNameLen = 64, + VestigeMaxLabelLen = 64, + VestigeMaxShortLabelLen = 8, + VestigeMaxCategLabelLen = 24, + VestigeMaxFileNameLen = 100 +}; + + +/* constants from http://asseca.com/vst-24-specs/efGetPlugCategory.html */ + +enum VstPlugCategory +{ + kPlugCategUnknown = 0, + kPlugCategEffect, + kPlugCategSynth, + kPlugCategAnalysis, + kPlugCategMastering, + kPlugCategSpacializer, + kPlugCategRoomFx, + kPlugSurroundFx, + kPlugCategRestoration, + kPlugCategOfflineProcess, + kPlugCategShell, + kPlugCategGenerator, + kPlugCategMaxCount }; typedef struct _VstEvents VstEvents; @@ -179,16 +229,22 @@ typedef struct _VstEvents VstEvents; /* this struct taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */ struct _VstParameterProperties { - float stepFloat; - float smallStepFloat; - float largeStepFloat; - char label[64]; - int32_t flags; - int32_t minInteger; - int32_t maxInteger; - int32_t stepInteger; - int32_t largeStepInteger; - char shortLabel[8]; + float stepFloat; /* float step */ + float smallStepFloat; /* small float step */ + float largeStepFloat; /* large float step */ + char label[VestigeMaxLabelLen]; /* parameter label */ + int32_t flags; /* @see VstParameterFlags */ + int32_t minInteger; /* integer minimum */ + int32_t maxInteger; /* integer maximum */ + int32_t stepInteger; /* integer step */ + int32_t largeStepInteger; /* large integer step */ + char shortLabel[VestigeMaxShortLabelLen]; /* short label, recommended: 6 + delimiter */ + int16_t displayIndex; /* index where this parameter should be displayed (starting with 0) */ + int16_t category; /* 0: no category, else group index + 1 */ + int16_t numParametersInCategory; /* number of parameters in category */ + int16_t reserved; /* zero */ + char categoryLabel[VestigeMaxCategLabelLen]; /* category label, e.g. "Osc 1" */ + char future[16]; /* reserved for future use */ }; typedef struct _VstParameterProperties VstParameterProperties; diff --git a/source/utils/CarlaVstUtils.hpp b/source/utils/CarlaVstUtils.hpp index 1072dc323..53bb026e0 100644 --- a/source/utils/CarlaVstUtils.hpp +++ b/source/utils/CarlaVstUtils.hpp @@ -58,7 +58,6 @@ #define effConnectOutput 32 #define effGetInputProperties 33 #define effGetOutputProperties 34 -#define effGetPlugCategory 35 #define effGetCurrentPosition 36 #define effGetDestinationBuffer 37 #define effOfflineNotify 38 @@ -71,7 +70,6 @@ #define effGetErrorText 46 #define effVendorSpecific 50 #define effGetTailSize 52 -#define effIdle 53 #define effGetIcon 54 #define effSetViewPosition 55 #define effKeysRequired 57 @@ -83,12 +81,7 @@ #define effGetMidiProgramCategory 64 #define effHasMidiProgramsChanged 65 #define effGetMidiKeyName 66 -#define effBeginSetProgram 67 -#define effEndSetProgram 68 #define effGetSpeakerArrangement 69 -#define effShellGetNextPlugin 70 -#define effStartProcess 71 -#define effStopProcess 72 #define effSetTotalSampleToProcess 73 #define effSetPanLaw 74 #define effBeginLoadBank 75