r4330 - trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gps/src

erin_yueh at sita.openmoko.org erin_yueh at sita.openmoko.org
Wed Apr 9 10:14:11 CEST 2008


Author: erin_yueh
Date: 2008-04-09 10:14:07 +0200 (Wed, 09 Apr 2008)
New Revision: 4330

Modified:
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gps/src/openmoko-panel-gps.c
Log:
openmoko-panel-gps: detect GPS ON or OFF every 5 seconds (Erin Yueh)


Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gps/src/openmoko-panel-gps.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gps/src/openmoko-panel-gps.c	2008-04-08 23:16:10 UTC (rev 4329)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-gps/src/openmoko-panel-gps.c	2008-04-09 08:14:07 UTC (rev 4330)
@@ -23,9 +23,12 @@
 #include <stdio.h>
 
 #define GPS_PWOERON_FILENAME "/sys/bus/platform/drivers/neo1973-pm-gps/neo1973-pm-gps.0/pwron"
+#define QUERY_FREQ 5 
+
 typedef struct {
     MokoPanelApplet* mokoapplet;
     int state;
+    guint timeout_id;
 } GpsApplet;
 
 static void
@@ -89,7 +92,22 @@
     mb_panel_update(applet,gps_applet_power_set(0));
 }
 
+static void
+gps_applet_update_visibility (GpsApplet *applet)
+{
+    moko_panel_applet_set_icon(applet->mokoapplet,PKGDATADIR "/GPS_Off.png");
+    mb_panel_update(applet, gps_applet_power_get());
+    gtk_widget_show_all( GTK_WIDGET(applet->mokoapplet) );
+}
 
+static gboolean
+gps_applet_timeout_cb (gpointer data)
+{
+  gps_applet_update_visibility ((GpsApplet *)data);
+
+  return TRUE;
+}
+
 G_MODULE_EXPORT GtkWidget*
 mb_panel_applet_create(const char* id, GtkOrientation orientation)
 {
@@ -103,9 +121,7 @@
     applet->mokoapplet = mokoapplet;
     applet->state=-100;
 
-    moko_panel_applet_set_icon(applet->mokoapplet,PKGDATADIR "/GPS_Off.png");
-    mb_panel_update(applet, gps_applet_power_get());
-    gtk_widget_show_all( GTK_WIDGET(mokoapplet) );
+    gps_applet_update_visibility (applet);
     
     GtkMenu* menu = GTK_MENU(gtk_menu_new());
     GtkWidget* item1 = gtk_menu_item_new_with_label("Power-Up GPS");
@@ -117,5 +133,8 @@
     gtk_widget_show_all(GTK_WIDGET(menu));
     moko_panel_applet_set_popup( mokoapplet, GTK_WIDGET(menu), MOKO_PANEL_APPLET_CLICK_POPUP);
 
+    applet->timeout_id = g_timeout_add_seconds (QUERY_FREQ, gps_applet_timeout_cb, 
+      applet);
+    
     return GTK_WIDGET(mokoapplet);
 };





More information about the commitlog mailing list