1
0
mirror of https://github.com/mist-devel/mist-firmware.git synced 2026-05-02 22:43:45 +00:00

Make ini file float support optional to save rom space

This commit is contained in:
harbaum
2015-01-23 08:17:12 +00:00
parent 9c38a1d52b
commit 4d334905f4
2 changed files with 9 additions and 1 deletions

View File

@@ -170,11 +170,13 @@ void* ini_get_var(const ini_cfg_t* cfg, int cur_section, char* buf)
if (*(int32_t*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(int32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;
if (*(int32_t*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(int32_t*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;
break;
#ifdef INI_ENABLE_FLOAT
case FLOAT:
*(float*)(cfg->vars[var_id].var) = strtof(&(buf[i]), NULL);
if (*(float*)(cfg->vars[var_id].var) > cfg->vars[var_id].max) *(float*)(cfg->vars[var_id].var) = cfg->vars[var_id].max;
if (*(float*)(cfg->vars[var_id].var) < cfg->vars[var_id].min) *(float*)(cfg->vars[var_id].var) = cfg->vars[var_id].min;
break;
#endif
case STRING:
strncpy((char*)(cfg->vars[var_id].var), &(buf[i]), cfg->vars[var_id].max);
break;

View File

@@ -4,6 +4,8 @@
#ifndef __INI_PARSER_H__
#define __INI_PARSER_H__
// float support adds over 20kBytes to the firmware size
// #define INI_ENABLE_FLOAT
//// includes ////
#include <inttypes.h>
@@ -15,7 +17,11 @@ typedef struct {
char* name;
} ini_section_t;
typedef enum {UINT8=0, INT8, UINT16, INT16, UINT32, INT32, FLOAT, STRING} ini_vartypes_t;
typedef enum {UINT8=0, INT8, UINT16, INT16, UINT32, INT32,
#ifdef INI_ENABLE_FLOAT
FLOAT,
#endif
STRING} ini_vartypes_t;
typedef struct {
char* name;