// (C) 2017 <>< Joshua Allen, Under MIT/x11 License. #ifndef _SURVIVE_CONFIG_H #define _SURVIVE_CONFIG_H #include "survive_internal.h" typedef enum { CONFIG_UNKNOWN = 0, CONFIG_FLOAT = 1, CONFIG_UINT32 = 2, CONFIG_STRING = 3 } cval_type; /* typedef union { uint32_t i; FLT f; } Numeric; */ typedef struct { char *tag; cval_type type; union { uint32_t i; FLT f; } numeric; char *str; } config_val; void config_open(const char* path, const char* mode); void config_close(); void config_write_lighthouse(struct BaseStationData* bsd, uint8_t length); 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); 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); #endif