VST 3 SDK VST 3.7
SDK for developing VST plug-in
|
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. More... | |
virtual | ~PresetFile () |
IBStream * | getStream () const |
Returns the associated stream. More... | |
const FUID & | getClassID () const |
Returns the associated classID (component ID: Processor part (not the controller!)). More... | |
void | setClassID (const FUID &uid) |
Sets the associated classID (component ID: Processor part (not the controller!)). More... | |
const Entry * | getEntry (ChunkType which) const |
Returns an entry for a given chunk type. More... | |
const Entry * | getLastEntry () const |
Returns the last available entry. More... | |
int32 | getEntryCount () const |
Returns the number of total entries in the current stream. More... | |
const Entry & | at (int32 index) const |
Returns the entry at a given position. More... | |
bool | contains (ChunkType which) const |
Checks if a given chunk type exist in the stream. More... | |
bool | readChunkList () |
Reads and build the chunk list (including the header chunk). More... | |
bool | writeHeader () |
Writes into the stream the main header. More... | |
bool | writeChunkList () |
Writes into the stream the chunk list (should be at the end). More... | |
bool | readMetaInfo (char *xmlBuffer, int32 &size) |
Reads the meta XML info and its size, the size could be retrieved by passing zero as xmlBuffer. More... | |
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. More... | |
bool | prepareMetaInfoUpdate () |
checks if meta info chunk is the last one and jump to correct position. More... | |
bool | writeChunk (const void *data, int32 size, ChunkType which=kComponentState) |
Writes a given data of a given size as "which" chunk type. More... | |
bool | seekToComponentState () |
Seeks to the begin of the Component State. More... | |
bool | storeComponentState (IComponent *component) |
Stores the component state (only one time). More... | |
bool | storeComponentState (IBStream *componentStream) |
Stores the component state from stream (only one time). More... | |
bool | restoreComponentState (IComponent *component) |
Restores the component state. More... | |
bool | seekToControllerState () |
Seeks to the begin of the Controller State. More... | |
bool | storeControllerState (IEditController *editController) |
Stores the controller state (only one time). More... | |
bool | storeControllerState (IBStream *editStream) |
Stores the controller state from stream (only one time). More... | |
bool | restoreControllerState (IEditController *editController) |
Restores the controller state. More... | |
bool | restoreComponentState (IEditController *editController) |
Restores the component state and apply it to the controller. More... | |
bool | storeProgramData (IBStream *inStream, ProgramListID listID) |
Store program data or unit data from stream (including the header chunk). More... | |
bool | storeProgramData (IProgramListData *programListData, ProgramListID programListID, int32 programIndex) |
Stores a IProgramListData with a given identifier and index (including the header chunk). More... | |
bool | restoreProgramData (IProgramListData *programListData, ProgramListID *programListID=nullptr, int32 programIndex=0) |
Restores a IProgramListData with a given identifier and index. More... | |
bool | storeProgramData (IUnitData *unitData, UnitID unitID) |
Stores a IUnitData with a given unitID (including the header chunk). More... | |
bool | restoreProgramData (IUnitData *unitData, UnitID *unitID=nullptr) |
Restores a IUnitData with a given unitID (optional). More... | |
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. More... | |
bool | getUnitProgramListID (int32 &unitProgramListID) |
Gets the unitProgramListID saved in the kProgramData chunk (if available). More... | |
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. More... | |
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. More... | |
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 More... | |
Entry | entries [kMaxEntries] |
int32 | entryCount {0} |
Handler for a VST 3 Preset File.
PresetFile | ( | IBStream * | stream | ) |
Constructor of Preset file based on a stream.
|
virtual |
|
inline |
Returns the associated stream.
|
inline |
Returns the associated classID (component ID: Processor part (not the controller!)).
|
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.
|
inline |
Returns the number of total entries in the current stream.
|
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).
Reads the meta XML info and its size, the size could be retrieved by passing zero as xmlBuffer.
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).
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.
Stores a IUnitData with a given unitID (including the header chunk).
Restores a IUnitData with a given unitID (optional).
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 |
Shortcut helper to create preset from component/controller state.
classID is the FUID of the component (processor) part.
|
static |
|
static |
Shortcut helper to load preset with component/controller state.
classID is the FUID of the component (processor) part.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |