35
35
// Prend un debit en octet par seconde et le transforme en une chaine de la forme : xxx yB/s
36
static void cd_netspeed_formatRate (CairoDockModuleInstance *myApplet, unsigned long long rate, gchar* debit) {
36
static void cd_netspeed_formatRate (unsigned long long rate, gchar* debit, int iBufferSize, gboolean bLong)
42
g_sprintf(debit, "0 %s/s", D_("B"));
42
snprintf (debit, iBufferSize, "0 %s/s", D_("B"));
44
g_sprintf(debit, "0");
44
snprintf (debit, iBufferSize, "0");
46
46
else if (rate < 1024)
50
g_sprintf(debit, "%i %s/s", smallRate, D_("B"));
50
snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("B"));
52
g_sprintf(debit, "%iB", smallRate);
52
snprintf (debit, iBufferSize, "%iB", smallRate);
54
54
else if (rate < (1<<20))
56
56
smallRate = rate >> 10;
58
g_sprintf(debit, "%i %s/s", smallRate, D_("KB"));
58
snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("KB"));
60
g_sprintf(debit, "%iK", smallRate);
60
snprintf (debit, iBufferSize, "%iK", smallRate);
62
62
else if (rate < (1<<30))
64
64
smallRate = rate >> 20;
66
g_sprintf(debit, "%i %s/s", smallRate, D_("MB"));
66
snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("MB"));
68
g_sprintf(debit, "%iM", smallRate);
68
snprintf (debit, iBufferSize, "%iM", smallRate);
70
70
else if (rate < ((unsigned long long)1<<40))
72
72
smallRate = rate >> 30;
74
g_sprintf(debit, "%i %s/s", smallRate, D_("GB"));
74
snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("GB"));
76
g_sprintf(debit, "%iG", smallRate);
76
snprintf (debit, iBufferSize, "%iG", smallRate);
78
78
else // c'est vraiment pour dire qu'on est exhaustif :-)
80
80
smallRate = rate >> 40;
82
g_sprintf(debit, "%i %s/s", smallRate, D_("TB"));
82
snprintf (debit, iBufferSize, "%i %s/s", smallRate, D_("TB"));
84
g_sprintf(debit, "%iT", smallRate);
84
snprintf (debit, iBufferSize, "%iT", smallRate);
89
void cd_netspeed_format_value (CairoDataRenderer *pRenderer, int iNumValue, gchar *cFormatBuffer, int iBufferLength, CairoDockModuleInstance *myApplet)
91
static gchar s_upRateFormatted[11];
92
double fValue = cairo_data_renderer_get_normalized_current_value_with_latency (pRenderer, iNumValue);
94
fValue *= (iNumValue == 0 ? myData.iMaxUpRate : myData.iMaxDownRate);
95
cd_netspeed_formatRate (fValue, s_upRateFormatted, 11, FALSE);
96
snprintf (cFormatBuffer, iBufferLength,
98
cairo_data_renderer_can_write_values (pRenderer) ? (iNumValue == 0 ?"↓" : "↑") : "",
89
102
void cd_netspeed_get_data (CairoDockModuleInstance *myApplet)
91
104
g_timer_stop (myData.pClock);
189
202
if (myConfig.iInfoDisplay != CAIRO_DOCK_INFO_NONE)
191
cd_netspeed_formatRate (myApplet, myData.iUploadSpeed, s_upRateFormatted);
192
cd_netspeed_formatRate (myApplet, myData.iDownloadSpeed, s_downRateFormatted);
204
cd_netspeed_formatRate (myData.iUploadSpeed, s_upRateFormatted, 11, myDesklet != NULL);
205
cd_netspeed_formatRate (myData.iDownloadSpeed, s_downRateFormatted, 11, myDesklet != NULL);
193
207
if (myConfig.iInfoDisplay == CAIRO_DOCK_INFO_ON_ICON)
195
CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("↓%s\n↑%s", s_downRateFormatted, s_upRateFormatted);
209
CairoDataRenderer *pRenderer = cairo_dock_get_icon_data_renderer (myIcon);
210
if (!pRenderer || ! cairo_data_renderer_can_write_values (pRenderer))
211
CD_APPLET_SET_QUICK_INFO_ON_MY_ICON_PRINTF ("↓%s\n↑%s", s_downRateFormatted, s_upRateFormatted);