bool cfgOpen() { const char* filename = "/emu.cfg"; string config_path_read = get_readonly_config_path(filename); cfgPath = get_writable_config_path(filename); FILE* cfgfile = fopen(config_path_read.c_str(),"r"); if(cfgfile != NULL) { cfgdb.parse(cfgfile); fclose(cfgfile); } else { // Config file can't be opened int error_code = errno; printf("Warning: Unable to open the config file '%s' for reading (%s)\n", config_path_read.c_str(), strerror(error_code)); if (error_code == ENOENT || cfgPath != config_path_read) { // Config file didn't exist printf("Creating new empty config file at '%s'\n", cfgPath.c_str()); savecfgf(); } else { // There was some other error (may be a permissions problem or something like that) save_config = false; } } return true; }
//These are helpers , mainly :) void cfgSaveInt(const wchar * Section, const wchar * Key, s32 Int) { cfgdb.set_int(string(Section), string(Key), Int); if(save_config) { savecfgf(); } }
void cfgSaveStr(const wchar * Section, const wchar * Key, const wchar * String) { cfgdb.set(string(Section), string(Key), string(String)); if(save_config) { savecfgf(); } //WritePrivateProfileString(Section,Key,String,cfgPath); }
void EXPORT_CALL cfgSaveStr(const wchar * Section, const wchar * Key, const wchar * String) { cfgdb.GetEntry(Section)->SetEntry(Key,String,CEM_SAVE); savecfgf(); //WritePrivateProfileString(Section,Key,String,cfgPath); }