r3359 - in trunk/src/target/OM-2007.2/panel-plugins: openmoko-panel-battery/src openmoko-panel-usb/src

mickey at sita.openmoko.org mickey at sita.openmoko.org
Mon Nov 5 13:22:04 CET 2007


Author: mickey
Date: 2007-11-05 13:22:04 +0100 (Mon, 05 Nov 2007)
New Revision: 3359

Modified:
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c
   trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-usb/src/openmoko-panel-usb.c
Log:
usb|battery panel plugin: take into account usb enumeration timings


Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c	2007-11-05 11:53:08 UTC (rev 3358)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-battery/src/openmoko-panel-battery.c	2007-11-05 12:22:04 UTC (rev 3359)
@@ -53,19 +53,27 @@
 #define CHARGER_DBUS_PATH         "/org/freedesktop/PowerManagement"
 #define CHARGER_DBUS_INTERFACE    "org.freedesktop.PowerManagement"
 
-DBusHandlerResult signal_filter (DBusConnection *bus, DBusMessage *msg, void *user_data)
+static gboolean battery_applet_usb_timeout( BatteryApplet* applet )
 {
-    g_debug( "signal_filter" );
+    timeout( applet );
+    return FALSE;
+}
+
+DBusHandlerResult signal_filter( DBusConnection *bus, DBusMessage *msg, BatteryApplet* applet )
+{
+    g_debug( "battery_applet: signal_filter" );
     if ( dbus_message_is_signal( msg, CHARGER_DBUS_INTERFACE, "ChargerConnected" ) )
     {
-        g_debug( "connected" );
-        timeout( user_data );
+        g_debug( "charger connected" );
+        // NOTE Bus Enumeration and entering Charging Mode takes a while. If we immediately
+        // call timeout here, we will most likely not yet have entered charging mode
+        g_timeout_add_seconds( 3, (GSourceFunc) battery_applet_usb_timeout, applet );
         return DBUS_HANDLER_RESULT_HANDLED;
     }
     else if ( dbus_message_is_signal( msg, CHARGER_DBUS_INTERFACE, "ChargerDisconnected" ) )
     {
-        g_debug( "disconnected" );
-        timeout( user_data );
+        g_debug( "charger disconnected" );
+        timeout( applet );
         return DBUS_HANDLER_RESULT_HANDLED;
     }
 
@@ -98,9 +106,9 @@
 
 
 /* Called frequently */
-static gboolean
-timeout (BatteryApplet *applet)
+static gboolean timeout( BatteryApplet *applet )
 {
+    g_debug( "battery_applet: timeout" );
     char* icon;
     static int last_status = -123; /* the status last time we checked */
 

Modified: trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-usb/src/openmoko-panel-usb.c
===================================================================
--- trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-usb/src/openmoko-panel-usb.c	2007-11-05 11:53:08 UTC (rev 3358)
+++ trunk/src/target/OM-2007.2/panel-plugins/openmoko-panel-usb/src/openmoko-panel-usb.c	2007-11-05 12:22:04 UTC (rev 3359)
@@ -43,16 +43,16 @@
 {
     UsbApplet* applet = (UsbApplet*) user_data;
 
-    g_debug( "signal_filter" );
+    g_debug( "usb_applet: signal_filter" );
     if ( dbus_message_is_signal( msg, CHARGER_DBUS_INTERFACE, "ChargerConnected" ) )
     {
-        g_debug( "connected" );
+        g_debug( "-- charger connected" );
         usb_applet_update_status( applet, TRUE );
         return DBUS_HANDLER_RESULT_HANDLED;
     }
     else if ( dbus_message_is_signal( msg, CHARGER_DBUS_INTERFACE, "ChargerDisconnected" ) )
     {
-        g_debug( "disconnected" );
+        g_debug( "-- charger disconnected" );
         usb_applet_update_status( applet, FALSE );
         return DBUS_HANDLER_RESULT_HANDLED;
     }





More information about the commitlog mailing list