//------------------------------------------------------------------------------------------------------- // VST Plug-Ins SDK // Version 2.3 Extension // © 2003, Steinberg Media Technologies, All Rights Reserved // // Different structures for persistent data for VST Plugins: // - Preset (or Program) without Chunk (->fxPreset) // - Preset (or Program) with Chunk (->fxChunkPreset) // - Bank without Chunk (->fxBank) // - Bank with Chunk (->fxChunkBank) //------------------------------------------------------------------------------------------------------- #ifndef __vstfxstore__ #define __vstfxstore__ //---some defines #define cMagic 'CcnK' #define presetMagic 'FxCk' #define bankMagic 'FxBk' #define chunkPresetMagic 'FPCh' #define chunkBankMagic 'FBCh' // for old compatibility (renaming) #define chunkGlobalMagic 'FxCh' // not used #define fMagic presetMagic #define fxProgram fxPreset #define fxChunkSet fxChunkPreset #define fxSet fxBank //-------------------------------------------------------------------- // For Preset (Program) (.fxp) without chunk (magic = 'FxCk') //-------------------------------------------------------------------- struct fxPreset { long chunkMagic; // 'CcnK' long byteSize; // of this chunk, excl. magic + byteSize long fxMagic; // 'FxCk' long version; long fxID; // FX unique ID long fxVersion; long numParams; char prgName[28]; float params[1]; // variable no. of Parameters }; //-------------------------------------------------------------------- // For Preset (Program) (.fxp) with chunk (magic = 'FPCh') //-------------------------------------------------------------------- struct fxChunkPreset { long chunkMagic; // 'CcnK' long byteSize; // of this chunk, excl. magic + byteSize long fxMagic; // 'FPCh' long version; long fxID; // FX unique ID long fxVersion; long numPrograms; char prgName[28]; long chunkSize; char chunk[8]; // variable }; //-------------------------------------------------------------------- // For Bank (.fxb) without chunk (magic = 'FxBk') //-------------------------------------------------------------------- struct fxBank { long chunkMagic; // 'CcnK' long byteSize; // of this chunk, excl. magic + byteSize long fxMagic; // 'FxBk' long version; long fxID; // FX unique ID long fxVersion; long numPrograms; char future[128]; fxPreset programs[1]; // variable no. of Presets (Programs) }; //-------------------------------------------------------------------- // For Bank (.fxb) with chunk (magic = 'FBCh') //-------------------------------------------------------------------- struct fxChunkBank { long chunkMagic; // 'CcnK' long byteSize; // of this chunk, excl. magic + byteSize long fxMagic; // 'FBCh' long version; long fxID; // FX unique ID long fxVersion; long numPrograms; char future[128]; long chunkSize; char chunk[8]; // variable }; #endif