Files
Work/vst/vstfxstore.h
2024-08-07 09:16:27 -04:00

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