83 if (!inStream || !outStream)
153 if (otherClassIDArray)
156 if (std::find (otherClassIDArray->begin (), otherClassIDArray->end (),
157 pf.
getClassID ()) == otherClassIDArray->end ())
215 int32 numBytesRead = 0;
217 return numBytesRead ==
sizeof (
ChunkID);
223 int32 numBytesWritten = 0;
224 stream->write ((
void*)
id,
sizeof (
ChunkID), &numBytesWritten);
225 return numBytesWritten ==
sizeof (
ChunkID);
238 int32 numBytesRead = 0;
240#if BYTEORDER == kBigEndian
243 return numBytesRead ==
sizeof (
TSize);
249#if BYTEORDER == kBigEndian
252 int32 numBytesWritten = 0;
254 return numBytesWritten ==
sizeof (
TSize);
260 int32 numBytesRead = 0;
262#if BYTEORDER == kBigEndian
265 return numBytesRead ==
sizeof (
int32);
271#if BYTEORDER == kBigEndian
274 int32 numBytesWritten = 0;
276 return numBytesWritten ==
sizeof (
int32);
297 TSize listOffset = 0;
300 listOffset > 0 &&
seekTo (listOffset)))
303 classID.fromString (classString);
333 classID.toString (classString);
384 e.size = pos -
e.offset;
439 writePos =
e->offset;
496 FReleaser readOnlyBStreamReleaser (readOnlyBStream);
509 FReleaser readOnlyBStreamReleaser (readOnlyBStream);
550 FReleaser readOnlyBStreamReleaser (readOnlyBStream);
602 if (programListID && *programListID != savedProgramListID)
606 auto* readOnlyBStream =
608 FReleaser readOnlyBStreamReleaser (readOnlyBStream);
610 savedProgramListID, programIndex, readOnlyBStream));
638 if (unitId && *unitId != savedUnitID)
642 auto* readOnlyBStream =
644 FReleaser readOnlyStreamReleaser (readOnlyBStream);
645 return (unitData &&
verify (unitData->
setUnitData (savedUnitID, readOnlyBStream)));
656 int32 savedProgramListID = -1;
661 if (unitProgramListID != savedProgramListID)
665 auto* readOnlyBStream =
667 FReleaser readOnlyStreamReleaser (readOnlyBStream);
715 size_t result = fread (buffer, 1,
static_cast<size_t> (numBytes),
file);
724 size_t result = fwrite (buffer, 1,
static_cast<size_t> (numBytes),
file);
792 if (numBytes > maxBytesToRead)
793 numBytes = maxBytesToRead;
807 *numBytesRead = numRead;
814 int32* numBytesWritten)
817 *numBytesWritten = 0;
868 *numBytesRead =
static_cast<int32> (
size);
876 bool res =
mBuffer.put (buffer,
static_cast<uint32> (numBytes));
878 *numBytesWritten = res ? numBytes : 0;
CAdPlugDatabase::CRecord::RecordType type
Definition adplugdb.cpp:93
Definition funknown.h:233
virtual tresult PLUGIN_API queryInterface(const TUID _iid, void **obj)=0
virtual tresult PLUGIN_API read(void *buffer, int32 numBytes, int32 *numBytesRead=nullptr)=0
static const FUID iid
Definition ibstream.h:62
virtual tresult PLUGIN_API write(void *buffer, int32 numBytes, int32 *numBytesWritten=nullptr)=0
@ kIBSeekCur
set seek position relative to current position
Definition ibstream.h:35
@ kIBSeekEnd
set seek position relative to stream end
Definition ibstream.h:36
@ kIBSeekSet
set absolute seek position
Definition ibstream.h:34
Definition vstpresetfile.h:286
tresult PLUGIN_API write(void *buffer, int32 numBytes, int32 *numBytesWritten=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:874
DECLARE_FUNKNOWN_METHODS tresult PLUGIN_API read(void *buffer, int32 numBytes, int32 *numBytesRead=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:864
tresult PLUGIN_API tell(int64 *pos) SMTG_OVERRIDE
Definition vstpresetfile.cpp:926
Buffer mBuffer
Definition vstpresetfile.h:301
BufferStream()
Definition vstpresetfile.cpp:858
virtual ~BufferStream()
Definition vstpresetfile.cpp:861
tresult PLUGIN_API seek(int64 pos, int32 mode, int64 *result=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:884
Definition vstpresetfile.h:233
tresult PLUGIN_API write(void *buffer, int32 numBytes, int32 *numBytesWritten=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:722
static IBStream * open(const char *filename, const char *mode)
open a stream using stdio function
Definition vstpresetfile.cpp:692
tresult PLUGIN_API seek(int64 pos, int32 mode, int64 *result=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:731
tresult PLUGIN_API tell(int64 *pos) SMTG_OVERRIDE
Definition vstpresetfile.cpp:743
DECLARE_FUNKNOWN_METHODS tresult PLUGIN_API read(void *buffer, int32 numBytes, int32 *numBytesRead=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:713
FileStream(FILE *file)
Definition vstpresetfile.cpp:699
FILE * file
Definition vstpresetfile.h:252
virtual ~FileStream()
Definition vstpresetfile.cpp:703
Definition ivstcomponent.h:158
virtual tresult PLUGIN_API setState(IBStream *state)=0
virtual tresult PLUGIN_API getState(IBStream *state)=0
Definition ivsteditcontroller.h:392
virtual tresult PLUGIN_API setState(IBStream *state)=0
virtual tresult PLUGIN_API getState(IBStream *state)=0
virtual tresult PLUGIN_API setComponentState(IBStream *state)=0
Definition ivstunits.h:215
virtual tresult PLUGIN_API getProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
virtual tresult PLUGIN_API setProgramData(ProgramListID listId, int32 programIndex, IBStream *data)=0
Definition ivstunits.h:247
virtual tresult PLUGIN_API getUnitData(UnitID unitId, IBStream *data)=0
virtual tresult PLUGIN_API setUnitData(UnitID unitId, IBStream *data)=0
Definition ivstunits.h:145
virtual tresult PLUGIN_API setUnitProgramData(int32 listOrUnitId, int32 programIndex, IBStream *data)=0
const Entry * getEntry(ChunkType which) const
Returns an entry for a given chunk type.
Definition vstpresetfile.cpp:197
static bool loadPreset(IBStream *stream, const FUID &classID, IComponent *component, IEditController *editController=nullptr, std::vector< FUID > *otherClassIDArray=nullptr)
Definition vstpresetfile.cpp:144
bool readSize(TSize &size)
Definition vstpresetfile.cpp:236
void setClassID(const FUID &uid)
Sets the associated classID (component ID: Processor part (not the controller!)).
Definition vstpresetfile.h:130
int32 entryCount
Definition vstpresetfile.h:226
bool writeHeader()
Writes into the stream the main header.
Definition vstpresetfile.cpp:328
bool contains(ChunkType which) const
Checks if a given chunk type exist in the stream.
Definition vstpresetfile.h:136
PresetFile(IBStream *stream)
Constructor of Preset file based on a stream.
Definition vstpresetfile.cpp:181
bool writeMetaInfo(const char *xmlBuffer, int32 size=-1, bool forceWriting=false)
Definition vstpresetfile.cpp:410
bool writeChunk(const void *data, int32 size, ChunkType which=kComponentState)
Definition vstpresetfile.cpp:453
bool readMetaInfo(char *xmlBuffer, int32 &size)
Definition vstpresetfile.cpp:390
bool readEqualID(const ChunkID id)
Definition vstpresetfile.cpp:229
bool endChunk(Entry &e)
Definition vstpresetfile.cpp:377
bool readInt32(int32 &value)
Definition vstpresetfile.cpp:258
bool storeComponentState(IComponent *component)
Stores the component state (only one time).
Definition vstpresetfile.cpp:470
bool readChunkList()
Reads and build the chunk list (including the header chunk).
Definition vstpresetfile.cpp:288
bool beginChunk(Entry &e, ChunkType which)
Definition vstpresetfile.cpp:364
const Entry * getLastEntry() const
Returns the last available entry.
Definition vstpresetfile.cpp:207
const FUID & getClassID() const
Returns the associated classID (component ID: Processor part (not the controller!)).
Definition vstpresetfile.h:129
bool readID(ChunkID id)
Definition vstpresetfile.cpp:213
bool restoreComponentState(IComponent *component)
Restores the component state.
Definition vstpresetfile.cpp:490
@ kMaxEntries
Definition vstpresetfile.h:224
IBStream * stream
Definition vstpresetfile.h:222
bool getUnitProgramListID(int32 &unitProgramListID)
Definition vstpresetfile.cpp:676
bool writeChunkList()
Writes into the stream the chunk list (should be at the end).
Definition vstpresetfile.cpp:340
bool writeID(const ChunkID id)
Definition vstpresetfile.cpp:221
bool seekToControllerState()
Seeks to the begin of the Controller State.
Definition vstpresetfile.cpp:516
bool storeControllerState(IEditController *editController)
Stores the controller state (only one time).
Definition vstpresetfile.cpp:523
bool seekToComponentState()
Seeks to the begin of the Component State.
Definition vstpresetfile.cpp:463
bool writeSize(TSize size)
Definition vstpresetfile.cpp:247
bool prepareMetaInfoUpdate()
checks if meta info chunk is the last one and jump to correct position.
Definition vstpresetfile.cpp:429
FUID classID
classID is the FUID of the component (processor) part
Definition vstpresetfile.h:223
bool seekTo(TSize offset)
Definition vstpresetfile.cpp:280
bool writeInt32(int32 value)
Definition vstpresetfile.cpp:269
bool restoreControllerState(IEditController *editController)
Restores the controller state.
Definition vstpresetfile.cpp:544
virtual ~PresetFile()
Definition vstpresetfile.cpp:190
static bool savePreset(IBStream *stream, const FUID &classID, IComponent *component, IEditController *editController=nullptr, const char *xmlBuffer=nullptr, int32 xmlSize=-1)
Definition vstpresetfile.cpp:102
Entry entries[kMaxEntries]
Definition vstpresetfile.h:225
bool restoreProgramData(IProgramListData *programListData, ProgramListID *programListID=nullptr, int32 programIndex=0)
Definition vstpresetfile.cpp:593
bool storeProgramData(IBStream *inStream, ProgramListID listID)
Definition vstpresetfile.cpp:557
Definition vstpresetfile.h:259
IBStream * sourceStream
Definition vstpresetfile.h:276
TSize sectionSize
Definition vstpresetfile.h:278
DECLARE_FUNKNOWN_METHODS tresult PLUGIN_API read(void *buffer, int32 numBytes, int32 *numBytesRead=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:783
TSize seekPosition
Definition vstpresetfile.h:279
virtual ~ReadOnlyBStream()
Definition vstpresetfile.cpp:768
ReadOnlyBStream(IBStream *sourceStream, TSize sourceOffset, TSize sectionSize)
Definition vstpresetfile.cpp:756
TSize sourceOffset
Definition vstpresetfile.h:277
tresult PLUGIN_API tell(int64 *pos) SMTG_OVERRIDE
Definition vstpresetfile.cpp:845
tresult PLUGIN_API seek(int64 pos, int32 mode, int64 *result=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:823
tresult PLUGIN_API write(void *buffer, int32 numBytes, int32 *numBytesWritten=nullptr) SMTG_OVERRIDE
Definition vstpresetfile.cpp:813
* e
Definition inflate.c:1404
register unsigned i
Definition inflate.c:1575
static char filename[]
Definition features.c:5
#define SWAP_32(l)
Definition ftypes.h:144
#define SWAP_64(i)
Definition ftypes.h:154
#define FUNKNOWN_CTOR
Definition funknown.h:122
#define IMPLEMENT_FUNKNOWN_METHODS(ClassName, InterfaceName, ClassIID)
Definition funknown.h:150
#define FUNKNOWN_DTOR
Definition funknown.h:127
#define IMPLEMENT_REFCOUNT(ClassName)
Definition funknown.h:106
static PuglViewHint int value
Definition pugl.h:1708
JSAMPIMAGE data
Definition jpeglib.h:945
int version
Definition jpeglib.h:901
Definition ivstattributes.h:28
static const ChunkID commonChunks[kNumPresetChunks]
Definition vstpresetfile.cpp:48
char[4] ChunkID
Definition vstpresetfile.h:84
bool copyStream(IBStream *inStream, IBStream *outStream)
Definition vstpresetfile.cpp:81
bool isEqualID(const ChunkID id1, const ChunkID id2)
Definition vstpresetfile.h:102
static const int32 kClassIDSize
Definition vstpresetfile.cpp:60
ChunkType
Definition vstpresetfile.h:88
@ kComponentState
Definition vstpresetfile.h:90
@ kNumPresetChunks
Definition vstpresetfile.h:95
@ kHeader
Definition vstpresetfile.h:89
@ kProgramData
Definition vstpresetfile.h:92
@ kChunkList
Definition vstpresetfile.h:94
@ kMetaInfo
Definition vstpresetfile.h:93
@ kControllerState
Definition vstpresetfile.h:91
bool verify(tresult result)
Definition vstpresetfile.cpp:75
static const int32 kListOffsetPos
Definition vstpresetfile.cpp:62
int32 ProgramListID
program list identifier
Definition vsttypes.h:76
const ChunkID & getChunkID(ChunkType type)
Definition vstpresetfile.cpp:65
int32 UnitID
unit identifier
Definition vsttypes.h:73
static const int32 kFormatVersion
Definition vstpresetfile.cpp:59
static const int32 kHeaderSize
Definition vstpresetfile.cpp:61
Definition baseiids.cpp:43
int int32
Definition ftypes.h:50
int64 TSize
Definition ftypes.h:75
char char8
Definition ftypes.h:93
int8 TUID[16]
plain UID type
Definition funknown.h:210
char int8
Definition ftypes.h:39
@ kResultOk
Definition funknown.h:193
@ kNotImplemented
Definition funknown.h:197
@ kResultFalse
Definition funknown.h:195
@ kResultTrue
Definition funknown.h:194
@ kNotInitialized
Definition funknown.h:199
long long int64
Definition ftypes.h:66
int32 tresult
Definition ftypes.h:76
unsigned int uint32
Definition ftypes.h:51
png_structrp int mode
Definition png.h:1139
Definition funknown.h:539
Definition vstpresetfile.h:121
memcpy(hh, h, RAND_HEAD_LEN)
int result
Definition process.c:1455
_WDL_CSTRING_PREFIX void INT_PTR count
Definition wdlcstring.h:263