void MLPluginProcessor::loadStateFromFile(const File& f) { if (f.exists()) { String extension = f.getFileExtension(); if (extension == ".mlpreset") { // load cross-platform mlpreset file. ScopedPointer<XmlDocument> stateToLoad (new XmlDocument(f)); if (stateToLoad != NULL) { XmlElementPtr pDocElem (stateToLoad->getDocumentElement(true)); setStateFromXML(*pDocElem, false); mpLatestStateLoaded = pDocElem; } } else if (extension == ".aupreset") { // tell AU wrapper to load AU-compatible .aupreset file. sendMessageToMLListener (MLAudioProcessorListener::kLoad, f); } } }
void MLPluginProcessor::setPatchStateFromText (const String& stateStr) { const String& trimmedState = stateStr.trimStart(); if(trimmedState[0] == '{') { // assume JSON cJSON* root = cJSON_Parse(trimmedState.toUTF8()); if(root) { mpPatchState->setStateFromJSON(root); cJSON_Delete(root); } else { debug() << "MLPluginProcessor::setPatchStateFromText: couldn't create JSON object!\n"; } } else if (trimmedState[0] == '<') { // assume XML ScopedPointer<XmlDocument> stateToLoad (new XmlDocument(trimmedState)); if (stateToLoad != NULL) { XmlElementPtr pDocElem (stateToLoad->getDocumentElement(true)); setStateFromXML(*pDocElem, false); } else { debug() << "MLPluginProcessor::setPatchStateFromText: couldn't create XML object!\n"; } } else { debug() << "MLPluginProcessor::setPatchStateFromText: unknown format for .mlpreset file!\n"; } updateChangedProperties(); }