diff options
Diffstat (limited to 'src/survive_config.h')
-rw-r--r-- | src/survive_config.h | 48 |
1 files changed, 29 insertions, 19 deletions
diff --git a/src/survive_config.h b/src/survive_config.h index 24762cd..cd16c76 100644 --- a/src/survive_config.h +++ b/src/survive_config.h @@ -10,14 +10,11 @@ typedef enum { CONFIG_UNKNOWN = 0, CONFIG_FLOAT = 1, CONFIG_UINT32 = 2, - CONFIG_STRING = 3 + CONFIG_STRING = 3, + CONFIG_FLOAT_ARRAY = 4, } cval_type; -/* -typedef union { - uint32_t i; - FLT f; - } Numeric; -*/ + + typedef struct { char *tag; cval_type type; @@ -25,21 +22,34 @@ typedef struct { uint32_t i; FLT f; } numeric; - char *str; -} config_val; + char *data; + uint32_t elements; +} config_entry; + +typedef struct { + config_entry *config_entries; + uint16_t used_entries; + uint16_t max_entries; +} config_group; + +extern config_group global_config_values; +extern config_group lh_config[2]; //lighthouse configs -void config_open(const char* path, const char* mode); -void config_close(); -void config_write_lighthouse(struct BaseStationData* bsd, uint8_t length); +void config_init(); +//void config_open(const char* path, const char* mode); +void config_read(const char* path); +//void config_write_lighthouse(struct BaseStationData* bsd, uint8_t length); +void config_set_lighthouse(BaseStationData* bsd, uint8_t idx); void config_save(const char* path); -const FLT config_set_float(const char *tag, const FLT value); -const uint32_t config_set_uint32(const char *tag, const uint32_t value); -const char* config_set_str(const char *tag, const char* value); -FLT config_read_float(const char *tag, const FLT value, const FLT def); +const FLT config_set_float(config_group *cg, const char *tag, const FLT value); +const uint32_t config_set_uint32(config_group *cg, const char *tag, const uint32_t value); +const char* config_set_str(config_group *cg, const char *tag, const char* value); -uint32_t config_read_uint32(const char *tag, const uint32_t value, const uint32_t def); -const char* config_read_str(const char *tag, const char *value, const char *def_str); +FLT config_read_float(config_group *cg, const char *tag, const FLT def); +uint16_t config_read_float_array(config_group *cg, const char *tag, FLT** values, const FLT* def, uint16_t count); +uint32_t config_read_uint32(config_group *cg, const char *tag, const uint32_t def); +const char* config_read_str(config_group *cg, const char *tag, const char *def); -#endif
\ No newline at end of file +#endif |