r4331 - trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-bt/src

erin_yueh at sita.openmoko.org erin_yueh at sita.openmoko.org
Wed Apr 9 10:16:31 CEST 2008


Author: erin_yueh
Date: 2008-04-09 10:16:27 +0200 (Wed, 09 Apr 2008)
New Revision: 4331

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


Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-bt/src/openmoko-panel-bt.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-bt/src/openmoko-panel-bt.c	2008-04-09 08:14:07 UTC (rev 4330)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-bt/src/openmoko-panel-bt.c	2008-04-09 08:16:27 UTC (rev 4331)
@@ -22,12 +22,14 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#define BT_POWERON_FILENAME "/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-bt.0/power_on"
-#define BT_RESET_FILENAME "/sys/devices/platform/s3c2440-i2c/i2c-adapter/i2c-0/0-0073/neo1973-pm-bt.0/reset"
+#define BT_POWERON_FILENAME "/sys/bus/platform/devices/neo1973-pm-bt.0/power_on"
+#define BT_RESET_FILENAME "/sys/bus/platform/devices/neo1973-pm-bt.0/reset"
+#define QUERY_FREQ 5 
 
 typedef struct {
   MokoPanelApplet *mokoapplet;
   int state;
+  guint timeout_id;
 } BtApplet;
 
 static int
@@ -127,6 +129,21 @@
     g_slice_free (BtApplet, applet);
 }
 
+static void
+bt_applet_update_visibility (BtApplet *applet)
+{
+    mb_panel_update( applet, read_bt_power() );
+    gtk_widget_show_all( GTK_WIDGET(applet->mokoapplet) );
+}
+
+static gboolean
+bt_applet_timeout_cb (gpointer data)
+{
+  bt_applet_update_visibility ((BtApplet *)data);
+
+  return TRUE;
+}
+
 G_MODULE_EXPORT GtkWidget*
 mb_panel_applet_create(const char* id, GtkOrientation orientation)
 {
@@ -134,9 +151,8 @@
     MokoPanelApplet* mokoapplet = applet->mokoapplet = moko_panel_applet_new();
 
     applet->state = 42;
-    mb_panel_update( applet, read_bt_power() );
-    gtk_widget_show_all( GTK_WIDGET(applet->mokoapplet) );
-
+    bt_applet_update_visibility (applet);
+    
     GtkMenu* menu = GTK_MENU(gtk_menu_new());
     GtkWidget* item1 = gtk_menu_item_new_with_label("Power-Up Bluetooth radio");
     g_signal_connect(G_OBJECT(item1), "activate", G_CALLBACK(bt_applet_power_on), applet);
@@ -151,5 +167,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, bt_applet_timeout_cb, 
+      applet);
+      
     return GTK_WIDGET(mokoapplet);
 }





More information about the commitlog mailing list