⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 statistics.cpp

📁 linux下的一款播放器
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        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 + -