Пример #1
0
//------------------------------------------------------------------------
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;
}
Пример #2
0
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());
}
Пример #3
0
//------------------------------------------------------------------------
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);
}
Пример #4
0
//------------------------------------------------------------------------
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);
}
Пример #5
0
//------------------------------------------------------------------------
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);
}
Пример #6
0
//------------------------------------------------------------------------
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);
}
Пример #7
0
//------------------------------------------------------------------------
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);
}
Пример #8
0
//------------------------------------------------------------------------
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);
}