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

Reply via email to