41 lines
963 B
C
41 lines
963 B
C
/**
|
|
* Copyright (c) 2021 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#pragma once
|
|
#include "../libs.h"
|
|
#include "../util/array.h"
|
|
|
|
#define SAVE_VALUES_MAX 200
|
|
|
|
typedef union {
|
|
// char *s;
|
|
bool b;
|
|
uint8_t u8;
|
|
int8_t i8;
|
|
int16_t i16;
|
|
int32_t i32;
|
|
} savevalue_t;
|
|
|
|
typedef struct {
|
|
char *keys[SAVE_VALUES_MAX];
|
|
savevalue_t values[SAVE_VALUES_MAX];
|
|
uint8_t count;
|
|
} savemanager_t;
|
|
|
|
void saveManagerInit(savemanager_t *man);
|
|
|
|
savevalue_t * saveManagerAddOrGet(savemanager_t *man, char *key);
|
|
|
|
uint8_t saveManagerGetKey(savemanager_t *man, char *key);
|
|
|
|
void saveManagerRemove(savemanager_t *man, char *key);
|
|
|
|
savevalue_t * saveManagerSetBool(savemanager_t *man, char *key, bool val);
|
|
savevalue_t * saveManagerSetUint8(savemanager_t *man, char *key, uint8_t val);
|
|
|
|
bool saveManagerGetBool(savemanager_t *man, char *key);
|
|
uint8_t saveManagerGetUint8(savemanager_t *man, char *key); |