[Goodies-commits] r6932 - in xfce4-power-manager/trunk: . src

Ali Abdallah aliov at xfce.org
Tue Mar 17 19:55:03 CET 2009


Author: aliov
Date: 2009-03-17 18:55:03 +0000 (Tue, 17 Mar 2009)
New Revision: 6932

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml
   xfce4-power-manager/trunk/src/xfpm-battery.c
   xfce4-power-manager/trunk/src/xfpm-battery.h
   xfce4-power-manager/trunk/src/xfpm-engine.c
   xfce4-power-manager/trunk/src/xfpm-supply.c
   xfce4-power-manager/trunk/src/xfpm-supply.h
Log:
Some optimization in the battery code+added GetOnBattery and on LowBattery DBus methods

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-17 18:55:03 UTC (rev 6932)
@@ -1,4 +1,7 @@
 
+2009-03-17 19:54 Ali aliov at xfce.org 
+	 * : Some optimization in the battery code+added GetOnBattery and on LowBattery DBus methods
+
 2009-03-17 19:15 Ali aliov at xfce.org 
 	 * : Added experimentale code to monitor hal proxy+some typos
 

Modified: xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.xml	2009-03-17 18:55:03 UTC (rev 6932)
@@ -20,6 +20,14 @@
     <method name="CanHibernate">
       <arg type="b" name="can_hibernate" direction="out"/>
     </method>
+    
+    <method name="GetOnBattery">
+      <arg type="b" name="on_battery" direction="out"/>
+    </method>
 	
+    <method name="GetLowBattery">
+      <arg type="b" name="low_battery" direction="out"/>
+    </method>
+    
     </interface>
 </node>

Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c	2009-03-17 18:55:03 UTC (rev 6932)
@@ -41,6 +41,8 @@
 #include "xfpm-marshal.h"
 #include "xfpm-enum-types.h"
 #include "xfpm-battery-info.h"
+#include "xfpm-xfconf.h"
+#include "xfpm-config.h"
 #include "xfpm-notify.h"
 #include "xfpm-adapter.h"
 
@@ -57,6 +59,7 @@
     XfpmTrayIcon    *icon;
     XfpmAdapter     *adapter;
     HalBattery      *device;
+    XfpmXfconf      *conf;
 
     HalDeviceType    type;
     gchar 	    *icon_prefix;
@@ -429,6 +432,54 @@
 }
 
 static void
+xfpm_battery_property_changed_cb (XfconfChannel *channel, gchar *property,
+				  GValue *value, XfpmBattery *battery)
+{
+    if ( G_VALUE_TYPE(value) == G_TYPE_INVALID )
+    	return;
+	
+    if ( xfpm_strequal (property, SHOW_TRAY_ICON_CFG) )
+    {
+	guint val = g_value_get_uint (value);
+	battery->priv->show_icon = val;
+	xfpm_battery_refresh_visible_icon (battery);
+    }
+    else if ( xfpm_strequal( property, CRITICAL_POWER_LEVEL) )
+    {
+	guint val = g_value_get_uint (value);
+	if ( val > 20 )
+	{
+	    g_warning ("Value %d for property %s is out of range \n", val, CRITICAL_POWER_LEVEL);
+	    battery->priv->critical_level = 10;
+	}
+	else 
+	    battery->priv->critical_level = val;
+    }
+}
+
+static void
+xfpm_battery_load_configuration (XfpmBattery *battery)
+{
+    battery->priv->show_icon =
+    	xfconf_channel_get_uint (battery->priv->conf->channel, SHOW_TRAY_ICON_CFG, 0);
+	
+    if ( battery->priv->show_icon < 0 || battery->priv->show_icon > 3 )
+    {
+	g_warning ("Invalid value %d for property %s, using default\n", battery->priv->show_icon, SHOW_TRAY_ICON_CFG);
+	xfconf_channel_set_uint (battery->priv->conf->channel, CRITICAL_BATT_ACTION_CFG, 0);
+    }
+    
+    battery->priv->critical_level =
+	xfconf_channel_get_uint (battery->priv->conf->channel, CRITICAL_POWER_LEVEL, 0);
+	
+    if ( battery->priv->critical_level <0 || battery->priv->critical_level > 20 )
+    {
+	g_warning ("Value %d for property %s is out of range \n", battery->priv->critical_level, CRITICAL_POWER_LEVEL);
+	battery->priv->critical_level = 10;
+    }
+}
+
+static void
 xfpm_battery_class_init(XfpmBatteryClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -468,11 +519,17 @@
     battery->priv->icon      = xfpm_tray_icon_new ();
     battery->priv->show_icon = SHOW_ICON_ALWAYS;
     battery->priv->adapter   = xfpm_adapter_new ();
+    battery->priv->conf      = xfpm_xfconf_new ();
     
     battery->priv->adapter_present = xfpm_adapter_get_present (battery->priv->adapter);
     
     g_signal_connect (battery->priv->adapter ,"adapter-changed",
 		      G_CALLBACK(xfpm_battery_adapter_changed_cb), battery);
+		      
+    g_signal_connect (battery->priv->conf->channel ,"property-changed",
+		      G_CALLBACK(xfpm_battery_property_changed_cb), battery);
+		      
+    xfpm_battery_load_configuration (battery);
 }
 
 static void
@@ -489,6 +546,8 @@
     	g_free(battery->priv->icon_prefix);
 	
     g_object_unref (battery->priv->adapter);
+    
+    g_object_unref (battery->priv->conf);
 
     G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
 }

Modified: xfce4-power-manager/trunk/src/xfpm-battery.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.h	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-battery.h	2009-03-17 18:55:03 UTC (rev 6932)
@@ -62,9 +62,6 @@
 GType        		 xfpm_battery_get_type           (void) G_GNUC_CONST;
 XfpmBattery    		*xfpm_battery_new                (const HalBattery *device);
 
-void                     xfpm_battery_set_show_icon      (XfpmBattery *battery,
-							  XfpmShowIcon show_icon);
-							  
 const HalBattery	*xfpm_battery_get_device         (XfpmBattery *battery);
 
 XfpmBatteryState         xfpm_battery_get_state          (XfpmBattery *battery);
@@ -75,9 +72,6 @@
 
 void            	 xfpm_battery_show_info          (XfpmBattery *battery);
 
-void                     xfpm_battery_set_critical_level (XfpmBattery *battery,
-							  guint8 critical_level);
-
 G_END_DECLS
 
 #endif /* __XFPM_BATTERY_H */

Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-17 18:55:03 UTC (rev 6932)
@@ -484,6 +484,14 @@
 						 gboolean *OUT_can_suspend,
 						 GError **error);
 
+static gboolean xfpm_engine_dbus_get_on_battery	(XfpmEngine *engine,
+						 gboolean *OUT_on_battery,
+						 GError **error);
+
+static gboolean xfpm_engine_dbus_get_low_battery(XfpmEngine *engine,
+						 gboolean *OUT_low_battery,
+						 GError **error);
+
 #include "org.freedesktop.PowerManagement-server.h"
 
 static void
@@ -556,3 +564,21 @@
 		  
     return TRUE;
 }
+
+static gboolean xfpm_engine_dbus_get_on_battery (XfpmEngine *engine,
+						 gboolean *OUT_on_battery,
+						 GError **error)
+{
+    *OUT_on_battery = engine->priv->on_battery;
+    
+    return TRUE;
+}
+
+static gboolean xfpm_engine_dbus_get_low_battery(XfpmEngine *engine,
+						 gboolean *OUT_low_battery,
+						 GError **error)
+{
+    *OUT_low_battery = xfpm_supply_on_low_battery (engine->priv->supply);
+    
+    return TRUE;
+}

Modified: xfce4-power-manager/trunk/src/xfpm-supply.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-17 18:55:03 UTC (rev 6932)
@@ -64,9 +64,7 @@
     gboolean       adapter_present;
     
     XfpmShutdownRequest critical_action;
-    XfpmShowIcon   show_icon;
     
-    guint8         critical_level;
     guint8         power_management;
 };
 
@@ -78,8 +76,6 @@
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-static FILE *file = NULL;
-
 G_DEFINE_TYPE(XfpmSupply, xfpm_supply, G_TYPE_OBJECT)
 
 static void
@@ -221,7 +217,6 @@
 	else 
 	    low_power = FALSE;
     }
-    
     return low_power;
 }
 
@@ -304,7 +299,6 @@
     }
     
     xfpm_notify_present_notification (supply->priv->notify, n, FALSE);
-    
 }
 
 static void
@@ -524,14 +518,9 @@
     udi = hal_device_get_udi (HAL_DEVICE(device));
 
     TRACE("New battery found %s", udi);
-    fprintf(file, "New battery found with udi %s", udi);
 
     XfpmBattery *battery = xfpm_battery_new (device);
     
-    xfpm_battery_set_show_icon (battery, supply->priv->show_icon);
-    
-    xfpm_battery_set_critical_level (battery, supply->priv->critical_level);
-    
     g_hash_table_insert (supply->priv->hash, g_strdup(udi), battery);
     
     g_signal_connect (G_OBJECT(battery), "battery-state-changed",
@@ -556,7 +545,6 @@
 	if (!g_hash_table_remove(supply->priv->hash, udi))
 		g_critical ("Unable to removed battery object from hash");
     }
-    
 }
 
 static void
@@ -571,62 +559,12 @@
     xfpm_supply_remove_battery (supply, device);
 }
 
-static void
-xfpm_supply_set_battery_show_tray_icon (XfpmSupply *supply)
-{
-    GList *list = NULL;
-    
-    list = g_hash_table_get_values (supply->priv->hash);
-    
-    if ( !list )
-    	return;
-	
-    int i;
-    for ( i = 0; i<g_list_length(list); i++)
-    {
-	XfpmBattery *battery = NULL;
-	battery = (XfpmBattery *) g_list_nth_data(list, i);
-	
-	if ( battery )
-	{
-	    xfpm_battery_set_show_icon (battery, supply->priv->show_icon);
-	}
-    }
-    g_list_free (list);
-}
-
-static void
-xfpm_supply_set_critical_power_level (XfpmSupply *supply)
-{
-    GList *list = NULL;
-    
-    list = g_hash_table_get_values (supply->priv->hash);
-    
-    if ( !list )
-    	return;
-	
-    int i;
-    for ( i = 0; i<g_list_length(list); i++)
-    {
-	XfpmBattery *battery = NULL;
-	battery = (XfpmBattery *) g_list_nth_data(list, i);
-	
-	if ( battery )
-	{
-	    xfpm_battery_set_critical_level (battery, supply->priv->critical_level);
-	}
-    }
-    g_list_free (list);
-}
-
 static gboolean
 xfpm_supply_monitor_start (XfpmSupply *supply)
 {
     //FIXME: Check the system formfactor
     
     GPtrArray *array = hal_power_get_batteries (supply->priv->power);
-    file = fopen("/home/ali/tmp", "a");
-    fprintf(file, "array len=%d", array->len);
     
     int i = 0;
     for ( i = 0; i<array->len; i++ )
@@ -659,25 +597,7 @@
 	else
 	    supply->priv->critical_action = val;
     }
-    else if ( xfpm_strequal (property, SHOW_TRAY_ICON_CFG) )
-    {
-	guint val = g_value_get_uint (value);
-	supply->priv->show_icon = val;
-	xfpm_supply_set_battery_show_tray_icon (supply);
-    }
-    else if ( xfpm_strequal( property, CRITICAL_POWER_LEVEL) )
-    {
-	guint val = g_value_get_uint (value);
-	if ( val > 20 )
-	{
-	    g_warning ("Value %d for property %s is out of range \n", val, CRITICAL_POWER_LEVEL);
-	    supply->priv->critical_level = 10;
-	}
-	else 
-	    supply->priv->critical_level = val;
-	    
-	xfpm_supply_set_critical_power_level (supply);
-    }
+    
 }
 
 static void
@@ -700,14 +620,6 @@
     
     g_free (str);
     
-    supply->priv->show_icon =
-    	xfconf_channel_get_uint (supply->priv->conf->channel, SHOW_TRAY_ICON_CFG, 0);
-	
-    if ( supply->priv->show_icon < 0 || supply->priv->show_icon > 3 )
-    {
-	g_warning ("Invalid value %d for property %s, using default\n", supply->priv->show_icon, SHOW_TRAY_ICON_CFG);
-	xfconf_channel_set_uint (supply->priv->conf->channel, CRITICAL_BATT_ACTION_CFG, 0);
-    }
 }
 
 static void
@@ -752,3 +664,10 @@
 		     G_CALLBACK(xfpm_supply_battery_removed_cb), supply);
     
 }
+
+gboolean xfpm_supply_on_low_battery (XfpmSupply *supply)
+{
+    g_return_val_if_fail (XFPM_IS_SUPPLY(supply), FALSE);
+    
+    return xfpm_supply_on_low_power(supply);
+}

Modified: xfce4-power-manager/trunk/src/xfpm-supply.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.h	2009-03-17 18:15:57 UTC (rev 6931)
+++ xfce4-power-manager/trunk/src/xfpm-supply.h	2009-03-17 18:55:03 UTC (rev 6932)
@@ -53,7 +53,11 @@
 GType   	         xfpm_supply_get_type       (void) G_GNUC_CONST;
 
 XfpmSupply     	        *xfpm_supply_new            (guint8 power_management_info);
+
 void                     xfpm_supply_monitor        (XfpmSupply *supply);
+
+gboolean                 xfpm_supply_on_low_battery (XfpmSupply *supply);
+
 G_END_DECLS
 
 #endif /* __XFPM_SUPPLY_H */




More information about the Goodies-commits mailing list