📄 statistics.cpp
字号:
GList* items = NULL; gint i, j; for(i = 0; i < info->source_count; i++) { gint streams_count = g_array_index(info->stream_counts_array, guint, i); for(j = 0; j < streams_count; j++) { gchar* str; str = g_strdup_printf("Stream%d.Source%d", i, j); items = g_list_append(items, str); } } if(items) { gtk_combo_set_popdown_strings(info->streams_combo, items); gtk_widget_set_sensitive(GTK_WIDGET(info->streams_combo), TRUE); } else { items = g_list_append(items, g_strdup("")); gtk_combo_set_popdown_strings(info->streams_combo, items); gtk_widget_set_sensitive(GTK_WIDGET(info->streams_combo), FALSE); } g_list_foreach(items, (GFunc)g_free, NULL); g_list_free(items); } result = hx_player_get_statistic(info->player, "Total", &value); if(result) { total = g_value_get_int(&value); total_is_set = TRUE; g_value_unset(&value); } result = hx_player_get_statistic(info->player, "ClipBandwidth", &value); if(result) { val = g_value_get_int(&value); formatted_str = g_strdup_printf("%.1f Kbps", (gdouble)val / 1000.0); gtk_label_set_text(info->main[STATISTIC_UI_CLIP_BANDWIDTH], formatted_str); g_free(formatted_str); g_value_unset(&value); } else { gtk_label_set_text(info->main[STATISTIC_UI_CLIP_BANDWIDTH], "---"); } result = hx_player_get_statistic(info->player, "CurrentBandwidth", &value); if(result) { val = g_value_get_int(&value); if(info->bandwidth_graph) { /* Update bandwidth graph too. */ hx_bandwidth_graph_add_value(info->bandwidth_graph, val); } formatted_str = g_strdup_printf("%.1f Kbps", (gdouble)val / 1000.0); gtk_label_set_text(info->main[STATISTIC_UI_CURRENT_BANDWIDTH], formatted_str); g_free(formatted_str); g_value_unset(&value); } else { gtk_label_set_text(info->main[STATISTIC_UI_CURRENT_BANDWIDTH], "---"); } if(info->min_bandwidth_is_set) { formatted_str = g_strdup_printf("%.1f Kbps", (gdouble)info->min_bandwidth / 1000.0); gtk_label_set_text(info->main[STATISTIC_UI_MIN_BANDWIDTH], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_MIN_BANDWIDTH], "---"); } if(info->max_bandwidth_is_set) { formatted_str = g_strdup_printf("%.1f Kbps", (gdouble)info->max_bandwidth / 1000.0); gtk_label_set_text(info->main[STATISTIC_UI_MAX_BANDWIDTH], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_MAX_BANDWIDTH], "---"); } result = hx_player_get_statistic(info->player, "AverageBandwidth", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%.1f Kbps", (gdouble)val / 1000.0); gtk_label_set_text(info->main[STATISTIC_UI_AVERAGE_BANDWIDTH], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_AVERAGE_BANDWIDTH], "---"); } result = hx_player_get_statistic(info->player, "Received", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_RECEIVED], formatted_str); g_free(formatted_str); received = val; received_is_set = TRUE; } else { gtk_label_set_text(info->main[STATISTIC_UI_RECEIVED], "---"); } result = hx_player_get_statistic(info->player, "Recovered", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_RECOVERED], formatted_str); g_free(formatted_str); recovered = val; recovered_is_set = TRUE; } else { gtk_label_set_text(info->main[STATISTIC_UI_RECOVERED], "---"); } if(recovered_is_set && received_is_set) { formatted_str = g_strdup_printf("%d", recovered + received); gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_RECEIVED], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_RECEIVED], "---"); } if(total_is_set && received_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(received) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_RECEIVED_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_RECEIVED_PERCENT], ""); } if(total_is_set && recovered_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(recovered) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_RECOVERED_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_RECOVERED_PERCENT], "---"); } if(total_is_set && recovered_is_set && received_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(received + recovered) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_RECEIVED_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_RECEIVED_PERCENT], "---"); } result = hx_player_get_statistic(info->player, "Lost", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_LOST], formatted_str); g_free(formatted_str); lost = val; lost_is_set = TRUE; } else { gtk_label_set_text(info->main[STATISTIC_UI_LOST], "---"); } result = hx_player_get_statistic(info->player, "Late", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_LATE], formatted_str); g_free(formatted_str); late = val; late_is_set = TRUE; } else { gtk_label_set_text(info->main[STATISTIC_UI_LATE], "---"); } if(lost_is_set && late_is_set) { formatted_str = g_strdup_printf("%d", lost + late); gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_MISSED], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_MISSED], "---"); } if(total_is_set && lost_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(lost) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_LOST_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_LOST_PERCENT], "---"); } if(total_is_set && late_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(late) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_LATE_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_LATE_PERCENT], "---"); } if(total_is_set && lost_is_set && late_is_set) { gdouble percent = 0; if(total > 0) { percent = 100.0 * (gdouble)(lost + late) / total; } formatted_str = g_strdup_printf("(%.2f%%)", percent); gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_MISSED_PERCENT], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_TOTAL_MISSED_PERCENT], "---"); } result = hx_player_get_statistic(info->player, "ResendRequested", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_RESEND_REQUESTED], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_RESEND_REQUESTED], "---"); } result = hx_player_get_statistic(info->player, "ResendReceived", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_RESEND_RECEIVED], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_RESEND_RECEIVED], "---"); } result = hx_player_get_statistic(info->player, "LowLatency", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_LOW_LATENCY], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_LOW_LATENCY], "---"); } result = hx_player_get_statistic(info->player, "AverageLatency", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_AVERAGE_LATENCY], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_AVERAGE_LATENCY], "---"); } result = hx_player_get_statistic(info->player, "HighLatency", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_HIGH_LATENCY], formatted_str); g_free(formatted_str); } else { gtk_label_set_text(info->main[STATISTIC_UI_HIGH_LATENCY], "---"); } result = hx_player_get_statistic(info->player, "Total30", &value); if(result) { total30 = g_value_get_int(&value); g_value_unset(&value); total30_is_set = TRUE; } result = hx_player_get_statistic(info->player, "Lost30", &value); if(result) { val = g_value_get_int(&value); g_value_unset(&value); formatted_str = g_strdup_printf("%d", val); gtk_label_set_text(info->main[STATISTIC_UI_HIGH_LATENCY], formatted_str); g_free(formatted_str); lost30_is_set = TRUE; } else { gtk_label_set_text(info->main[STATISTIC_UI_LOST30], "---"); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -