GF_EXPORT GF_Config *gf_cfg_init(const char *file, Bool *new_cfg) { GF_Config *cfg; char szPath[GF_MAX_PATH]; if (new_cfg) *new_cfg = GF_FALSE; if (file) { cfg = gf_cfg_new(NULL, file); /*force creation of a new config*/ if (!cfg) { FILE *fcfg = gf_fopen(file, "wt"); if (fcfg) { gf_fclose(fcfg); cfg = gf_cfg_new(NULL, file); if (new_cfg) *new_cfg = GF_TRUE; } } if (cfg) { check_modules_dir(cfg); return cfg; } } if (!get_default_install_path(szPath, GF_PATH_CFG)) { fprintf(stderr, "Fatal error: Cannot create a configuration file in application or user home directory - no write access\n"); return NULL; } cfg = gf_cfg_new(szPath, CFG_FILE_NAME); if (!cfg) { fprintf(stderr, "GPAC config file %s not found in %s - creating new file\n", CFG_FILE_NAME, szPath); cfg = create_default_config(szPath); } if (!cfg) { fprintf(stderr, "\nCannot create config file %s in %s directory\n", CFG_FILE_NAME, szPath); return NULL; } #ifndef GPAC_IPHONE fprintf(stderr, "Using config file in %s directory\n", szPath); #endif check_modules_dir(cfg); if (!gf_cfg_get_key(cfg, "General", "StorageDirectory")) { get_default_install_path(szPath, GF_PATH_CFG); strcat(szPath, "/Storage"); if (!gf_dir_exists(szPath)) gf_mkdir(szPath); gf_cfg_set_key(cfg, "General", "StorageDirectory", szPath); } if (new_cfg) *new_cfg = GF_TRUE; return cfg; }
GF_EXPORT GF_Config *gf_cfg_init(const char *file, Bool *new_cfg) { GF_Config *cfg; char szPath[GF_MAX_PATH]; if (new_cfg) *new_cfg = 0; if (file) { cfg = gf_cfg_new(NULL, file); /*force creation of a new config*/ if (!cfg) { FILE *fcfg = fopen(file, "wt"); if (fcfg) { fclose(fcfg); cfg = gf_cfg_new(NULL, file); if (new_cfg) *new_cfg = 1; } } if (cfg) { check_modules_dir(cfg); return cfg; } } if (!get_default_install_path(szPath, GF_PATH_CFG)) { fprintf(stderr, "Fatal error: Cannot create a configuration file in application or user home directory - no write access\n"); return NULL; } cfg = gf_cfg_new(szPath, CFG_FILE_NAME); if (!cfg) { fprintf(stderr, "GPAC config file %s not found in %s - creating new file\n", CFG_FILE_NAME, szPath); cfg = create_default_config(szPath); } if (!cfg) { fprintf(stderr, "Cannot create config file %s in %s directory\n", CFG_FILE_NAME, szPath); return NULL; } #ifndef GPAC_IPHONE fprintf(stderr, "Using config file in %s directory\n", szPath); #endif check_modules_dir(cfg); if (new_cfg) *new_cfg = 1; return cfg; }