r2717 - trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gsm/src
njp at sita.openmoko.org
njp at sita.openmoko.org
Thu Aug 16 17:44:57 CEST 2007
Author: njp
Date: 2007-08-16 17:44:55 +0200 (Thu, 16 Aug 2007)
New Revision: 2717
Modified:
trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c
Log:
* Fix all warnings.
* Make the image used dependant on signal percentage.
* Fix small mem leak.
Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c 2007-08-16 11:21:57 UTC (rev 2716)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gsm/src/openmoko-panel-gsm.c 2007-08-16 15:44:55 UTC (rev 2717)
@@ -22,61 +22,84 @@
#include <gtk/gtk.h>
#include <time.h>
+/* Just change this is gsmd changes */
+#define _MAX_SIGNAL 30.0
+
typedef struct {
- GtkImage* image;
+ GtkWidget* image;
gboolean gprs_mode;
MokoGsmdConnection* gsm;
} GsmApplet;
-static void gsm_applet_free(GsmApplet *applet)
+static void
+gsm_applet_free(GsmApplet *applet)
{
g_slice_free( GsmApplet, applet );
}
-static void gsm_applet_update_signal_strength(MokoGsmdConnection* connection, int strength, GsmApplet* applet)
+static void
+gsm_applet_update_signal_strength(MokoGsmdConnection* connection,
+ int strength,
+ GsmApplet* applet)
{
- g_debug( "gsm_applet_update_signal_strength: signal strength = %d", strength );
- //TODO calibrate
- int pixmap = 0;
- if ( strength > 30 )
- pixmap = 5;
- else if ( strength > 20 )
- pixmap = 4;
- else if ( strength > 17 )
- pixmap = 3;
- else if ( strength > 13 )
- pixmap = 2;
- else if ( strength > 10 )
- pixmap = 1;
+ gfloat percent;
+ gint pixmap = 0;
+ gchar *image = NULL;
- const char* imagestring = g_strdup_printf( "%s/SignalStrength%s%02d.png", PKGDATADIR, applet->gprs_mode ? "25g_" : "_", pixmap );
- gtk_image_set_from_file( GTK_IMAGE(applet->image), imagestring );
+ g_debug( "gsm_applet_update_signal_strength: signal strength = %d",
+ strength );
+
+ percent = (strength / _MAX_SIGNAL) * 100;
+
+ if ( percent == 0 )
+ pixmap = 0;
+ else if ( percent < 20 )
+ pixmap = 1;
+ else if ( percent < 40 )
+ pixmap = 2;
+ else if ( percent < 60 )
+ pixmap = 3;
+ else if ( percent < 80 )
+ pixmap = 4;
+ else
+ pixmap = 5;
+
+ image = g_strdup_printf( "%s/SignalStrength%s%02d.png",
+ PKGDATADIR,
+ applet->gprs_mode ? "25g_" : "_", pixmap );
+ gtk_image_set_from_file( GTK_IMAGE(applet->image), image );
+
+ g_free (image);
}
-static void gsm_applet_power_up_antenna(GtkWidget* menu, GsmApplet* applet)
+static void
+gsm_applet_power_up_antenna(GtkWidget* menu, GsmApplet* applet)
{
//TODO notify user
moko_gsmd_connection_set_antenna_power( applet->gsm, TRUE );
}
-static void gsm_applet_autoregister_network(GtkWidget* menu, GsmApplet* applet)
+static void
+gsm_applet_autoregister_network(GtkWidget* menu, GsmApplet* applet)
{
moko_gsmd_connection_network_register( applet->gsm );
}
-static void gsm_applet_power_down_antenna(GtkWidget* menu, GsmApplet* applet)
+static void
+gsm_applet_power_down_antenna(GtkWidget* menu, GsmApplet* applet)
{
//TODO notify user
moko_gsmd_connection_set_antenna_power( applet->gsm, FALSE );
}
-G_MODULE_EXPORT GtkWidget* mb_panel_applet_create(const char* id, GtkOrientation orientation)
+G_MODULE_EXPORT GtkWidget*
+mb_panel_applet_create(const char* id, GtkOrientation orientation)
{
MokoPanelApplet* mokoapplet = MOKO_PANEL_APPLET(moko_panel_applet_new());
GsmApplet* applet;
applet = g_slice_new(GsmApplet);
- applet->image = GTK_IMAGE(gtk_image_new_from_file( PKGDATADIR "/SignalStrength_NR.png" ) );
+ applet->image = gtk_image_new_from_file( PKGDATADIR "/SignalStrength_NR.png" );
applet->gprs_mode = FALSE;
gtk_widget_set_name( GTK_WIDGET(applet->image), "openmoko-gsm-applet" );
g_object_weak_ref( G_OBJECT(applet->image), (GWeakNotify) gsm_applet_free, applet );
@@ -87,7 +110,7 @@
g_signal_connect( G_OBJECT(applet->gsm), "signal-strength-changed", G_CALLBACK(gsm_applet_update_signal_strength), applet );
// tap-with-hold menu (NOTE: temporary: left button atm.)
- GtkMenu* menu = gtk_menu_new();
+ GtkMenu* menu = GTK_MENU (gtk_menu_new());
GtkWidget* item1 = gtk_menu_item_new_with_label( "Power-Up GSM Antenna" );
g_signal_connect( G_OBJECT(item1), "activate", G_CALLBACK(gsm_applet_power_up_antenna), applet );
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item1 );
@@ -99,6 +122,6 @@
gtk_menu_shell_append( GTK_MENU_SHELL(menu), item3 );
gtk_widget_show_all( GTK_WIDGET(menu) );
- moko_panel_applet_set_popup( mokoapplet, menu, MOKO_PANEL_APPLET_CLICK_POPUP );
+ moko_panel_applet_set_popup( mokoapplet, GTK_WIDGET (menu), MOKO_PANEL_APPLET_CLICK_POPUP );
return GTK_WIDGET(mokoapplet);
-};
+}
More information about the commitlog
mailing list