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); }
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(); } }
int CtrlrManager::getModulatorVstIndexByName(const String &modulatorName) { CtrlrModulator *m = getModulator(modulatorName); if (m) { return (m->getVstIndex()); } else { return (-1); } }
const int CtrlrPanel::getModulatorIndex (const String &modulatorToFind) const { return (ctrlrModulators.indexOf(getModulator(modulatorToFind))); }