summaryrefslogtreecommitdiff
path: root/mm/2s2h/PresetManager/PresetManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mm/2s2h/PresetManager/PresetManager.cpp')
-rw-r--r--mm/2s2h/PresetManager/PresetManager.cpp27
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);