satdump/src-interface/settingsui.cpp

108 lines
3.6 KiB
C++
Raw Normal View History

2021-06-12 17:49:53 +02:00
#include "settingsui.h"
#include "imgui/imgui.h"
#include "settings.h"
#include "module.h"
#include "logger.h"
2021-10-15 16:12:55 +02:00
#include "tle.h"
2021-10-27 12:47:33 +02:00
#include "imgui/file_selection.h"
2021-06-12 17:49:53 +02:00
2021-06-12 21:14:32 +02:00
bool use_light_theme;
2021-06-25 14:52:03 +02:00
float manual_dpi_scaling;
bool live_use_generated_output_folder;
std::string default_live_output_folder;
2021-08-15 16:47:44 +02:00
std::string default_recorder_output_folder;
2021-06-12 21:14:32 +02:00
void parseSettingsOrDefaults()
{
if (settings.contains("use_light_theme"))
use_light_theme = settings["use_light_theme"].get<int>();
else
use_light_theme = false;
if (settings.contains("demod_constellation_size"))
demod_constellation_size = settings["demod_constellation_size"].get<int>();
else
demod_constellation_size = 200;
2021-06-25 14:52:03 +02:00
if (settings.contains("manual_dpi_scaling"))
manual_dpi_scaling = settings["manual_dpi_scaling"].get<float>();
else
manual_dpi_scaling = 1.0f;
if (settings.contains("live_use_generated_output_folder"))
live_use_generated_output_folder = settings["live_use_generated_output_folder"].get<int>();
else
live_use_generated_output_folder = false;
if (settings.contains("default_live_output_folder"))
default_live_output_folder = settings["default_live_output_folder"].get<std::string>();
else
default_live_output_folder = ".";
2021-08-15 16:47:44 +02:00
if (settings.contains("default_recorder_output_folder"))
default_recorder_output_folder = settings["default_recorder_output_folder"].get<std::string>();
else
default_recorder_output_folder = ".";
2021-06-12 21:14:32 +02:00
}
2021-06-28 18:28:51 +02:00
void renderSettings(int /*wwidth*/, int /*wheight*/)
2021-06-12 17:49:53 +02:00
{
2021-06-12 21:14:32 +02:00
ImGui::Checkbox("Use Light Theme", &use_light_theme);
2021-06-25 14:52:03 +02:00
ImGui::SetNextItemWidth(200 * ui_scale);
ImGui::InputInt("Demod constellation size", &demod_constellation_size);
2021-06-25 14:52:03 +02:00
ImGui::SetNextItemWidth(200 * ui_scale);
ImGui::InputFloat("Manual DPI Scaling", &manual_dpi_scaling, 0.1f);
2021-06-12 21:14:32 +02:00
ImGui::Checkbox("Auto-Generate live output folders", &live_use_generated_output_folder);
2021-08-15 16:47:44 +02:00
if (ImGui::Button("Select Live Directory"))
{
logger->debug("Opening file dialog");
2021-10-27 12:47:33 +02:00
std::string dir = selectDirectoryDialog("Select output directory", ".");
if (dir.size() > 0)
default_live_output_folder = dir;
logger->debug("Dir " + default_live_output_folder);
}
ImGui::SameLine();
ImGui::Text("Default live output directory : %s/", default_live_output_folder.c_str());
2021-08-15 16:47:44 +02:00
if (ImGui::Button("Select Recorder Directory"))
{
logger->debug("Opening file dialog");
2021-10-27 12:47:33 +02:00
std::string dir = selectDirectoryDialog("Select output directory", ".");
if (dir.size() > 0)
default_recorder_output_folder = dir;
2021-08-15 16:47:44 +02:00
logger->debug("Dir " + default_recorder_output_folder);
}
ImGui::SameLine();
ImGui::Text("Default recorder output directory : %s/", default_recorder_output_folder.c_str());
2021-10-15 16:12:55 +02:00
#ifndef __ANDROID__
//if (ImGui::Button("Update TLEs"))
// tle::updateTLEs();
#endif
2021-06-12 17:49:53 +02:00
ImGui::BeginGroup();
if (ImGui::Button("Save"))
2021-06-12 21:14:32 +02:00
{
settings["use_light_theme"] = use_light_theme;
settings["demod_constellation_size"] = demod_constellation_size;
2021-06-25 14:52:03 +02:00
settings["manual_dpi_scaling"] = manual_dpi_scaling;
settings["live_use_generated_output_folder"] = live_use_generated_output_folder;
settings["default_live_output_folder"] = default_live_output_folder;
settings["default_recorder_output_folder"] = default_recorder_output_folder;
2021-06-12 21:14:32 +02:00
2021-06-12 17:49:53 +02:00
saveSettings();
2021-06-12 21:14:32 +02:00
}
2021-06-12 17:49:53 +02:00
ImGui::SameLine();
2021-06-12 21:14:32 +02:00
ImGui::TextColored(ImColor::HSV(0 / 360.0, 1, 1, 1.0), "Restarting SatDump may be necessary to apply some settings properly!");
2021-06-12 17:49:53 +02:00
ImGui::EndGroup();
}