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