#include "platform/ui/settings_store.h" #include "platform/ui/device_runtime.h" #include "platform/ui/gps_runtime.h" #include "platform/ui/wifi_runtime.h" #include #include #include #include #include namespace platform::ui::settings_store { static std::map values; static std::string key_for(const char* ns,const char* key){return std::string(ns)+"/"+key;} int get_int(const char* ns,const char* key,int fallback){auto i=values.find(key_for(ns,key));return i==values.end()?fallback:std::strtol(i->second.c_str(),nullptr,10);} uint32_t get_uint(const char* ns,const char* key,uint32_t fallback){auto i=values.find(key_for(ns,key));return i==values.end()?fallback:std::strtoul(i->second.c_str(),nullptr,10);} bool get_bool(const char* ns,const char* key,bool fallback){return get_int(ns,key,fallback?1:0)!=0;} void put_int(const char* ns,const char* key,int value){values[key_for(ns,key)]=std::to_string(value);} void put_uint(const char* ns,const char* key,uint32_t value){values[key_for(ns,key)]=std::to_string(value);} void put_bool(const char* ns,const char* key,bool value){put_int(ns,key,value?1:0);} bool put_string(const char* ns,const char* key,const char* value){values[key_for(ns,key)]=value?value:"";return true;} bool get_string(const char* ns,const char* key,std::string& out){auto i=values.find(key_for(ns,key));if(i==values.end())return false;out=i->second;return true;} void remove_keys(const char* ns,const char* const* keys,std::size_t count){for(size_t i=0;ifirst.compare(0,prefix.size(),prefix)==0)i=values.erase(i);else++i;} void begin_change_batch(){} void end_change_batch(){} } namespace platform::ui::device { static uint8_t tone_volume=60; uint8_t default_message_tone_volume(){return tone_volume;} void set_message_tone_volume(uint8_t value){tone_volume=value;} void play_message_tone(){} void trigger_haptic(){} bool supports_configurable_battery_gauge(){return true;} void reload_configurable_battery_gauge(){} void restart(){} } namespace platform::ui::gps { bool supports_receiver_baud_setting(){return true;} bool supports_receiver_init_policy_settings(){return true;} bool supports_gnss_runtime_settings(){return true;} bool supports_collection_interval_setting(){return true;} bool supports_altitude_reference_setting(){return true;} bool supports_coordinate_format_setting(){return true;} bool supports_external_nmea_output_setting(){return true;} void set_enabled(bool value){platform::ui::settings_store::put_bool("preview","gps",value);} void set_collection_interval(uint32_t value){platform::ui::settings_store::put_uint("preview","gps_interval",value);} void set_receiver_init_config(const GpsReceiverInitConfig&){} void set_gnss_config(uint8_t,uint8_t){} void set_power_strategy(uint8_t){} void set_external_nmea_config(uint8_t,uint8_t){} } namespace platform::ui::wifi { bool find_saved_config(const char*,Config& out){return load_config(out);} bool scan(ScanResult* out,std::size_t capacity,std::size_t& count){count=capacity?1:0;if(count){std::snprintf(out[0].ssid,sizeof(out[0].ssid),"Preview network");out[0].rssi=-55;out[0].requires_password=false;}return true;} }