#include "app/settings/obb_settings_profiles.h"
namespace obb::settings {
namespace {
RuntimeSettings s_runtime;
void sync_flags() {
switch (s_runtime.profile) {
case Profile::kTownHall:
s_runtime.wifi_enabled = true;
s_runtime.hf_link_enabled = true;
s_runtime.scroll_lock = false;
s_runtime.telemetry_public = true;
break;
case Profile::kNightWatch:
s_runtime.wifi_enabled = false;
s_runtime.hf_link_enabled = true;
s_runtime.scroll_lock = true;
s_runtime.telemetry_public = false;
break;
case Profile::kCrisis:
s_runtime.wifi_enabled = false;
s_runtime.hf_link_enabled = false;
s_runtime.scroll_lock = true;
s_runtime.telemetry_public = false;
break;
}
}
} // namespace
void settings_init() {
s_runtime = RuntimeSettings{};
sync_flags();
}
void apply_profile(Profile profile) {
if (s_runtime.profile == profile) return;
s_runtime.profile = profile;
sync_flags();
}
const RuntimeSettings ¤t() {
return s_runtime;
}
} // namespace obb::settings