//------------------------------------------------------------------------ bool PresetFile::storeProgramData (IBStream* inStream, ProgramListID listID) { if (contains (kProgramData)) // already exists! return false; writeHeader (); Entry e = {0}; if (beginChunk (e, kProgramData)) { if (writeInt32 (listID)) { int8 buffer[8192]; int32 read = 0; int32 written = 0; while (inStream->read (buffer, 8192, &read) == kResultTrue && read > 0) { if (stream->write (buffer, read, &written) != kResultTrue) { return false; } } return endChunk (e); } } return false; }
void NoteData::recalcAvgPitch() { _numPeriods = 0.0f; for(int j=startChunk(); j<endChunk(); j++) { _numPeriods += float(channel->framesPerChunk()) / float(channel->dataAtChunk(j)->period); } _avgPitch = bound(freq2pitch(avgFreq()), 0.0, gdata->topPitch()); }
//------------------------------------------------------------------------ bool PresetFile::storeControllerState (IEditController* editController) { if (contains (kControllerState)) // already exists! return false; Entry e = {0}; return beginChunk (e, kControllerState) && verify (editController->getState (stream)) && endChunk (e); }
//------------------------------------------------------------------------ bool PresetFile::storeComponentState (IComponent* component) { if (contains (kComponentState)) // already exists! return false; Entry e = {0}; return beginChunk (e, kComponentState) && verify (component->getState (stream)) && endChunk (e); }
//------------------------------------------------------------------------ bool PresetFile::writeChunk (const void* data, int32 size, ChunkType which) { if (contains (which)) // already exists! return false; Entry e = {0}; return beginChunk (e, which) && verify (stream->write ((void*)data, size)) && endChunk (e); }
//------------------------------------------------------------------------ bool PresetFile::storeProgramData (IUnitData* unitData, UnitID unitID) { if (contains (kProgramData)) // already exists! return false; writeHeader (); Entry e = {0}; return beginChunk (e, kProgramData) && writeInt32 (unitID) && verify (unitData->getUnitData (unitID, stream)) && endChunk (e); }
//------------------------------------------------------------------------ bool PresetFile::storeProgramData (IProgramListData* programListData, ProgramListID listID, int32 programIndex) { if (contains (kProgramData)) // already exists! return false; writeHeader (); Entry e = {0}; return beginChunk (e, kProgramData) && writeInt32 (listID) && verify (programListData->getProgramData (listID, programIndex, stream)) && endChunk (e); }
//------------------------------------------------------------------------ bool PresetFile::writeMetaInfo (const char* xmlBuffer, int32 size, bool forceWriting) { if (contains (kMetaInfo)) // already exists! { if (!forceWriting) return false; } if (!prepareMetaInfoUpdate ()) return false; if (size == -1) size = (int32)strlen (xmlBuffer); Entry e = {0}; return beginChunk (e, kMetaInfo) && verify (stream->write ((void*)xmlBuffer, size)) && endChunk (e); }