VST 3 SDK VST 3.7 SDK for developing VST plug-in

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
PresetFile Class Reference
VST Implementation Helper Classes

Handler for a VST 3 Preset File. More...

`#include <vstpresetfile.h>`

## Classes
struct | Entry
| Internal structure used for chunk handling. More...

## Public Member Functions
| PresetFile (IBStream *stream)
| Constructor of Preset file based on a stream.
virtual | ~PresetFile ()
IBStream * | getStream ()
| Returns the associated stream.
const FUID & | getClassID () const
| Returns the associated classID (component ID: Processor part (not the controller!)).
void | setClassID (const FUID &uid)
| Sets the associated classID (component ID: Processor part (not the controller!)).
const Entry * | getEntry (ChunkType which) const
| Returns an entry for a given chunk type.
const Entry * | getLastEntry () const
| Returns the last available entry.
int32 | getEntryCount () const
| Returns the number of total entries in the current stream.
const Entry & | at (int32 index) const
| Returns the entry at a given position.
bool | contains (ChunkType which) const
| Checks if a given chunk type exist in the stream.
bool | readChunkList ()
| Reads and build the chunk list (including the header chunk).
bool | writeHeader ()
| Writes into the stream the main header.
bool | writeChunkList ()
| Writes into the stream the chunk list (should be at the end).
bool | readMetaInfo (char *xmlBuffer, int32 &size)
| Reads the meta XML info and its size, the size could be retrieved by passing zero as xmlBuffer.
bool | writeMetaInfo (const char *xmlBuffer, int32 size=-1, bool forceWriting=false)
| Writes the meta XML info, -1 means null-terminated, forceWriting to true will force to rewrite the XML Info when the chunk already exists.
bool | prepareMetaInfoUpdate ()
| checks if meta info chunk is the last one and jump to correct position.
bool | writeChunk (const void *data, int32 size, ChunkType which=kComponentState)
| Writes a given data of a given size as "which" chunk type.
bool | seekToComponentState ()
| Seeks to the begin of the Component State.
bool | storeComponentState (IComponent *component)
| Stores the component state (only one time).
bool | storeComponentState (IBStream *componentStream)
| Stores the component state from stream (only one time).
bool | restoreComponentState (IComponent *component)
| Restores the component state.
bool | seekToControllerState ()
| Seeks to the begin of the Controller State.
bool | storeControllerState (IEditController *editController)
| Stores the controller state (only one time).
bool | storeControllerState (IBStream *editStream)
| Stores the controller state from stream (only one time).
bool | restoreControllerState (IEditController *editController)
| Restores the controller state.
bool | restoreComponentState (IEditController *editController)
| Restores the component state and apply it to the controller.
bool | storeProgramData (IBStream *inStream, ProgramListID listID)
| Store program data or unit data from stream (including the header chunk).
bool | storeProgramData (IProgramListData *programListData, ProgramListID programListID, int32 programIndex)
| Stores a IProgramListData with a given identifier and index (including the header chunk).
bool | restoreProgramData (IProgramListData *programListData, ProgramListID *programListID=nullptr, int32 programIndex=0)
| Restores a IProgramListData with a given identifier and index.
bool | storeProgramData (IUnitData *unitData, UnitID unitID)
| Stores a IUnitData with a given unitID (including the header chunk).
bool | restoreProgramData (IUnitData *unitData, UnitID *unitID=nullptr)
| Restores a IUnitData with a given unitID (optional).
bool | restoreProgramData (IUnitInfo *unitInfo, int32 unitProgramListID, int32 programIndex=-1)
| for keeping the controller part in sync concerning preset data stream, unitProgramListID could be ProgramListID or UnitID.
bool | getUnitProgramListID (int32 &unitProgramListID)
| Gets the unitProgramListID saved in the kProgramData chunk (if available).

## Static Public Member Functions
static bool | savePreset (IBStream *stream, const FUID &classID, IComponent *component, IEditController *editController=nullptr, const char *xmlBuffer=nullptr, int32 xmlSize=-1)
| Shortcut helper to create preset from component/controller state.
static bool | savePreset (IBStream *stream, const FUID &classID, IBStream *componentStream, IBStream *editStream=nullptr, const char *xmlBuffer=nullptr, int32 xmlSize=-1)
static bool | loadPreset (IBStream *stream, const FUID &classID, IComponent *component, IEditController *editController=nullptr, std::vector< FUID > *otherClassIDArray=nullptr)
| Shortcut helper to load preset with component/controller state.

## Protected Types
enum | { kMaxEntries = 128 }

## Protected Member Functions
bool | readID (ChunkID id)
bool | writeID (const ChunkID id)
bool | readEqualID (const ChunkID id)
bool | readSize (TSize &size)
bool | writeSize (TSize size)
bool | readInt32 (int32 &value)
bool | writeInt32 (int32 value)
bool | seekTo (TSize offset)
bool | beginChunk (Entry &e, ChunkType which)
bool | endChunk (Entry &e)

## Protected Attributes
IBStream * | stream
FUID | classID
| classID is the FUID of the component (processor) part
Entry | entries [kMaxEntries]
int32 | entryCount

## Detailed Description

Handler for a VST 3 Preset File.

See Also
  presetformat

## Member Enumeration Documentation

anonymous enum
| protected

Enumerator
kMaxEntries |

## Constructor & Destructor Documentation

PresetFile | ( | IBStream * | stream | ) |

Constructor of Preset file based on a stream.

~PresetFile | ( |  | ) |
| virtual

## Member Function Documentation

IBStream* getStream | ( |  | ) |
| inline

Returns the associated stream.

const FUID& getClassID | ( |  | ) | const
| inline

Returns the associated classID (component ID: Processor part (not the controller!)).

void setClassID | ( | const FUID & | uid | ) |
| inline

Sets the associated classID (component ID: Processor part (not the controller!)).

const PresetFile::Entry * getEntry | ( | ChunkType | which | ) | const

Returns an entry for a given chunk type.

const PresetFile::Entry * getLastEntry | ( |  | ) | const

Returns the last available entry.

int32 getEntryCount | ( |  | ) | const
| inline

Returns the number of total entries in the current stream.

const Entry& at | ( | int32 | index | ) | const
| inline

Returns the entry at a given position.

bool contains | ( | ChunkType | which | ) | const
| inline

Checks if a given chunk type exist in the stream.

bool readChunkList | ( |  | ) |

Reads and build the chunk list (including the header chunk).

bool writeHeader | ( |  | ) |

Writes into the stream the main header.

bool writeChunkList | ( |  | ) |

Writes into the stream the chunk list (should be at the end).

bool readMetaInfo | ( | char * | xmlBuffer,
|  | int32 & | size
| ) |  |

Reads the meta XML info and its size, the size could be retrieved by passing zero as xmlBuffer.

bool writeMetaInfo | ( | const char * | xmlBuffer,
|  | int32 | size = `-1`,
|  | bool | forceWriting = `false`
| ) |  |

Writes the meta XML info, -1 means null-terminated, forceWriting to true will force to rewrite the XML Info when the chunk already exists.

bool prepareMetaInfoUpdate | ( |  | ) |

checks if meta info chunk is the last one and jump to correct position.

bool writeChunk | ( | const void * | data,
|  | int32 | size,
|  | ChunkType | which = `kComponentState`
| ) |  |

Writes a given data of a given size as "which" chunk type.

bool seekToComponentState | ( |  | ) |

Seeks to the begin of the Component State.

bool storeComponentState | ( | IComponent * | component | ) |

Stores the component state (only one time).

bool storeComponentState | ( | IBStream * | componentStream | ) |

Stores the component state from stream (only one time).

bool restoreComponentState | ( | IComponent * | component | ) |

Restores the component state.

bool seekToControllerState | ( |  | ) |

Seeks to the begin of the Controller State.

bool storeControllerState | ( | IEditController * | editController | ) |

Stores the controller state (only one time).

bool storeControllerState | ( | IBStream * | editStream | ) |

Stores the controller state from stream (only one time).

bool restoreControllerState | ( | IEditController * | editController | ) |

Restores the controller state.

bool restoreComponentState | ( | IEditController * | editController | ) |

Restores the component state and apply it to the controller.

bool storeProgramData | ( | IBStream * | inStream,
|  | ProgramListID | listID
| ) |  |

Store program data or unit data from stream (including the header chunk).

Parameters

  inStream |
  listID | could be ProgramListID or UnitID.

bool storeProgramData | ( | IProgramListData * | programListData,
|  | ProgramListID | programListID,
|  | int32 | programIndex
| ) |  |

Stores a IProgramListData with a given identifier and index (including the header chunk).

bool restoreProgramData | ( | IProgramListData * | programListData,
|  | ProgramListID * | programListID = `nullptr`,
|  | int32 | programIndex = `0`
| ) |  |

Restores a IProgramListData with a given identifier and index.

bool storeProgramData | ( | IUnitData * | unitData,
|  | UnitID | unitID
| ) |  |

Stores a IUnitData with a given unitID (including the header chunk).

bool restoreProgramData | ( | IUnitData * | unitData,
|  | UnitID * | unitID = `nullptr`
| ) |  |

Restores a IUnitData with a given unitID (optional).

bool restoreProgramData | ( | IUnitInfo * | unitInfo,
|  | int32 | unitProgramListID,
|  | int32 | programIndex = `-1`
| ) |  |

for keeping the controller part in sync concerning preset data stream, unitProgramListID could be ProgramListID or UnitID.

bool getUnitProgramListID | ( | int32 & | unitProgramListID | ) |

Gets the unitProgramListID saved in the kProgramData chunk (if available).

bool savePreset | ( | IBStream * | stream,
|  | const FUID & | classID,
|  | IComponent * | component,
|  | IEditController * | editController = `nullptr`,
|  | const char * | xmlBuffer = `nullptr`,
|  | int32 | xmlSize = `-1`
| ) |  |
| static

Shortcut helper to create preset from component/controller state.

classID is the FUID of the component (processor) part.

bool savePreset | ( | IBStream * | stream,
|  | const FUID & | classID,
|  | IBStream * | componentStream,
|  | IBStream * | editStream = `nullptr`,
|  | const char * | xmlBuffer = `nullptr`,
|  | int32 | xmlSize = `-1`
| ) |  |
| static

bool loadPreset | ( | IBStream * | stream,
|  | const FUID & | classID,
|  | IComponent * | component,
|  | IEditController * | editController = `nullptr`,
|  | std::vector< FUID > * | otherClassIDArray = `nullptr`
| ) |  |
| static

Shortcut helper to load preset with component/controller state.

classID is the FUID of the component (processor) part.

bool readID | ( | ChunkID | id | ) |
| protected

bool writeID | ( | const ChunkID | id | ) |
| protected

bool readEqualID | ( | const ChunkID | id | ) |
| protected

bool readSize | ( | TSize & | size | ) |
| protected

bool writeSize | ( | TSize | size | ) |
| protected

bool readInt32 | ( | int32 & | value | ) |
| protected

bool writeInt32 | ( | int32 | value | ) |
| protected

bool seekTo | ( | TSize | offset | ) |
| protected

bool beginChunk | ( | Entry & | e,
|  | ChunkType | which
| ) |  |
| protected

bool endChunk | ( | Entry & | e | ) |
| protected

## Member Data Documentation

IBStream* stream
| protected

FUID classID
| protected

classID is the FUID of the component (processor) part

Entry entries[kMaxEntries]
| protected

int32 entryCount
| protected

Empty

Copyright ©2022 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.