diff options
Diffstat (limited to 'mm/2s2h/PresetManager/PresetManager.cpp')
| -rw-r--r-- | mm/2s2h/PresetManager/PresetManager.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mm/2s2h/PresetManager/PresetManager.cpp b/mm/2s2h/PresetManager/PresetManager.cpp index 44dea18be..9121944ce 100644 --- a/mm/2s2h/PresetManager/PresetManager.cpp +++ b/mm/2s2h/PresetManager/PresetManager.cpp @@ -1,5 +1,6 @@ #include "PresetManager.h" #include <libultraship/bridge/consolevariablebridge.h> +#include <algorithm> #include <filesystem> #include <fstream> #include <set> @@ -815,6 +816,32 @@ void PresetManager_CreatePreset(std::string presetName) { } catch (...) { Notification::Emit({ .suffix = "Failed to create preset" }); } } +std::vector<std::string> PresetManager_GetPresetNames() { + std::vector<std::string> names; + names.reserve(presets.size()); + + for (const auto& [name, pair] : presets) { + names.push_back(name); + } + + // presets is an unordered map, sort it + std::sort(names.begin(), names.end()); + + return names; +} + +bool PresetManager_ApplyPresetByName(const std::string& name) { + auto it = presets.find(name); + + if (it == presets.end()) { + return false; + } + + PresetManager_ApplyPreset(it->second.first); + + return true; +} + bool PresetManager_HandleFileDropped(char* filePath) { try { std::ifstream fileStream(filePath); |
