11 const bool showAlertWindow)
18 auto presetVersionAsInt = presetVersion.removeCharacters(
".").getIntValue();
19 auto versionCutoffAsInt =
m_cutoffVersion.removeCharacters(
".").getIntValue();
21 if (presetVersion.equalsIgnoreCase(
"") || presetVersionAsInt < versionCutoffAsInt)
49 jassert(state.isValid());
59 jassert(state.isValid());
65 state.appendChild(pluginData,
nullptr);
70 jassert(state.isValid());
74 ValueTree kwidgetData;
75 for (
int i = 0; i < state.getNumChildren(); ++i)
77 ValueTree child = state.getChild(i);
86 if (kwidgetData.isValid())
97 state.appendChild(kwidgetData,
nullptr);
112 bool hasReformerKwidget =
false;
116 for (
const auto& kwidget : kwidgets)
120 hasReformerKwidget =
true;
125 if (!hasReformerKwidget)
133 auto incomingReformerVersionAsInt = incomingReformerVersion.removeCharacters(
".").getIntValue();
136 if ((incomingReformerVersion.equalsIgnoreCase(
"") ||
137 incomingReformerVersionAsInt < currentReformerVersionAsInt) &&
138 currentReformerVersionAsInt < 2)
151 return versionString;
158 XmlDocument doc(presetFile);
159 auto xml = doc.getDocumentElement();
160 return ValueTree::fromXml(*xml);
167 auto xml = valueTree.createXml();
168 xml->writeTo(outputFile);
175 auto name = file.getFileNameWithoutExtension();
182 return File::getSpecialLocation(File::commonApplicationDataDirectory).getFullPathName() +
183 "/Application Support/Krotos/" + JucePlugin_Name +
"/UITemplates/";
185 return File(
"C:\\ProgramData\\Krotos\\" JucePlugin_Name
"\\UITemplates\\");
192 return File::getSpecialLocation(File::userApplicationDataDirectory).getFullPathName() +
193 "/Application Support/Krotos/" + JucePlugin_Name +
"/UITemplates/";
195 return File::getSpecialLocation(File::userApplicationDataDirectory).getFullPathName() +
"\\Krotos\\" +
196 JucePlugin_Name +
"\\UITemplates\\";
203 return File::getSpecialLocation(File::commonApplicationDataDirectory).getFullPathName() +
204 "/Application Support/Krotos/" + JucePlugin_Name +
"/Presets/main/";
206 return File::getSpecialLocation(File::commonApplicationDataDirectory).getFullPathName() +
"\\Krotos\\" +
207 JucePlugin_Name +
"\\Presets\\main";
214 return File::getSpecialLocation(File::userApplicationDataDirectory).getFullPathName() +
215 "/Application Support/Krotos/" + JucePlugin_Name +
"/Presets/main/";
217 return File::getSpecialLocation(File::userApplicationDataDirectory).getFullPathName() +
"\\Krotos\\" +
218 JucePlugin_Name +
"\\Presets\\main\\";
227 if (!initFile.exists())
230 "On load of init preset");
236 "On load of init preset");
247 if (!host.isPluginval())
255 std::cout << ex.
what() << std::endl;
287 if (userPresetPath.isDirectory() !=
true)
289 if (userPresetPath.createDirectory() != Result::ok())
291 throw PresetException(
"Error: Cannot find or create user preset directory",
292 "On init of user preset dir");
296 if (factoryPresetPath.isDirectory() !=
true)
299 "On init of factory preset dir");
305 if (userTemplatePath.isDirectory() !=
true)
307 if (userTemplatePath.createDirectory() != Result::ok())
309 throw PresetException(
"Error: Cannot find or create user template directory",
310 "On init of user template dir");
314 if (factoryTemplatePath.isDirectory() !=
true)
316 throw PresetException(
"Error: Factory template folder does not exist",
317 "On init of factory template dir");
325 auto files = presetDirectory.findChildFiles(File::findFilesAndDirectories,
false,
"*");
326 for (
auto& file : files)
328 auto name = file.getFileNameWithoutExtension();
332 else if (file.isDirectory())
An exception for preset manager.
Definition PresetManager.h:148
String m_whenDidItHappen
Definition PresetManager.h:159
char const * what() const noexcept override
Definition PresetManager.cpp:339
String when() const
Definition PresetManager.cpp:341
const Preset & getCurrentPreset() const
Definition PresetManager.cpp:261
static void writeReformerVersion(ValueTree &state)
Writes the Reformer version to a ValueTree.
Definition PresetManager.cpp:68
static const String m_cutoffVersion
Definition PresetManager.h:130
PopupMenu getCurrentPopupMenu()
Definition PresetManager.cpp:272
void setCurrentPreset(const File &presetFile)
Definition PresetManager.cpp:263
PresetManager()
Definition PresetManager.cpp:241
static void checkReformerVersion(ValueTree &state)
Checks the Reformer version within a ValueTree.
Definition PresetManager.cpp:101
static File getFactoryPresetDirectory()
Definition PresetManager.cpp:200
static const String m_presetFileExtension
Definition PresetManager.h:133
static File getInitPresetFile()
Definition PresetManager.cpp:222
static void checkReformerVersionInternal(ValueTree &state)
Definition PresetManager.cpp:110
static File getUserPresetDirectory()
Definition PresetManager.cpp:211
Preset m_currentPreset
Definition PresetManager.h:136
static const String m_initFileName
Definition PresetManager.h:134
static const String m_factoryPresetFolderName
Definition PresetManager.h:131
static ValueTree getValueTreeFromFile(const File &presetFile)
Definition PresetManager.cpp:154
static void writeValueTreeToFile(const ValueTree &valueTree, const File &outputFile)
Definition PresetManager.cpp:163
static Preset getPresetFromFile(const File &file)
Definition PresetManager.cpp:171
void initializePresetDirectories()
Definition PresetManager.cpp:282
static String getPresetVersion(const ValueTree &state)
Definition PresetManager.cpp:47
PopupMenu getPopupMenuFromDirectory(const File &presetDirectory)
Definition PresetManager.cpp:321
static File getUserTemplateDirectory()
Definition PresetManager.cpp:189
static bool checkPresetVersion(const File &presetFile, const String &pluginVersion, const bool showAlertWindow)
Definition PresetManager.cpp:10
std::function< void(const ValueTree &)> presetChanged
Definition PresetManager.h:26
static const String m_userPresetFolderName
Definition PresetManager.h:132
static void writePresetVersion(ValueTree &state, const String &versionNumber)
Definition PresetManager.cpp:57
static String getReformerVersion(ValueTree &state)
Retrieves the Reformer version from a ValueTree.
Definition PresetManager.cpp:146
static File getFactoryTemplateDirectory()
Definition PresetManager.cpp:179
static void alertPresetVersion(const String &pluginVersion, const String &presetVersion, const String &cutoffVersion)
Definition PresetManagerUI.cpp:3
Definition AirAbsorptionFilter.cpp:2
Definition PresetManager.h:20
File path
Definition PresetManager.h:22
static const Identifier id
Definition XmlType.h:41
static const Identifier value
Definition XmlType.h:42
static const Identifier type
Definition XmlType.h:43
static const Identifier kwidgets
Definition XmlType.h:22
static const Identifier pluginData
Definition XmlType.h:17
static const Identifier kwidgetData
Definition XmlType.h:30