#include "settings.h" #include "imgui/imgui.h" #include #include "core/params.h" #include "core/config.h" #include "main_ui.h" namespace satdump { namespace settings { std::vector> settings_user_interface; void setup() { nlohmann::ordered_json params = satdump::config::main_cfg["user_interface"]; for (nlohmann::detail::iteration_proxy_value> cfg : params.items()) { // Check setting type, and create an EditableParameter if possible if (cfg.value().contains("type") && cfg.value().contains("value") && cfg.value().contains("name")) settings_user_interface.push_back({cfg.key(), params::EditableParameter(nlohmann::json(cfg.value()))}); } } void render() { if (ImGui::CollapsingHeader("User Interface")) { if (ImGui::BeginTable("##satdumpuisettings", 2, ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg)) { for (std::pair &p : settings_user_interface) p.second.draw(); ImGui::EndTable(); } } if (ImGui::Button("Save")) { for (std::pair &p : settings_user_interface) satdump::config::main_cfg["user_interface"][p.first]["value"] = p.second.getValue(); config::saveUserConfig(); } } } }