bool Updater::getLatestComponents() { URL url = URL(UPDATER_URL_PREFIX).getChildURL("latest.php") .withParameter("channel", launcherApplication::getConfig()->getString("updater", "channel")) .withParameter("platform", launcherApplication::getConfig()->getString("updater", "platform")) .withParameter("components", "launcher,tremulous"); ScopedPointer<InputStream> stream(url.createInputStream(false, nullptr, nullptr, String(), 5000)); if (stream == nullptr) { return false; } var versionsVar = JSON::parse(*stream); if (versionsVar == var::null || !versionsVar.isObject()) { return false; } DynamicObject *versionsObject = versionsVar.getDynamicObject(); NamedValueSet *versionsSet = &versionsObject->getProperties(); components.clear(); for (int i = 0; i < versionsSet->size(); i++) { String componentName(versionsSet->getName(i)); Launcher::Component component(componentName); component.setRemoteVersion(versionsSet->getValueAt(i).toString()); components.add(component); } return true; }
void IniFile::save() { const GenericScopedLock<CriticalSection> scopedlock(lock); String config; for (int i = 0; i < data.size(); i++) { String section(data.getName(i).toString()); DynamicObject *sectionObject = data[section].getDynamicObject(); NamedValueSet *sectionSet = §ionObject->getProperties(); if (sectionSet->size() == 0) { continue; } if (section != "__empty") { config += '['; config += section; #ifdef JUCE_WINDOWS config += "]\r\n"; #else config += "]\n"; #endif } for (int j = 0; j < sectionSet->size(); j++) { config += sectionSet->getName(j).toString(); config += '='; config += sectionSet->getValueAt(j).toString(); #ifdef JUCE_WINDOWS config += "\r\n"; #else config += '\n'; #endif } #ifdef JUCE_WINDOWS config += "\r\n"; #else config += '\n'; #endif } file.replaceWithText(config); }
void pluginParametersSetIndexed(AudioPluginInstance *instance, const NamedValueSet &indexedParameters) { int numParams = instance->getNumParameters(); for (int j = 0, m = indexedParameters.size(); j < m; ++j) { Identifier name = indexedParameters.getName(j); int i = name.toString().getIntValue(); var val = indexedParameters.getValueAt(j); if (!val.isVoid() && i >= 0 && i < numParams) { DBG << "Setting indexed parameter " << i << " - " << name.toString() << " to " << (float)val; instance->setParameter(i, (float)val); DBG << "... reported as " << instance->getParameter(i) << endl; } } }
void LoadSave::varToState(mopo::HelmEngine* synth, const CriticalSection& critical_section, var state) { if (!state.isObject()) return; mopo::control_map controls = synth->getControls(); DynamicObject* object_state = state.getDynamicObject(); ScopedLock lock(critical_section); NamedValueSet properties = object_state->getProperties(); int size = properties.size(); for (int i = 0; i < size; ++i) { Identifier id = properties.getName(i); if (id.isValid()) { std::string name = id.toString().toStdString(); if (controls.count(name)) { mopo::mopo_float value = properties.getValueAt(i); controls[name]->set(value); } } } synth->clearModulations(); Array<var>* modulations = object_state->getProperty("modulations").getArray(); var* modulation = modulations->begin(); for (; modulation != modulations->end(); ++modulation) { DynamicObject* mod = modulation->getDynamicObject(); std::string source = mod->getProperty("source").toString().toStdString(); std::string destination = mod->getProperty("destination").toString().toStdString(); mopo::ModulationConnection* connection = new mopo::ModulationConnection(source, destination); connection->amount.set(mod->getProperty("amount")); synth->connectModulation(connection); } }