110 lines
2.9 KiB
C
110 lines
2.9 KiB
C
//-------------------------------------------------------------------------------------------------------
|
|
// 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
|