static void bug_information_generate_message(GtkTextBuffer * buffer) { int i; gchar *temp; GtkTextIter iter; GtkTextTag *bold_tag, *larger_tag; GtkTextTagTable *table; /* get buffer's tag table */ table = gtk_text_buffer_get_tag_table(buffer); /* Create bold tag */ bold_tag = gtk_text_tag_new("bold"); g_object_set(G_OBJECT(bold_tag), "weight", PANGO_WEIGHT_BOLD, NULL); /* add bold_tag to tag table */ gtk_text_tag_table_add(table, bold_tag); /* Create bold tag */ larger_tag = gtk_text_tag_new("larger"); g_object_set(G_OBJECT(larger_tag), "scale", PANGO_SCALE_X_LARGE, NULL); /* add larger_tag to tag table */ gtk_text_tag_table_add(table, larger_tag); /* Get the start */ gtk_text_buffer_get_start_iter(buffer, &iter); /* insert program name */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Gnome Music Player Client\n", -1, bold_tag, larger_tag, NULL); /* insert copyright */ gtk_text_buffer_insert_with_tags(buffer, &iter, GMPC_COPYRIGHT "\n\n", -1, bold_tag, NULL); /* insert tagline */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Tagline:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, GMPC_TAGLINE "\n", -1); /* insert version */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Version:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GMPC_MAJOR_VERSION, GMPC_MINOR_VERSION, GMPC_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* insert revision */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Revision:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%s\n", revision); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /** support libs */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nSupport libraries:\n", -1, bold_tag, larger_tag, NULL); /* libmpd */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Libmpd:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", LIBMPD_MAJOR_VERSION, LIBMPD_MINOR_VERSION, LIBMPD_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* gtk+-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Compile time Gtk+-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); gtk_text_buffer_insert_with_tags(buffer, &iter, "Runtime Gtk+-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", gtk_major_version, gtk_minor_version, gtk_micro_version); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* glib-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Glib-2.0:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i.%i.%i\n", GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* glib-2.0 */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Runtime sqlite3:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, sqlite3_libversion(), -1); gtk_text_buffer_insert_with_tags(buffer, &iter, "\nCompile time sqlite3:\t", -1, bold_tag, NULL); gtk_text_buffer_insert(buffer, &iter, SQLITE_VERSION, -1); #ifdef HAVE_UNIQUE gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibunique:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%s\n", UNIQUE_VERSION_S); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); #endif /* platform */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nPlatform:\t", -1, bold_tag, NULL); #ifdef WIN32 gtk_text_buffer_insert(buffer, &iter, "Windows\n", -1); gtk_text_buffer_insert_with_tags(buffer, &iter, "Windows version:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i\n", g_win32_get_windows_version()); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); #else #ifdef OSX gtk_text_buffer_insert(buffer, &iter, "Mac OsX\n", -1); #else gtk_text_buffer_insert(buffer, &iter, "*nix\n", -1); #endif #endif /** compile flags*/ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nCompile flags:\n", -1, bold_tag, larger_tag, NULL); gtk_text_buffer_insert_with_tags(buffer, &iter, "\nNLS Support:\t", -1, bold_tag, NULL); #ifdef ENABLE_NLS gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nMultimedia Keys:\t", -1, bold_tag, NULL); #ifdef ENABLE_MMKEYS gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nAppIndicator Support:\t", -1, bold_tag, NULL); #ifdef HAVE_APP_INDICATOR gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibspiff support:\t", -1, bold_tag, NULL); #ifdef SPIFF gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif gtk_text_buffer_insert_with_tags(buffer, &iter, "\nLibunique support:\t", -1, bold_tag, NULL); #ifdef HAVE_UNIQUE gtk_text_buffer_insert(buffer, &iter, "Enabled", -1); #else gtk_text_buffer_insert(buffer, &iter, "Disabled", -1); #endif /** Plugins */ if (num_plugins > 0) { gtk_text_buffer_insert_with_tags(buffer, &iter, "\n\nExternal Plugins:\n", -1, bold_tag, larger_tag, NULL); for (i = 0; i < num_plugins; i++) { if (!gmpc_plugin_is_internal(plugins[i])) { const gchar *name = gmpc_plugin_get_name(plugins[i]); const int *version = gmpc_plugin_get_version(plugins[i]); if(gmpc_plugin_get_enabled(plugins[i])) { gtk_text_buffer_insert(buffer, &iter, "☑ ", -1); }else { gtk_text_buffer_insert(buffer, &iter, "☐ ", -1); } gtk_text_buffer_insert_with_tags(buffer, &iter, name, -1, bold_tag, NULL); temp = g_strdup_printf("\t%i.%i.%i\n", version[0], version[1], version[2]); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } } } if (num_plugins > 0) { gtk_text_buffer_insert_with_tags(buffer, &iter, "\n\nMetadata Plugins:\n", -1, bold_tag, larger_tag, NULL); for (i = 0; i < num_plugins; i++) { if (gmpc_plugin_is_metadata(plugins[i])) { const gchar *name = gmpc_plugin_get_name(plugins[i]); const int *version = gmpc_plugin_get_version(plugins[i]); if(gmpc_plugin_get_enabled(plugins[i])) { gtk_text_buffer_insert(buffer, &iter, "☑ ", -1); }else { gtk_text_buffer_insert(buffer, &iter, "☐ ", -1); } gtk_text_buffer_insert_with_tags(buffer, &iter, name, -1, bold_tag, NULL); temp = g_strdup_printf("\t%i.%i.%i\n", version[0], version[1], version[2]); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } } } if (mpd_check_connected(connection)) { gchar **handlers; /** Plugins */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nMusic Player Daemon:\n", -1, bold_tag, larger_tag, NULL); /* Version */ gtk_text_buffer_insert_with_tags(buffer, &iter, "Version:\t", -1, bold_tag, NULL); temp = mpd_server_get_version(connection); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* total songs */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nSongs:\t", -1, bold_tag, NULL); temp = g_strdup_printf("%i", mpd_stats_get_total_songs(connection)); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); /* hostname */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nHostname:\t", -1, bold_tag, NULL); temp = connection_get_hostname(); gtk_text_buffer_insert(buffer, &iter, temp, -1); /* handlers */ gtk_text_buffer_insert_with_tags(buffer, &iter, "\nUrl handlers:\t", -1, bold_tag, NULL); handlers = mpd_server_get_url_handlers(connection); if (handlers) { temp = g_strjoinv(",", handlers); g_strfreev(handlers); handlers = NULL; } else temp = g_strdup("N/A"); gtk_text_buffer_insert(buffer, &iter, temp, -1); g_free(temp); } }
static void serverstats_update(void) { gchar **handlers = NULL; gchar *value = NULL; serverstats_clear(); if (!mpd_check_connected(connection)) return; mpd_stats_update(connection); /** Version */ value = mpd_server_get_version(connection); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_VERSION]), value); free(value); /** Uptime */ value = format_time_real(mpd_stats_get_uptime(connection), ""); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_UPTIME]), value); g_free(value); /** Playtime*/ value = format_time_real(mpd_stats_get_playtime(connection), ""); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_PLAYTIME]), value); g_free(value); /** DB Playtime*/ value = format_time_real(mpd_stats_get_db_playtime(connection), ""); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_DB_PLAYTIME]), value); g_free(value); /** DB ARTIST*/ value = g_strdup_printf("%i", mpd_stats_get_total_artists(connection)); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_DB_ARTISTS]), value); g_free(value); /** DB ALBUMS*/ value = g_strdup_printf("%i", mpd_stats_get_total_albums(connection)); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_DB_ALBUMS]), value); g_free(value); /** DB SONGS*/ value = g_strdup_printf("%i", mpd_stats_get_total_songs(connection)); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_DB_SONGS]), value); g_free(value); /** URL_HANDLERS*/ handlers = mpd_server_get_url_handlers(connection); if (handlers) { value = g_strjoinv(",", handlers); g_strfreev(handlers); handlers = NULL; } else value = g_strdup("N/A"); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_URLHANDLERS]), value); g_free(value); if (mpd_server_check_version(connection, 0, 13, 0)) handlers = mpd_server_get_tag_types(connection); if (handlers) { value = g_strjoinv(", ", handlers); g_strfreev(handlers); handlers = NULL; } else value = g_strdup("N/A"); gtk_label_set_text(GTK_LABEL(serverstats_labels[SERVERSTATS_MPD_TAG_TYPES]), value); g_free(value); }