Hello NetworkManager List! Here are some patches to networkmanager applet for MBM so technology used in connection is shown in applet. Note this uses the earlier patch in Modem-Manager.
Regards, Bjorn @@ -316,6 +347,7 @@ char **tip, NMApplet *applet) { + NMAGsmModem *modem; GdkPixbuf *pixbuf = NULL; const char *iface; NMSettingConnection *s_con = NULL; @@ -335,16 +367,82 @@ *tip = g_strdup_printf (_("Waiting for user authentication on device '%s'..."), iface); break; case NM_DEVICE_STATE_ACTIVATED: - if (s_con) { - const char *id; + modem = (NMAGsmModem *) g_object_get_data (G_OBJECT (device), "gsm-modem"); + if (modem) { + char *oper_code; + char *oper_name; + guint32 reg_status; + guint32 quality; + guint32 network_mode; + + + quality = nma_gsm_modem_get_signal_quality (modem); + quality = CLAMP (quality, 0, 100); + network_mode = nma_gsm_modem_get_network_mode (modem); + + g_debug("quality = %d, net = %d", quality, network_mode); + + if (quality > 80) { + switch (network_mode) { + case MM_MODEM_GSM_NETWORK_MODE_HSDPA: + pixbuf = applet->wireless_100_H_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_3G: + pixbuf = applet->wireless_100_U_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_GPRS: + pixbuf = applet->wireless_100_E_icon; break; + default: + pixbuf = applet->wireless_100_icon; + } + } else if (quality > 55) { + switch (network_mode) { + case MM_MODEM_GSM_NETWORK_MODE_HSDPA: + pixbuf = applet->wireless_75_H_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_3G: + pixbuf = applet->wireless_75_U_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_GPRS: + pixbuf = applet->wireless_75_E_icon; break; + default: + pixbuf = applet->wireless_75_icon; + } + } else if (quality > 30) { + switch (network_mode) { + case MM_MODEM_GSM_NETWORK_MODE_HSDPA: + pixbuf = applet->wireless_50_H_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_3G: + pixbuf = applet->wireless_50_U_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_GPRS: + pixbuf = applet->wireless_50_E_icon; break; + default: + pixbuf = applet->wireless_50_icon; + } + } else if (quality > 5) { + switch (network_mode) { + case MM_MODEM_GSM_NETWORK_MODE_HSDPA: + pixbuf = applet->wireless_25_H_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_3G: + pixbuf = applet->wireless_25_U_icon; break; + case MM_MODEM_GSM_NETWORK_MODE_GPRS: + pixbuf = applet->wireless_25_E_icon; break; + default: + pixbuf = applet->wireless_25_icon; + } + } else + pixbuf = applet->wireless_00_icon; + + reg_status = nma_gsm_modem_get_registration_info (modem, &oper_code, &oper_name); + *tip = g_strdup_printf (_("%s GSM connection '%s' (%d%%)"), + reg_status == MM_GSM_MODEM_REG_STATUS_ROAMING ? _("Roaming") : _("Home"), + oper_name, quality); + + g_free (oper_name); + g_free (oper_code); + + } else { + pixbuf = applet->wireless_00_icon; + *tip = g_strdup_printf (_("GSM connection")); + } - id = nm_setting_connection_get_id (s_con); - if (id) - *tip = g_strdup_printf (_("Mobile broadband connection '%s'"), id); - } else - *tip = g_strdup (_("Mobile broadband connection")); - pixbuf = applet->wwan_icon; break; default: break; @@ -1974,6 +1965,21 @@ CLEAR_ICON(applet->wireless_50_icon); CLEAR_ICON(applet->wireless_75_icon); CLEAR_ICON(applet->wireless_100_icon); + CLEAR_ICON(applet->wireless_00_E_icon); + CLEAR_ICON(applet->wireless_25_E_icon); + CLEAR_ICON(applet->wireless_50_E_icon); + CLEAR_ICON(applet->wireless_75_E_icon); + CLEAR_ICON(applet->wireless_100_E_icon); + CLEAR_ICON(applet->wireless_00_U_icon); + CLEAR_ICON(applet->wireless_25_U_icon); + CLEAR_ICON(applet->wireless_50_U_icon); + CLEAR_ICON(applet->wireless_75_U_icon); + CLEAR_ICON(applet->wireless_100_U_icon); + CLEAR_ICON(applet->wireless_00_H_icon); + CLEAR_ICON(applet->wireless_25_H_icon); + CLEAR_ICON(applet->wireless_50_H_icon); + CLEAR_ICON(applet->wireless_75_H_icon); + CLEAR_ICON(applet->wireless_100_H_icon); for (i = 0; i < NUM_CONNECTING_STAGES; i++) { for (j = 0; j < NUM_CONNECTING_FRAMES; j++) @@ -2021,6 +2027,21 @@ ICON_LOAD(applet->wireless_50_icon, "nm-signal-50"); ICON_LOAD(applet->wireless_75_icon, "nm-signal-75"); ICON_LOAD(applet->wireless_100_icon, "nm-signal-100"); + ICON_LOAD(applet->wireless_00_E_icon, "nm-signal-00-E"); + ICON_LOAD(applet->wireless_25_E_icon, "nm-signal-25-E"); + ICON_LOAD(applet->wireless_50_E_icon, "nm-signal-50-E"); + ICON_LOAD(applet->wireless_75_E_icon, "nm-signal-75-E"); + ICON_LOAD(applet->wireless_100_E_icon, "nm-signal-100-E"); + ICON_LOAD(applet->wireless_00_U_icon, "nm-signal-00-U"); + ICON_LOAD(applet->wireless_25_U_icon, "nm-signal-25-U"); + ICON_LOAD(applet->wireless_50_U_icon, "nm-signal-50-U"); + ICON_LOAD(applet->wireless_75_U_icon, "nm-signal-75-U"); + ICON_LOAD(applet->wireless_100_U_icon, "nm-signal-100-U"); + ICON_LOAD(applet->wireless_00_H_icon, "nm-signal-00-H"); + ICON_LOAD(applet->wireless_25_H_icon, "nm-signal-25-H"); + ICON_LOAD(applet->wireless_50_H_icon, "nm-signal-50-H"); + ICON_LOAD(applet->wireless_75_H_icon, "nm-signal-75-H"); + ICON_LOAD(applet->wireless_100_H_icon, "nm-signal-100-H"); for (i = 0; i < NUM_CONNECTING_STAGES; i++) { for (j = 0; j < NUM_CONNECTING_FRAMES; j++) { --- ../foss/network-manager-applet/svn/src/applet.h 2008-10-27 04:58:11.000000000 -0700 +++ ../src/network-manager-applet/src/applet.h 2008-10-24 07:04:35.000000000 -0700 @@ -109,6 +109,21 @@ GdkPixbuf * wireless_50_icon; GdkPixbuf * wireless_75_icon; GdkPixbuf * wireless_100_icon; + GdkPixbuf * wireless_00_E_icon; + GdkPixbuf * wireless_25_E_icon; + GdkPixbuf * wireless_50_E_icon; + GdkPixbuf * wireless_75_E_icon; + GdkPixbuf * wireless_100_E_icon; + GdkPixbuf * wireless_00_U_icon; + GdkPixbuf * wireless_25_U_icon; + GdkPixbuf * wireless_50_U_icon; + GdkPixbuf * wireless_75_U_icon; + GdkPixbuf * wireless_100_U_icon; + GdkPixbuf * wireless_00_H_icon; + GdkPixbuf * wireless_25_H_icon; + GdkPixbuf * wireless_50_H_icon; + GdkPixbuf * wireless_75_H_icon; + GdkPixbuf * wireless_100_H_icon; #define NUM_CONNECTING_STAGES 3 #define NUM_CONNECTING_FRAMES 11 GdkPixbuf * network_connecting_icons[NUM_CONNECTING_STAGES][NUM_CONNECTING_FRAMES]; @@ -215,4 +230,17 @@ NMApplet *applet, NMActiveConnection **out_active); + +typedef enum { + MM_MODEM_GSM_NETWORK_MODE_ANY = 0, + MM_MODEM_GSM_NETWORK_MODE_GPRS = 1, + MM_MODEM_GSM_NETWORK_MODE_EDGE = 2, + MM_MODEM_GSM_NETWORK_MODE_3G = 3, + MM_MODEM_GSM_NETWORK_MODE_HSDPA = 4, + MM_MODEM_GSM_NETWORK_MODE_PREFER_2G = 5, + MM_MODEM_GSM_NETWORK_MODE_PREFER_3G = 6, + + MM_MODEM_GSM_NETWORK_MODE_LAST = MM_MODEM_GSM_NETWORK_MODE_PREFER_3G +} MMModemGsmNetworkMode; + #endif http://www.nabble.com/file/p20192060/nm-signal-00-E.png nm-signal-00-E.png http://www.nabble.com/file/p20192060/nm-signal-00-U.png nm-signal-00-U.png http://www.nabble.com/file/p20192060/nm-signal-00-H.png nm-signal-00-H.png http://www.nabble.com/file/p20192060/nm-signal-25-E.png nm-signal-25-E.png http://www.nabble.com/file/p20192060/nm-signal-25-H.png nm-signal-25-H.png http://www.nabble.com/file/p20192060/nm-signal-25-U.png nm-signal-25-U.png http://www.nabble.com/file/p20192060/nm-signal-50-E.png nm-signal-50-E.png http://www.nabble.com/file/p20192060/nm-signal-50-H.png nm-signal-50-H.png http://www.nabble.com/file/p20192060/nm-signal-50-U.png nm-signal-50-U.png http://www.nabble.com/file/p20192060/nm-signal-75-E.png nm-signal-75-E.png http://www.nabble.com/file/p20192060/nm-signal-75-H.png nm-signal-75-H.png http://www.nabble.com/file/p20192060/nm-signal-75-U.png nm-signal-75-U.png http://www.nabble.com/file/p20192060/nm-signal-100-E.png nm-signal-100-E.png http://www.nabble.com/file/p20192060/nm-signal-100-H.png nm-signal-100-H.png http://www.nabble.com/file/p20192060/nm-signal-100-U.png nm-signal-100-U.png -- View this message in context: http://www.nabble.com/-PATCH--nm-applet-for-MBM-%28Show-technology%29-tp20192060p20192060.html Sent from the Gnome - NetworkManager mailing list archive at Nabble.com. _______________________________________________ NetworkManager-list mailing list NetworkManager-list@gnome.org http://mail.gnome.org/mailman/listinfo/networkmanager-list