gchar * cid_get_string_value_full (GKeyFile *pKeyFile, gchar *cGroup, gchar *cKey, gboolean bDefault, gchar *cDefault, gboolean bFile, gboolean bDir) { GError *error = NULL; gchar *cGet = g_key_file_get_string (pKeyFile, cGroup, cKey, &error); if (error != NULL && bDefault) { bUnvalidKey = TRUE; cid_warning("key '%s' in group '%s'\n=> %s",cKey,cGroup,error->message); g_error_free(error); error = NULL; g_free (cGet); cGet = g_strdup(cDefault); } if ((bFile || bDir) && cDefault != NULL && !g_file_test (cGet, bDir ? G_FILE_TEST_IS_DIR : G_FILE_TEST_EXISTS)) { g_free (cGet); if (g_file_test (cDefault, bDir ? G_FILE_TEST_IS_DIR : G_FILE_TEST_EXISTS)) { cid_debug ("%s:%s=%s",cGroup,cKey,cDefault); return cDefault; } else { cid_debug ("%s:%s=(NULL)",cGroup,cKey); return NULL; } } cid_debug ("%s:%s=%s",cGroup,cKey,cGet); return cGet; }
void rhythmbox_dbus_disconnect_from_bus (void) { if (dbus_proxy_player != NULL) { dbus_g_proxy_disconnect_signal(dbus_proxy_player, "playingChanged", G_CALLBACK(rb_onChangeState), NULL); cid_debug ("playingChanged deconnecte\n"); dbus_g_proxy_disconnect_signal(dbus_proxy_player, "playingUriChanged", G_CALLBACK(rb_onChangeSong), NULL); cid_debug ("playingUriChanged deconnecte\n"); dbus_g_proxy_disconnect_signal(dbus_proxy_player, "elapsedChanged", G_CALLBACK(rb_onElapsedChanged), NULL); cid_debug ("elapsedChanged deconnecte\n"); dbus_g_proxy_disconnect_signal(dbus_proxy_player, "rb:CovertArt-uri", G_CALLBACK(rb_onCovertArtChanged), NULL); cid_debug ("onCovertArtChanged deconnecte\n"); g_object_unref (dbus_proxy_player); dbus_proxy_player = NULL; } if (dbus_proxy_shell != NULL) { g_object_unref (dbus_proxy_shell); dbus_proxy_shell = NULL; } }
void cid_write_keys_to_file (GKeyFile *pKeyFile, const gchar *cConfFilePath) { cid_debug ("%s (%s)", __func__, cConfFilePath); GError *erreur = NULL; gchar *cDirectory = g_path_get_dirname (cConfFilePath); if (! g_file_test (cDirectory, G_FILE_TEST_EXISTS | G_FILE_TEST_IS_EXECUTABLE)) { g_mkdir_with_parents (cDirectory, 7*8*8+7*8+5); } g_free (cDirectory); gsize length; gchar *cNewConfFilePath = g_key_file_to_data (pKeyFile, &length, &erreur); if (erreur != NULL) { cid_warning ("Error while fetching data : %s", erreur->message); g_error_free (erreur); return ; } g_file_set_contents (cConfFilePath, cNewConfFilePath, length, &erreur); if (erreur != NULL) { cid_warning ("Error while writing data : %s", erreur->message); g_error_free (erreur); return ; } }
gboolean cid_get_boolean_value_full (GKeyFile *pKeyFile, gchar *cGroup, gchar *cKey, gboolean bDefault) { GError *error = NULL; gboolean bGet = g_key_file_get_boolean (pKeyFile, cGroup, cKey, &error); if (error != NULL) { bUnvalidKey = TRUE; cid_warning("key '%s' in group '%s'\n=> %s",cKey,cGroup,error->message); g_error_free(error); error = NULL; bGet = bDefault; } cid_debug ("%s:%s=%s",cGroup,cKey,bGet?"TRUE":"FALSE"); return bGet; }
gint cid_get_int_value_full (GKeyFile *pKeyFile, gchar *cGroup, gchar *cKey, gboolean bDefault, gint iDefault, gboolean bMax, gint iMax) { GError *error = NULL; gint iGet = g_key_file_get_integer (pKeyFile, cGroup, cKey, &error); if (error != NULL && bDefault) { bUnvalidKey = TRUE; cid_warning("key '%s' in group '%s'\n=> %s",cKey,cGroup,error->message); g_error_free(error); error = NULL; iGet = iDefault; } cid_debug ("%s:%s=%d",cGroup,cKey,(bMax && iGet > iMax)?iMax:iGet); if (bMax && iGet > iMax) return iMax; return iGet; }
void cid_check_file (const gchar *f) { gchar *cFileTest; if (!g_file_test (f, G_FILE_TEST_EXISTS)) { /* gchar *cCompareWith = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); if (g_strcmp(f,cCompareWith)) // f correspond a un chemin entre par l'utilisateur { g_free (cCompareWith); gchar *cSrc = g_strdup_printf("%s/%s",CID_DATA_DIR,CID_CONFIG_FILE); cid_debug ("Copying file from %s to %s",cSrc,f); cid_copy_file (cSrc,f); g_free (cSrc); return; } */ CidDataTable *p_folders = cid_create_datatable(G_TYPE_STRING,"%s/.config","%s/.config/cid",G_TYPE_INVALID); BEGIN_FOREACH_DT(p_folders) gchar *cDirName = g_strdup_printf(p_temp->content->string,g_getenv("HOME")); if (!g_file_test (cDirName,G_FILE_TEST_IS_DIR)) { cid_debug ("Creating directory: %s",cDirName); mkdir(cDirName,S_IRWXU); } g_free (cDirName); END_FOREACH_DT cFileTest = g_strdup_printf("%s/%s",g_getenv("HOME"),OLD_CONFIG_FILE) ; if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/%s",g_getenv("HOME"),OLD_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); cFileTest = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),OLD_CONFIG_FILE); if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),OLD_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); cFileTest = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),CID_CONFIG_FILE); if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),CID_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); gchar *cSrc = g_strdup_printf("%s/%s",CID_DATA_DIR,CID_CONFIG_FILE); cid_debug ("Copying file from %s to %s",cSrc,f); cid_copy_file (cSrc,f); g_free (cSrc); } }
void getSongInfos(void) { GHashTable *data_list = NULL; GValue *value; const gchar *data; if(dbus_g_proxy_call (dbus_proxy_shell, "getSongProperties", NULL, G_TYPE_STRING, musicData.playing_uri, G_TYPE_INVALID, dbus_g_type_get_map("GHashTable",G_TYPE_STRING, G_TYPE_VALUE), &data_list, G_TYPE_INVALID)) { g_free (musicData.playing_artist); value = (GValue *) g_hash_table_lookup(data_list, "artist"); if (value != NULL && G_VALUE_HOLDS_STRING(value)) musicData.playing_artist = g_strdup (g_value_get_string(value)); else musicData.playing_artist = NULL; cid_message (" playing_artist <- %s\n", musicData.playing_artist); g_free (musicData.playing_album); value = (GValue *) g_hash_table_lookup(data_list, "album"); if (value != NULL && G_VALUE_HOLDS_STRING(value)) musicData.playing_album = g_strdup (g_value_get_string(value)); else musicData.playing_album = NULL; cid_message (" playing_album <- %s\n", musicData.playing_album); g_free (musicData.playing_title); value = (GValue *) g_hash_table_lookup(data_list, "title"); if (value != NULL && G_VALUE_HOLDS_STRING(value)) musicData.playing_title = g_strdup (g_value_get_string(value)); else musicData.playing_title = NULL; cid_message (" playing_title <- %s\n", musicData.playing_title); value = (GValue *) g_hash_table_lookup(data_list, "track-number"); if (value != NULL && G_VALUE_HOLDS_UINT(value)) musicData.playing_track = g_value_get_uint(value); else musicData.playing_track = 0; cid_message (" playing_track <- %d\n", musicData.playing_track); value = (GValue *) g_hash_table_lookup(data_list, "duration"); if (value != NULL && G_VALUE_HOLDS_UINT(value)) musicData.playing_duration = g_value_get_uint(value); else musicData.playing_duration = 0; cid_message (" playing_duration <- %ds\n", musicData.playing_duration); value = (GValue *) g_hash_table_lookup(data_list, "rb:coverArt-uri"); g_free (musicData.playing_cover); if (value != NULL && G_VALUE_HOLDS_STRING(value)) { GError *erreur = NULL; const gchar *cString = g_value_get_string(value); if (cString != NULL && strncmp (cString, "file://", 7) == 0) { musicData.playing_cover = g_filename_from_uri (cString, NULL, &erreur); if (erreur != NULL) { cid_warning ("Attention : %s\n", erreur->message); g_error_free (erreur); } } else { musicData.playing_cover = g_strdup (cString); } } else { CidDataTable *p_tabFiles = cid_create_datatable(G_TYPE_STRING,"cover","album","albumart", ".folder",".cover","folder","Cover","Folder", G_TYPE_INVALID); gchar *cSongPath = g_filename_from_uri (musicData.playing_uri, NULL, NULL); // on teste d'abord dans le repertoire de la chanson. if (cSongPath != NULL) { gchar *cSongDir = g_path_get_dirname (cSongPath); g_free (cSongPath); musicData.playing_cover = g_strdup_printf ("%s/%s - %s.jpg", cSongDir, musicData.playing_artist, musicData.playing_album); cid_debug (" test de %s\n", musicData.playing_cover); BEGIN_FOREACH_DT(p_tabFiles) if (g_file_test (musicData.playing_cover, G_FILE_TEST_EXISTS)) break; g_free (musicData.playing_cover); musicData.playing_cover = g_strdup_printf ("%s/%s.jpg", cSongDir, p_temp->content->string); cid_debug (" test de %s\n", musicData.playing_cover); END_FOREACH_DT if (! g_file_test (musicData.playing_cover, G_FILE_TEST_EXISTS)) { cid_debug (" test de %s (.gnome2)\n", musicData.playing_cover); g_free (musicData.playing_cover); musicData.playing_cover = g_strdup_printf("%s/.gnome2/rhythmbox/covers/%s - %s.jpg", g_getenv("HOME"),musicData.playing_artist, musicData.playing_album); } if (! g_file_test (musicData.playing_cover, G_FILE_TEST_EXISTS)) { cid_debug (" test de %s (.cache)\n", musicData.playing_cover); g_free (musicData.playing_cover); musicData.playing_cover = g_strdup_printf("%s/.cache/rhythmbox/covers/%s - %s.jpg", g_getenv("HOME"),musicData.playing_artist, musicData.playing_album); } g_free (cSongDir); if (! g_file_test (musicData.playing_cover, G_FILE_TEST_EXISTS)) { cid->runtime->iCheckIter = 0; if (musicData.iSidCheckCover == 0 && cid->config->iPlayer != PLAYER_NONE) { cid_debug ("l'image n'existe pas encore => on boucle.\n"); musicData.iSidCheckCover = g_timeout_add (1 SECONDES, (GSourceFunc) _check_cover_is_present, (gpointer) NULL); } } } }
static int _cid_xerror_handler (Display * pDisplay, XErrorEvent *pXError) { cid_debug ("Erreur (%d, %d, %d) lors d'une requete X sur %d", pXError->error_code, pXError->request_code, pXError->minor_code, pXError->resourceid); return 0; }
void cid_check_file (const gchar *f) { gchar *cFileTest; if (!g_file_test (f, G_FILE_TEST_EXISTS)) { /* gchar *cCompareWith = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); if (g_strcmp(f,cCompareWith)) // f correspond a un chemin entre par l'utilisateur { g_free (cCompareWith); gchar *cSrc = g_strdup_printf("%s/%s",CID_DATA_DIR,CID_CONFIG_FILE); cid_debug ("Copying file from %s to %s",cSrc,f); cid_copy_file (cSrc,f); g_free (cSrc); return; } */ gchar *cDirName = g_strdup_printf("%s/.config/cid",g_getenv("HOME")); if (!g_file_test (cDirName,G_FILE_TEST_IS_DIR)) { cid_debug ("Creating directory: %s",cDirName); mkdir(cDirName,S_IRWXU); } g_free (cDirName); cFileTest = g_strdup_printf("%s/%s",g_getenv("HOME"),OLD_CONFIG_FILE) ; if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/%s",g_getenv("HOME"),OLD_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); cFileTest = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),OLD_CONFIG_FILE); if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),OLD_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); cFileTest = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),CID_CONFIG_FILE); if (g_file_test (cFileTest, G_FILE_TEST_EXISTS)) { gchar *cSrc = g_strdup_printf("%s/.config/%s",g_getenv("HOME"),CID_CONFIG_FILE); gchar *cDst = g_strdup_printf("%s/.config/cid/%s",g_getenv("HOME"),CID_CONFIG_FILE); cid_debug ("Moving file from %s to %s",cSrc,cDst); rename(cSrc,cDst); g_free (cSrc); g_free (cDst); g_free (cFileTest); return; } g_free (cFileTest); gchar *cSrc = g_strdup_printf("%s/%s",CID_DATA_DIR,CID_CONFIG_FILE); cid_debug ("Copying file from %s to %s",cSrc,f); cid_copy_file (cSrc,f); g_free (cSrc); } }