PV1_Comm/include/config_engine.h

59 lines
1.3 KiB
C
Raw Normal View History

2018-09-11 06:56:00 +00:00
#ifndef CONFIG_ENGINE_H
#define CONFIG_ENGINE_H
#include <uthash/uthash.h>
#include <sqlite3.h>
#include "smart_sound.h"
#ifdef __cplusplus
extern "C" {
#endif
#define GLOBAL_CFG_FILE_PATH ("/mnt/UDISK/global.db")
typedef enum
{
CFG_TYPE_STRING = 0,
CFG_TYPE_INT = 1,
CFG_TYPE_DOUBLE = 2,
} CFG_DATA_TYPE;
typedef struct
{
char* pKeyName;
int keyType;
int keyModule;
union
{
char* pStrValue;
int intValue;
double doubleValue;
};
UT_hash_handle hh; ///< UT Hash handle
} CFG_ITEM, *PCFG_ITEM;
typedef void (*OnCfgMsg)(DBUS_CMD cmd, PCFG_ITEM pMsg, int err);
int CfgGlobalEnvInit(void);
void CfgItemPrint(const char* pPrefix, PCFG_ITEM pCfgItem);
int CfgGetKeyValue(const char* pKeyName, PCFG_ITEM* pItem);
int CfgChangeKeyValue(const char *pKeyName, PCFG_ITEM pItem, int saveToDB);
int CfgAddKeyValue(const char *pKeyName, PCFG_ITEM pItem, int saveToDB);
void CfgSetIntValue(const char* pTags, int iValue);
void OnCfgMsgProcess(MODULE_NAME dest, DBUS_CMD busCmd, const char *pJsonStr);
int Sqlite3SyncDB(sqlite3* pSqlMemory, const char* pMemDbName, const char* pDBFilePath, const char* pFileDbName, int isSave);
#ifdef __cplusplus
}
#endif
#endif