gboolean cid_check_conf_file_version (CidMainContainer **pCid, const gchar *f) { gchar *cCommand=NULL; gchar line_f1[80], line_f2[80]; FILE *f1, *f2; gchar *cOrigFile = g_strdup_printf("%s/%s",CID_DATA_DIR, CID_CONFIG_FILE); f1 = fopen ((const char *)cOrigFile,"r"); f2 = fopen ((const char *)f,"r"); g_free (cOrigFile); if (!fgets(line_f1,80,f1) || !fgets(line_f2,80,f2)) cid_exit (3,"couldn't read conf file, try to delete it"); fclose (f1); fclose (f2); cid_info ("line_f1 %s\nline_f2 %s",line_f1,line_f2); if (strcmp(line_f1,line_f2)!=0 || bUnvalidKey) { cid_warning ("bad file version, building a new one\n"); cid_remove_file (f); gchar *cTmpPath = g_strdup_printf("%s/%s",CID_DATA_DIR,CID_CONFIG_FILE); cid_copy_file(cTmpPath,f); g_free (cTmpPath); cid_save_data (pCid); cid_read_key_file (pCid, f); return FALSE; } return TRUE; }
int cid_read_config (const char *f, gpointer *pData) { cid_info ("Reading file : %s\n",f); if (!cid->bDevMode) cid_check_file (f); cid_read_key_file (f); if (!cid->bDevMode) cid_check_conf_file_version (f); iNbRead++; return 0; }
int cid_read_config (CidMainContainer **pCid, const char *f) { CidMainContainer *cid = *pCid; cid_info ("Reading file : %s",f); if (!cid->config->bDevMode) cid_check_file (f); cid_read_key_file (pCid, f); if (!cid->config->bDevMode) cid_check_conf_file_version (pCid, f); iNbRead++; return 0; }
void cid_read_key_file (CidMainContainer **pCid, const gchar *f) { CidMainContainer *cid = *pCid; if (!cid_load_key_file(pCid, f)) cid_exit(CID_ERROR_READING_FILE,"Key File error"); bChangedDesktop = cid->config->bAllDesktop; iPlayerChanged = cid->config->iPlayer; iSymbolChanged = cid->config->iSymbolColor; iOldWidth = cid->config->iWidth; iOldHeight = cid->config->iHeight; gint *pSize; gsize iReadSize; GError *error = NULL; bUnvalidKey = FALSE; // [System] configuration cid->config->iPlayer = CID_CONFIG_GET_INTEGER ("System", "PLAYER"); cid->config->iInter = CID_CONFIG_GET_INTEGER_WITH_DEFAULT ("System", "INTER", DEFAULT_TIMERS) SECONDES; cid->config->bMonitorPlayer = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("System", "MONITOR", TRUE); cid->config->bPlayerState = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("System", "STATE", TRUE); cid->config->bDisplayTitle = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("System", "TITLE", TRUE); cid->config->iSymbolColor = CID_CONFIG_GET_INTEGER ("System", "SYMBOL_COLOR"); cid->config->bDisplayControl = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("System", "CONTROLS", TRUE); cid->config->dPoliceSize = g_key_file_get_double (cid->pKeyFile, "System", "POLICE_SIZE", &error); cid_free_and_debug_error(&error); cid->config->dPoliceColor = g_key_file_get_double_list (cid->pKeyFile, "System", "POLICE_COLOR", &cid->config->gPlainTextSize, &error); cid_free_and_debug_error(&error); cid->config->dOutlineTextColor = g_key_file_get_double_list (cid->pKeyFile, "System", "OUTLINE_COLOR", &cid->config->gOutlineTextSize, &error); cid_free_and_debug_error(&error); // [Options] configuration cid->config->bHide = CID_CONFIG_GET_BOOLEAN ("Options", "HIDE"); cid->config->cDefaultImage = CID_CONFIG_GET_FILE_PATH ("Options", "IMAGE", cid->config->bDevMode ? TESTING_DIR"/"TESTING_COVER : CID_DEFAULT_IMAGE); cid->config->bRunAnimation = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Options", "ANIMATION", TRUE); cid->config->iAnimationType = CID_CONFIG_GET_INTEGER ("Options", "ANIMATION_TYPE"); cid->config->iAnimationSpeed = CID_CONFIG_GET_INTEGER ("Options", "ANIMATION_SPEED"); cid->config->bThreaded = CID_CONFIG_GET_BOOLEAN ("Options", "THREAD"); cid->config->bDownload = CID_CONFIG_GET_BOOLEAN ("Options", "DOWNLOAD"); cid->config->cDLPath = CID_CONFIG_GET_STRING_WITH_DEFAULT ("Options", "DL_PATH", cid->defaut->cDLPath); cid->config->iImageSize = CID_CONFIG_GET_INTEGER ("Options", "D_SIZE"); cid->config->iTimeToWait = CID_CONFIG_GET_INTEGER_WITH_DEFAULT ("Options", "DELAY", DEFAULT_TIMERS); cid->config->bUnstable = cid->config->bTesting && CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Options", "B_UNSTABLE", TRUE); // [Behaviour] configuration cid->config->iPosX = CID_CONFIG_GET_INTEGER ("Behaviour", "GAP_X"); cid->config->iPosY = CID_CONFIG_GET_INTEGER ("Behaviour", "GAP_Y"); pSize = g_key_file_get_integer_list (cid->pKeyFile, "Behaviour", "SIZE", &iReadSize, &error); if (cid_free_and_debug_error(&error) || iReadSize != 2) { pSize = g_realloc (pSize, 2 * sizeof(int)); if (pSize != NULL) { pSize[0] = DEFAULT_SIZE; pSize[1] = DEFAULT_SIZE; } else { cid_exit (CID_ERROR_READING_FILE, "cannot allocate memory"); } } cid->config->dRotate = g_key_file_get_double (cid->pKeyFile, "Behaviour", "ROTATION", &error); cid_free_and_debug_error(&error); cid->config->dColor = g_key_file_get_double_list (cid->pKeyFile, "Behaviour", "COLOR", &cid->config->gColorSize, &error); cid_free_and_debug_error(&error); cid->config->dFlyingColor = g_key_file_get_double_list (cid->pKeyFile, "Behaviour", "FLYING_COLOR", &cid->config->gFlyingColorSize, &error); cid_free_and_debug_error(&error); cid->config->bKeepCorners = CID_CONFIG_GET_BOOLEAN ("Behaviour", "KEEP_CORNERS"); cid->config->bAllDesktop = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Behaviour", "ALL_DESKTOP", TRUE); cid->config->bLockPosition = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Behaviour", "LOCK", TRUE); cid->config->bMask = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Behaviour", "MASK", TRUE); cid->config->bShowAbove = CID_CONFIG_GET_BOOLEAN_WITH_DEFAULT ("Behaviour", "SWITCH_ABOVE", TRUE); // MPD configurations cid->mpd_dir = CID_CONFIG_GET_DIR_PATH ("MPD", "MPD_DIR", g_strdup_printf ("%s/Music",g_getenv ("HOME"))); cid->mpd_host = CID_CONFIG_GET_STRING ("MPD", "MPD_HOST"); if (cid->mpd_host != NULL && strcmp (cid->mpd_host, "") == 0) { g_free (cid->mpd_host); cid->mpd_host = g_strdup ("localhost"); } gchar *cEncrypted = NULL; cEncrypted = CID_CONFIG_GET_STRING ("MPD", "MPD_PASS"); //cid_decrypt_string (cEncrypted, &cid->mpd_pass); cid->mpd_pass = g_strdup (cEncrypted); g_free (cEncrypted); cid->mpd_port = CID_CONFIG_GET_INTEGER_WITH_DEFAULT ("MPD", "MPD_PORT", 6600); cid->config->iWidth = pSize[0] <= MAX_SIZE ? pSize[0] : MAX_SIZE; cid->config->iHeight = pSize[1] <= MAX_SIZE ? pSize[1] : MAX_SIZE; if (!bUnvalidKey) { cid->config->dRed = cid->config->dColor[0]; cid->config->dGreen = cid->config->dColor[1]; cid->config->dBlue = cid->config->dColor[2]; cid->config->dAlpha = cid->config->dColor[3]; cid->runtime->dFocusVariation = cid->config->dFlyingColor[3]>cid->config->dAlpha ? +1 : -1; cid->config->iExtraSize = (cid->config->iHeight + cid->config->iWidth)/20; cid->config->iPrevNextSize = cid->config->iExtraSize * 2; cid->config->iPlayPauseSize = cid->config->iExtraSize * 3; } cid_key_file_free(pCid); if (bUnvalidKey && !bReloaded) { cid_save_data (pCid); cid_read_key_file (pCid, f); bReloaded = TRUE; } }