#include "app_cfg.h" #include "base/HGInc.h" #include "base/HGUtility.h" #include "base/HGIni.h" #include "HGUIGlobal.h" #include "HGString.h" #ifdef HG_CMP_MSC #include #endif QString getCfgValue(const char *appName, const char *key, const QString &def) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); strcat(cfgPath, "config.ini"); HGChar value[512] = {0}; HGBase_GetProfileString(cfgPath, appName, key, getStdString(def).c_str(), value, 512); return StdStringToUtf8(value).c_str(); } int getCfgValue(const char *appName, const char *key, int def) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); strcat(cfgPath, "config.ini"); HGInt value = 0; HGBase_GetProfileInt(cfgPath, appName, key, def, &value); return value; } bool getCfgValue(const char *appName, const char *key, bool def) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); strcat(cfgPath, "config.ini"); HGInt value = 0; HGBase_GetProfileInt(cfgPath, appName, key, (HGInt)def, &value); return (bool)value; } void saveCfgValue(const char *appName, const char *key, const QString &value) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); HGBase_CreateDir(cfgPath); strcat(cfgPath, "config.ini"); HGBase_SetProfileString(cfgPath, appName, key, getStdString(value).c_str()); } void saveCfgValue(const char *appName, const char *key, int value) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); HGBase_CreateDir(cfgPath); strcat(cfgPath, "config.ini"); HGBase_SetProfileInt(cfgPath, appName, key, value); } void saveCfgValue(const char *appName, const char *key, bool value) { HGChar cfgPath[512]; HGBase_GetConfigPath(cfgPath, 512); HGBase_CreateDir(cfgPath); strcat(cfgPath, "config.ini"); HGBase_SetProfileInt(cfgPath, appName, key, (HGInt)value); } HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen) { if (NULL == configPath || 0 == maxLen) { return HGBASE_ERR_INVALIDARG; } const char* appName = "HuaGoScan"; #if defined(OEM_HANWANG) appName = "HanvonScan"; #elif defined(OEM_LISICHENG) appName = "LanxumScan"; #elif defined(OEM_CANGTIAN) appName = "CumtennScan"; #elif defined(OEM_ZHONGJING) appName = "MicrotekScan"; #elif defined(OEM_ZIGUANG) appName = "UniScan"; #endif #if defined(HG_CMP_MSC) CHAR cfgPath[MAX_PATH] = { 0 }; BOOL ret = SHGetSpecialFolderPathA(NULL, cfgPath, CSIDL_APPDATA, FALSE); if (!ret) return HGBASE_ERR_FAIL; if (cfgPath[strlen(cfgPath) - 1] != '\\') strcat(cfgPath, "\\"); strcat(cfgPath, appName); strcat(cfgPath, "\\Cfg\\"); #else char cfgPath[512] = { 0 }; struct passwd* pw = getpwuid(getuid()); strcpy(cfgPath, pw->pw_dir); if (cfgPath[strlen(cfgPath) - 1] != '/') strcat(cfgPath, "/"); strcat(cfgPath, "."); strcat(cfgPath, appName); strcat(cfgPath, "/Cfg/"); #endif if (maxLen < strlen(cfgPath) + 1) return HGBASE_ERR_FAIL; strcpy(configPath, cfgPath); return HGBASE_ERR_OK; }