4
* Copyright 2013 Alex <alex@linuxonly.ru>
6
* This program is free software: you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 3 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
24
#include <glib/gi18n.h>
26
#include "strformat.h"
27
#include "mmguicore.h"
29
gchar *mmgui_str_format_speed(gfloat speed, gchar *buffer, gsize bufsize, gboolean small)
33
if ((buffer == NULL) || (bufsize == 0)) return NULL;
35
memset(buffer, 0, bufsize);
39
g_snprintf(buffer, bufsize, _("<small><b>%.3f kbps</b></small>"), speed);
41
g_snprintf(buffer, bufsize, _("%.3f kbps"), speed);
43
} else if ((speed >= 1024.0) && (speed < 1048576.0)) {
44
fpvalue = speed / (gdouble)(1024.0);
46
g_snprintf(buffer, bufsize, _("<small><b>%.3g Mbps</b></small>"), fpvalue);
48
g_snprintf(buffer, bufsize, _("%.3g Mbps"), fpvalue);
51
fpvalue = speed / (gdouble)(1048576.0);
53
g_snprintf(buffer, bufsize, _("<small><b>%.3g Gbps</b></small>"), fpvalue);
55
g_snprintf(buffer, bufsize, _("%.3g Gbps"), fpvalue);
62
gchar *mmgui_str_format_time_number(guchar number, gchar *buffer, gsize bufsize)
64
if ((buffer == NULL) || (bufsize == 0)) return NULL;
66
memset(buffer, 0, bufsize);
69
g_snprintf(buffer, bufsize, "0%u", (guint)number);
71
g_snprintf(buffer, bufsize, "%u", (guint)number);
77
gchar *mmgui_str_format_time(guint64 seconds, gchar *buffer, gsize bufsize, gboolean small)
79
gchar secbuffer[3], minbuffer[3], hourbuffer[3];
81
if ((buffer == NULL) || (bufsize == 0)) return NULL;
83
memset(buffer, 0, bufsize);
87
g_snprintf(buffer, bufsize, _("<small><b>%u sec</b></small>"), (guint)seconds);
89
g_snprintf(buffer, bufsize, _("%u sec"), (guint)seconds);
91
} else if ((seconds >= 60) && (seconds < 3600)) {
93
g_snprintf(buffer, bufsize, _("<small><b>%s:%s</b></small>"), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
95
g_snprintf(buffer, bufsize, _("%s:%s"), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
97
} else if ((seconds >= 3600) && (seconds < 86400)) {
99
g_snprintf(buffer, bufsize, _("<small><b>%s:%s:%s</b></small>"), mmgui_str_format_time_number(seconds%86400/3600, hourbuffer, sizeof(hourbuffer)), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
101
g_snprintf(buffer, bufsize, _("%s:%s:%s"), mmgui_str_format_time_number(seconds%86400/3600, hourbuffer, sizeof(hourbuffer)), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
105
g_snprintf(buffer, bufsize, _("<small><b>%" G_GUINT64_FORMAT " day(s) %s:%s:%s</b></small>"), seconds/86400, mmgui_str_format_time_number(seconds%86400/3600, hourbuffer, sizeof(hourbuffer)), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
107
g_snprintf(buffer, bufsize, _("%" G_GUINT64_FORMAT " day(s) %s:%s:%s"), seconds/86400, mmgui_str_format_time_number(seconds%86400/3600, hourbuffer, sizeof(hourbuffer)), mmgui_str_format_time_number(seconds%3600/60, minbuffer, sizeof(minbuffer)), mmgui_str_format_time_number(seconds%60, secbuffer, sizeof(secbuffer)));
114
gchar *mmgui_str_format_bytes(guint64 bytes, gchar *buffer, gsize bufsize, gboolean small)
118
if ((buffer == NULL) || (bufsize == 0)) return NULL;
120
memset(buffer, 0, bufsize);
124
g_snprintf(buffer, bufsize, _("<small><b>%u</b></small>"), (guint)bytes);
126
g_snprintf(buffer, bufsize, _("%u"), (guint)bytes);
128
} else if ((bytes >= 1024) && (bytes < 1048576ull)) {
129
fpvalue = bytes / (gdouble)(1024.0);
131
g_snprintf(buffer, bufsize, _("<small><b>%.3g Kb</b></small>"), fpvalue);
133
g_snprintf(buffer, bufsize, _("%.3g Kb"), fpvalue);
135
} else if ((bytes >= 1048576ull) && (bytes < 1073741824ull)) {
136
fpvalue = bytes / (gdouble)(1048576.0);
138
g_snprintf(buffer, bufsize, _("<small><b>%.3g Mb</b></small>"), fpvalue);
140
g_snprintf(buffer, bufsize, _("%.3g Mb"), fpvalue);
142
} else if ((bytes >= 1073741824ull) && (bytes < 109951162800ull)) {
143
fpvalue = bytes / (gdouble)(1073741824.0);
145
g_snprintf(buffer, bufsize, _("<small><b>%.3g Gb</b></small>"), fpvalue);
147
g_snprintf(buffer, bufsize, _("%.3g Gb"), fpvalue);
150
fpvalue = bytes / (gdouble)(109951162800.0);
152
g_snprintf(buffer, bufsize, _("<small><b>%.3g Tb</b></small>"), fpvalue);
154
g_snprintf(buffer, bufsize, _("%.3g Tb"), fpvalue);
161
gchar *mmgui_str_format_mode_string(enum _mmgui_device_modes mode)
164
case MMGUI_DEVICE_MODE_UNKNOWN:
166
case MMGUI_DEVICE_MODE_GSM:
168
case MMGUI_DEVICE_MODE_GSM_COMPACT:
169
return "Compact GSM";
170
case MMGUI_DEVICE_MODE_GPRS:
172
case MMGUI_DEVICE_MODE_EDGE:
173
return "EDGE (ETSI 27.007: \"GSM w/EGPRS\")";
174
case MMGUI_DEVICE_MODE_UMTS:
175
return "UMTS (ETSI 27.007: \"UTRAN\")";
176
case MMGUI_DEVICE_MODE_HSDPA:
177
return "HSDPA (ETSI 27.007: \"UTRAN w/HSDPA\")";
178
case MMGUI_DEVICE_MODE_HSUPA:
179
return "HSUPA (ETSI 27.007: \"UTRAN w/HSUPA\")";
180
case MMGUI_DEVICE_MODE_HSPA:
181
return "HSPA (ETSI 27.007: \"UTRAN w/HSDPA and HSUPA\")";
182
case MMGUI_DEVICE_MODE_HSPA_PLUS:
183
return "HSPA+ (ETSI 27.007: \"UTRAN w/HSPA+\")";
184
case MMGUI_DEVICE_MODE_1XRTT:
185
return "CDMA2000 1xRTT";
186
case MMGUI_DEVICE_MODE_EVDO0:
187
return "CDMA2000 EVDO revision 0";
188
case MMGUI_DEVICE_MODE_EVDOA:
189
return "CDMA2000 EVDO revision A";
190
case MMGUI_DEVICE_MODE_EVDOB:
191
return "CDMA2000 EVDO revision B";
192
case MMGUI_DEVICE_MODE_LTE:
193
return "LTE (ETSI 27.007: \"E-UTRAN\")";
199
gchar *mmgui_str_format_na_status_string(enum _mmgui_network_availability status)
202
case MMGUI_NA_UNKNOWN:
204
case MMGUI_NA_AVAILABLE:
205
return _("Available");
206
case MMGUI_NA_CURRENT:
208
case MMGUI_NA_FORBIDDEN:
209
return _("Forbidden");
215
gchar *mmgui_str_format_access_tech_string(enum _mmgui_access_tech status)
218
case MMGUI_ACCESS_TECH_GSM:
220
case MMGUI_ACCESS_TECH_GSM_COMPACT:
221
return "GSM Compact";
222
case MMGUI_ACCESS_TECH_UMTS:
224
case MMGUI_ACCESS_TECH_EDGE:
226
case MMGUI_ACCESS_TECH_HSDPA:
228
case MMGUI_ACCESS_TECH_HSUPA:
230
case MMGUI_ACCESS_TECH_HSPA:
237
gchar *mmgui_str_format_reg_status(enum _mmgui_reg_status status)
240
case MMGUI_REG_STATUS_IDLE:
241
return _("Not registered");
242
case MMGUI_REG_STATUS_HOME:
243
return _("Home network");
244
case MMGUI_REG_STATUS_SEARCHING:
245
return _("Searching");
246
case MMGUI_REG_STATUS_DENIED:
247
return _("Registration denied");
248
case MMGUI_REG_STATUS_UNKNOWN:
249
return _("Unknown status");
250
case MMGUI_REG_STATUS_ROAMING:
251
return _("Roaming network");
253
return _("Unknown status");