| 274 | } |
| 275 | |
| 276 | void StatePresets::recursiveFileSearch(juce::XmlElement& parentXML, juce::File dir) |
| 277 | { |
| 278 | juce::RangedDirectoryIterator iterator(dir, false, "*", 3); // findDirectories = 1, findFiles = 2, findFilesAndDirectories = 3, ignoreHiddenFiles = 4 |
| 279 | for (auto file : iterator) |
| 280 | { |
| 281 | // is folder |
| 282 | if (file.isDirectory()) |
| 283 | { |
| 284 | juce::String folderName; |
| 285 | folderName = file.getFile().getFileName(); |
| 286 | std::unique_ptr<juce::XmlElement> currentState { new juce::XmlElement { folderName } }; // must be pointer as parent takes ownership |
| 287 | //DBG(dir.getChildFile(file.getFile().getFileName()).getFullPathName()); |
| 288 | recursiveFileSearch(*currentState, dir.getChildFile(file.getFile().getFileName())); |
| 289 | parentXML.addChildElement(currentState.release()); // will be deleted by parent element |
| 290 | } |
| 291 | // is preset |
| 292 | else if (file.getFile().hasFileExtension(PRESET_EXETENSION)) |
| 293 | { |
| 294 | numPresets++; |
| 295 | juce::String newPresetId = getNextAvailablePresetId(); // presetId format: "preset##" |
| 296 | std::unique_ptr<juce::XmlElement> currentState { new juce::XmlElement { newPresetId } }; // must be pointer as parent takes ownership |
| 297 | parseFileToXmlElement(file.getFile(), *currentState); |
| 298 | currentState->setTagName(newPresetId); |
| 299 | |
| 300 | // if file name differs from preset name in .fire |
| 301 | juce::String newName = file.getFile().getFileNameWithoutExtension(); |
| 302 | if (newName != currentState->getStringAttribute("presetName")) |
| 303 | { |
| 304 | currentState->setAttribute("presetName", newName); |
| 305 | } |
| 306 | |
| 307 | //mPresetXml.addChildElement(currentState.release()); // will be deleted by parent element |
| 308 | parentXML.addChildElement(currentState.release()); // will be deleted by parent element |
| 309 | } |
| 310 | else |
| 311 | { |
| 312 | // not a fire preset, maybe popup alert window? |
| 313 | //jassertfalse; |
| 314 | } |
| 315 | } |
| 316 | } |
| 317 | |
| 318 | void StatePresets::recursiveSort(juce::XmlElement* parent) |
| 319 | { |
nothing calls this directly
no test coverage detected