summaryrefslogtreecommitdiff
path: root/pluginterfaces/vst2.x/vstfxstore.h
diff options
context:
space:
mode:
Diffstat (limited to 'pluginterfaces/vst2.x/vstfxstore.h')
-rw-r--r--pluginterfaces/vst2.x/vstfxstore.h106
1 files changed, 106 insertions, 0 deletions
diff --git a/pluginterfaces/vst2.x/vstfxstore.h b/pluginterfaces/vst2.x/vstfxstore.h
new file mode 100644
index 0000000..c642777
--- /dev/null
+++ b/pluginterfaces/vst2.x/vstfxstore.h
@@ -0,0 +1,106 @@
+//-------------------------------------------------------------------------------------------------------
+// VST Plug-Ins SDK
+// Version 2.4 $Date: 2006/02/09 11:05:51 $
+//
+// Category : VST 2.x Interfaces
+// Filename : vstfxstore.h
+// Created by : Steinberg Media Technologies
+// Description : Definition of Program (fxp) and Bank (fxb) structures
+//
+// © 2006, Steinberg Media Technologies, All Rights Reserved
+//-------------------------------------------------------------------------------------------------------
+
+#ifndef __vstfxstore__
+#define __vstfxstore__
+
+#ifndef __aeffect__
+#include "aeffect.h"
+#endif
+
+//-------------------------------------------------------------------------------------------------------
+/** Root chunk identifier for Programs (fxp) and Banks (fxb). */
+#define cMagic 'CcnK'
+
+/** Regular Program (fxp) identifier. */
+#define fMagic 'FxCk'
+
+/** Regular Bank (fxb) identifier. */
+#define bankMagic 'FxBk'
+
+/** Program (fxp) identifier for opaque chunk data. */
+#define chunkPresetMagic 'FPCh'
+
+/** Bank (fxb) identifier for opaque chunk data. */
+#define chunkBankMagic 'FBCh'
+
+/*
+ Note: The C data structures below are for illustration only. You can not read/write them directly.
+ The byte order on disk of fxp and fxb files is Big Endian. You have to swap integer
+ and floating-point values on Little Endian platforms (Windows, MacIntel)!
+*/
+
+//-------------------------------------------------------------------------------------------------------
+/** Program (fxp) structure. */
+//-------------------------------------------------------------------------------------------------------
+struct fxProgram
+{
+//-------------------------------------------------------------------------------------------------------
+ VstInt32 chunkMagic; ///< 'CcnK'
+ VstInt32 byteSize; ///< size of this chunk, excl. magic + byteSize
+
+ VstInt32 fxMagic; ///< 'FxCk' (regular) or 'FPCh' (opaque chunk)
+ VstInt32 version; ///< format version (currently 1)
+ VstInt32 fxID; ///< fx unique ID
+ VstInt32 fxVersion; ///< fx version
+
+ VstInt32 numParams; ///< number of parameters
+ char prgName[28]; ///< program name (null-terminated ASCII string)
+
+ union
+ {
+ float params[1]; ///< variable sized array with parameter values
+ struct
+ {
+ VstInt32 size; ///< size of program data
+ char chunk[1]; ///< variable sized array with opaque program data
+ } data; ///< program chunk data
+ } content; ///< program content depending on fxMagic
+//-------------------------------------------------------------------------------------------------------
+};
+
+//-------------------------------------------------------------------------------------------------------
+/** Bank (fxb) structure. */
+//-------------------------------------------------------------------------------------------------------
+struct fxBank
+{
+//-------------------------------------------------------------------------------------------------------
+ VstInt32 chunkMagic; ///< 'CcnK'
+ VstInt32 byteSize; ///< size of this chunk, excl. magic + byteSize
+
+ VstInt32 fxMagic; ///< 'FxBk' (regular) or 'FBCh' (opaque chunk)
+ VstInt32 version; ///< format version (1 or 2)
+ VstInt32 fxID; ///< fx unique ID
+ VstInt32 fxVersion; ///< fx version
+
+ VstInt32 numPrograms; ///< number of programs
+
+#if VST_2_4_EXTENSIONS
+ VstInt32 currentProgram; ///< version 2: current program number
+ char future[124]; ///< reserved, should be zero
+#else
+ char future[128]; ///< reserved, should be zero
+#endif
+
+ union
+ {
+ fxProgram programs[1]; ///< variable number of programs
+ struct
+ {
+ VstInt32 size; ///< size of bank data
+ char chunk[1]; ///< variable sized array with opaque bank data
+ } data; ///< bank chunk data
+ } content; ///< bank content depending on fxMagic
+//-------------------------------------------------------------------------------------------------------
+};
+
+#endif // __vstfxstore__