示例#1
0
const String CtrlrPanel::getUniqueModulatorName(const String &proposedName)
{
	if (getRestoreState())
		return (proposedName);

	uint32 marker=0;
	String basename=String::empty;
	String nameToLookFor;

	if (proposedName.fromLastOccurrenceOf("-", false, true) != String::empty)
	{
		basename		= proposedName.upToLastOccurrenceOf("-", false, true);
		marker			= proposedName.fromLastOccurrenceOf("-", false, true).getIntValue();
		nameToLookFor	= proposedName;
	}
	else
	{
		basename		= proposedName;
		marker			= ctrlrModulators.size();
		nameToLookFor	= basename + "-" + String(marker);
	}

	while (getModulator(nameToLookFor))
	{
		nameToLookFor = basename + "-" + String(++marker);
	}

	return (nameToLookFor);
}
示例#2
0
void CtrlrPanel::setProgram(ValueTree programTree, const bool sendSnapshotNow)
{
	ValueTree program;

	if (programTree.hasType(Ids::panelState))
	{
		program = programTree;
	}
	else
	{
		if (programTree.getChildWithName(Ids::panelState).isValid())
		{
			program = programTree.getChildWithName(Ids::panelState);
		}
	}

	setProgramState (true);
	if (program.isValid())
	{
		for (int i=0; i<program.getNumChildren(); i++)
		{
			if (program.getChild(i).hasType(Ids::value))
			{
				CtrlrModulator *m = getModulator (program.getChild(i).getProperty(Ids::name));
				if (m)
				{
					m->setRestoreState (true);
					m->getProcessor().setValueFromGUI (program.getChild(i).getProperty(Ids::value), true);
					if (m->getComponent())
					{
						m->getComponent()->setComponentValue (program.getChild(i).getProperty(Ids::value), false);
					}
					m->getProcessor().handleUpdateNowIfNeeded();
					m->setRestoreState (false);
				}
			}
		}

		if ((bool)getProperty (Ids::panelMidiSnapshotAfterProgramChange) == true)
		{
			snapshot.sendSnapshot();
		}

		if (luaPanelProgramChangedCbk && !luaPanelProgramChangedCbk.wasObjectDeleted())
		{
			if (luaPanelProgramChangedCbk->isValid())
			{
				getCtrlrLuaManager().getMethodManager().call (luaPanelProgramChangedCbk);
			}
		}
	}

	setProgramState (false);

	if (sendSnapshotNow)
	{
		_DBG("CtrlrPanel::setProgram sendSnapshotNow");
		sendSnapshot();
	}
}
示例#3
0
int CtrlrManager::getModulatorVstIndexByName(const String &modulatorName)
{
	CtrlrModulator *m = getModulator(modulatorName);

	if (m)
	{
		return (m->getVstIndex());
	}
	else
	{
		return (-1);
	}
}
示例#4
0
const int CtrlrPanel::getModulatorIndex (const String &modulatorToFind) const
{
	return (ctrlrModulators.indexOf(getModulator(modulatorToFind)));
}