LMMS
Loading...
Searching...
No Matches
Steinberg::Vst::PresetFile Class Reference

#include <vstpresetfile.h>

Classes

struct  Entry

Public Member Functions

 PresetFile (IBStream *stream)
 Constructor of Preset file based on a stream.
virtual ~PresetFile ()
IBStreamgetStream ()
 Returns the associated stream.
const FUIDgetClassID () 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 EntrygetEntry (ChunkType which) const
 Returns an entry for a given chunk type.
const EntrygetLastEntry () const
 Returns the last available entry.
int32 getEntryCount () const
 Returns the number of total entries in the current stream.
const Entryat (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)
bool writeMetaInfo (const char *xmlBuffer, int32 size=-1, bool forceWriting=false)
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)
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)
bool storeProgramData (IProgramListData *programListData, ProgramListID programListID, int32 programIndex)
bool restoreProgramData (IProgramListData *programListData, ProgramListID *programListID=nullptr, int32 programIndex=0)
bool storeProgramData (IUnitData *unitData, UnitID unitID)
bool restoreProgramData (IUnitData *unitData, UnitID *unitID=nullptr)
bool restoreProgramData (IUnitInfo *unitInfo, int32 unitProgramListID, int32 programIndex=-1)
bool getUnitProgramListID (int32 &unitProgramListID)

Static Public Member Functions

static bool savePreset (IBStream *stream, const FUID &classID, IComponent *component, IEditController *editController=nullptr, const char *xmlBuffer=nullptr, int32 xmlSize=-1)
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)

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

IBStreamstream
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

anonymous enum
protected
Enumerator
kMaxEntries 

Constructor & Destructor Documentation

◆ PresetFile()

Steinberg::Vst::PresetFile::PresetFile ( IBStream * stream)

Constructor of Preset file based on a stream.

◆ ~PresetFile()

Steinberg::Vst::PresetFile::~PresetFile ( )
virtual

Member Function Documentation

◆ at()

const Entry & Steinberg::Vst::PresetFile::at ( int32 index) const
inline

Returns the entry at a given position.

◆ beginChunk()

bool Steinberg::Vst::PresetFile::beginChunk ( Entry & e,
ChunkType which )
protected

◆ contains()

bool Steinberg::Vst::PresetFile::contains ( ChunkType which) const
inline

Checks if a given chunk type exist in the stream.

◆ endChunk()

bool Steinberg::Vst::PresetFile::endChunk ( Entry & e)
protected

◆ getClassID()

const FUID & Steinberg::Vst::PresetFile::getClassID ( ) const
inline

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

◆ getEntry()

const PresetFile::Entry * Steinberg::Vst::PresetFile::getEntry ( ChunkType which) const

Returns an entry for a given chunk type.

◆ getEntryCount()

int32 Steinberg::Vst::PresetFile::getEntryCount ( ) const
inline

Returns the number of total entries in the current stream.

◆ getLastEntry()

const PresetFile::Entry * Steinberg::Vst::PresetFile::getLastEntry ( ) const

Returns the last available entry.

◆ getStream()

IBStream * Steinberg::Vst::PresetFile::getStream ( )
inline

Returns the associated stream.

◆ getUnitProgramListID()

bool Steinberg::Vst::PresetFile::getUnitProgramListID ( int32 & unitProgramListID)

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

◆ loadPreset()

bool Steinberg::Vst::PresetFile::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.

◆ prepareMetaInfoUpdate()

bool Steinberg::Vst::PresetFile::prepareMetaInfoUpdate ( )

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

◆ readChunkList()

bool Steinberg::Vst::PresetFile::readChunkList ( )

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

◆ readEqualID()

bool Steinberg::Vst::PresetFile::readEqualID ( const ChunkID id)
protected

◆ readID()

bool Steinberg::Vst::PresetFile::readID ( ChunkID id)
protected

◆ readInt32()

bool Steinberg::Vst::PresetFile::readInt32 ( int32 & value)
protected

◆ readMetaInfo()

bool Steinberg::Vst::PresetFile::readMetaInfo ( char * xmlBuffer,
int32 & size )

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

◆ readSize()

bool Steinberg::Vst::PresetFile::readSize ( TSize & size)
protected

◆ restoreComponentState() [1/2]

bool Steinberg::Vst::PresetFile::restoreComponentState ( IComponent * component)

Restores the component state.

◆ restoreComponentState() [2/2]

bool Steinberg::Vst::PresetFile::restoreComponentState ( IEditController * editController)

Restores the component state and apply it to the controller.

◆ restoreControllerState()

bool Steinberg::Vst::PresetFile::restoreControllerState ( IEditController * editController)

Restores the controller state.

◆ restoreProgramData() [1/3]

bool Steinberg::Vst::PresetFile::restoreProgramData ( IProgramListData * programListData,
ProgramListID * programListID = nullptr,
int32 programIndex = 0 )

Restores a IProgramListData with a given identifier and index.

◆ restoreProgramData() [2/3]

bool Steinberg::Vst::PresetFile::restoreProgramData ( IUnitData * unitData,
UnitID * unitID = nullptr )

Restores a IUnitData with a given unitID (optional).

◆ restoreProgramData() [3/3]

bool Steinberg::Vst::PresetFile::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.

◆ savePreset() [1/2]

bool Steinberg::Vst::PresetFile::savePreset ( IBStream * stream,
const FUID & classID,
IBStream * componentStream,
IBStream * editStream = nullptr,
const char * xmlBuffer = nullptr,
int32 xmlSize = -1 )
static

◆ savePreset() [2/2]

bool Steinberg::Vst::PresetFile::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.

◆ seekTo()

bool Steinberg::Vst::PresetFile::seekTo ( TSize offset)
protected

◆ seekToComponentState()

bool Steinberg::Vst::PresetFile::seekToComponentState ( )

Seeks to the begin of the Component State.

◆ seekToControllerState()

bool Steinberg::Vst::PresetFile::seekToControllerState ( )

Seeks to the begin of the Controller State.

◆ setClassID()

void Steinberg::Vst::PresetFile::setClassID ( const FUID & uid)
inline

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

◆ storeComponentState() [1/2]

bool Steinberg::Vst::PresetFile::storeComponentState ( IBStream * componentStream)

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

◆ storeComponentState() [2/2]

bool Steinberg::Vst::PresetFile::storeComponentState ( IComponent * component)

Stores the component state (only one time).

◆ storeControllerState() [1/2]

bool Steinberg::Vst::PresetFile::storeControllerState ( IBStream * editStream)

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

◆ storeControllerState() [2/2]

bool Steinberg::Vst::PresetFile::storeControllerState ( IEditController * editController)

Stores the controller state (only one time).

◆ storeProgramData() [1/3]

bool Steinberg::Vst::PresetFile::storeProgramData ( IBStream * inStream,
ProgramListID listID )

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

Parameters
inStream
listIDcould be ProgramListID or UnitID.

◆ storeProgramData() [2/3]

bool Steinberg::Vst::PresetFile::storeProgramData ( IProgramListData * programListData,
ProgramListID programListID,
int32 programIndex )

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

◆ storeProgramData() [3/3]

bool Steinberg::Vst::PresetFile::storeProgramData ( IUnitData * unitData,
UnitID unitID )

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

◆ writeChunk()

bool Steinberg::Vst::PresetFile::writeChunk ( const void * data,
int32 size,
ChunkType which = kComponentState )

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

◆ writeChunkList()

bool Steinberg::Vst::PresetFile::writeChunkList ( )

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

◆ writeHeader()

bool Steinberg::Vst::PresetFile::writeHeader ( )

Writes into the stream the main header.

◆ writeID()

bool Steinberg::Vst::PresetFile::writeID ( const ChunkID id)
protected

◆ writeInt32()

bool Steinberg::Vst::PresetFile::writeInt32 ( int32 value)
protected

◆ writeMetaInfo()

bool Steinberg::Vst::PresetFile::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.

◆ writeSize()

bool Steinberg::Vst::PresetFile::writeSize ( TSize size)
protected

Member Data Documentation

◆ classID

FUID Steinberg::Vst::PresetFile::classID
protected

classID is the FUID of the component (processor) part

◆ entries

Entry Steinberg::Vst::PresetFile::entries[kMaxEntries]
protected

◆ entryCount

int32 Steinberg::Vst::PresetFile::entryCount
protected

◆ stream

IBStream* Steinberg::Vst::PresetFile::stream
protected

The documentation for this class was generated from the following files: