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

Ali Abdallah aliov at xfce.org
Mon Mar 16 19:07:00 CET 2009


Author: aliov
Date: 2009-03-16 18:07:00 +0000 (Mon, 16 Mar 2009)
New Revision: 6921

Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/libxfpm/hal-power.c
   xfce4-power-manager/trunk/libxfpm/hal-power.h
   xfce4-power-manager/trunk/src/xfpm-adapter.c
   xfce4-power-manager/trunk/src/xfpm-adapter.h
   xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
   xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
   xfce4-power-manager/trunk/src/xfpm-cpu.c
   xfce4-power-manager/trunk/src/xfpm-cpu.h
   xfce4-power-manager/trunk/src/xfpm-dpms.c
   xfce4-power-manager/trunk/src/xfpm-dpms.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:
Add a weak reference on the adapter object+remove unused signals

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-16 18:07:00 UTC (rev 6921)
@@ -1,4 +1,7 @@
 
+2009-03-16 19:06 Ali aliov at xfce.org 
+	 * : Add a weak reference on the adapter object+remove unused signals
+
 2009-03-16 17:36 Ali aliov at xfce.org 
 	 * : Fix wrong alarm settings
 

Modified: xfce4-power-manager/trunk/libxfpm/hal-power.c
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-power.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/libxfpm/hal-power.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -44,17 +44,12 @@
 {
     GHashTable *hash  	;
     HalManager *manager ;
-    
-    HalDevice  *adapter ;
-    gboolean    adapter_found;
 };
 
 enum
 {
     BATTERY_ADDED,
     BATTERY_REMOVED,
-    ADAPTER_ADDED,
-    ADAPTER_REMOVED,
     LAST_SIGNAL
 };
 
@@ -100,14 +95,6 @@
     	g_warning ("Unable to removed object from hash\n");
 }
 
-static void
-hal_power_remove_adapter (HalPower *power )
-{
-    g_signal_emit (G_OBJECT(power), signals[ADAPTER_REMOVED], 0);
-    g_object_unref (power->priv->adapter);
-    power->priv->adapter_found = FALSE;
-}
-
 static HalBattery *
 hal_power_get_battery_from_hash (HalPower *power, const gchar *udi)
 {
@@ -129,15 +116,7 @@
 	HalBattery *battery  = hal_power_add_battery (power, udi);
         g_signal_emit (G_OBJECT(power), signals[BATTERY_ADDED], 0, battery);
     }
-    else if ( hal_device_has_capability (device, "ac_adapter") )
-    {
-	if ( !power->priv->adapter_found )
-	{
-	    power->priv->adapter = hal_device_new ();
-	    hal_device_set_udi (power->priv->adapter, udi);
-	    g_signal_emit (G_OBJECT(power), signals[ADAPTER_ADDED], 0, power->priv->adapter);
-	}
-    }
+
     g_object_unref (device);
 }
 
@@ -150,17 +129,6 @@
     {
 	hal_power_remove_battery (power, battery , udi);
     }
-    else if ( power->priv->adapter_found )
-    {
-	const gchar *adapter_udi;
-	adapter_udi = hal_device_get_udi (power->priv->adapter );
-	
-	if (adapter_udi)
-	{
-	    if ( xfpm_strequal (udi, adapter_udi ) )
-		hal_power_remove_adapter (power);
-	}
-    }
 }
 
 static void
@@ -186,24 +154,6 @@
 		     g_cclosure_marshal_VOID__POINTER,
 		     G_TYPE_NONE, 1, G_TYPE_POINTER);
 		     
-    signals[ADAPTER_ADDED] =
-    	g_signal_new("adapter-added",
-		     HAL_TYPE_POWER,
-		     G_SIGNAL_RUN_LAST,
-		     G_STRUCT_OFFSET(HalPowerClass, adapter_added),
-		     NULL, NULL,
-		     g_cclosure_marshal_VOID__POINTER,
-		     G_TYPE_NONE, 1, G_TYPE_POINTER);
-		     
-    signals[ADAPTER_REMOVED] =
-    	g_signal_new("adapter-removed",
-		     HAL_TYPE_POWER,
-		     G_SIGNAL_RUN_LAST,
-		     G_STRUCT_OFFSET(HalPowerClass, adapter_removed),
-		     NULL, NULL,
-		     g_cclosure_marshal_VOID__VOID,
-		     G_TYPE_NONE, 0, G_TYPE_NONE);
-		     
     object_class->finalize = hal_power_finalize;
 
     g_type_class_add_private(klass,sizeof(HalPowerPrivate));
@@ -230,46 +180,20 @@
 		
     	hal_power_add_battery (power, batteries[i]);
     }
-    
     hal_manager_free_string_array (batteries);
-    
-out:
 
+out:
     g_object_unref (device);
     
 }
 
-
 static void
-hal_power_get_adapter_internal (HalPower *power)
-{
-    gchar **adapter = NULL;
-    
-    adapter = hal_manager_find_device_by_capability (power->priv->manager, "ac_adapter");
-    
-    if ( !adapter ) 
-    	goto out;
-
-    power->priv->adapter = hal_device_new ();
-    hal_device_set_udi (power->priv->adapter, adapter[0]);
-    hal_device_watch (power->priv->adapter);
-    power->priv->adapter_found = TRUE;
-    
-    hal_manager_free_string_array (adapter);
-out:
-    	;
-}
-
-
-static void
 hal_power_init(HalPower *power)
 {
     power->priv = HAL_POWER_GET_PRIVATE(power);
     
     power->priv->manager = hal_manager_new ();
     power->priv->hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-    power->priv->adapter_found = FALSE;
-    power->priv->adapter = NULL;
     
     g_signal_connect (power->priv->manager, "device-added", 
 		      G_CALLBACK(hal_power_device_added_cb), power);
@@ -278,7 +202,6 @@
 		      G_CALLBACK(hal_power_device_removed_cb), power);
    
     
-    hal_power_get_adapter_internal (power);
     hal_power_get_batteries_internal (power);
 }
 
@@ -295,9 +218,6 @@
     if ( power->priv->manager )
     	g_object_unref(power->priv->manager);
 	
-    if ( power->priv->adapter )
-	g_object_unref (power->priv->adapter);
-    
     G_OBJECT_CLASS(hal_power_parent_class)->finalize(object);
 }
 
@@ -305,7 +225,7 @@
 hal_power_new(void)
 {
     HalPower *power = NULL;
-    power = g_object_new(HAL_TYPE_POWER,NULL);
+    power = g_object_new (HAL_TYPE_POWER,NULL);
     return power;
 }
 
@@ -340,19 +260,3 @@
 out:
    return array;
 }
-
-gboolean hal_power_adapter_found (HalPower *power)
-{
-    g_return_val_if_fail (HAL_IS_POWER (power), FALSE);
-    
-    return power->priv->adapter_found;
-}
-
-const HalDevice *hal_power_get_adapter (HalPower *power)
-{
-    g_return_val_if_fail (HAL_IS_POWER (power), NULL);
-    g_return_val_if_fail (power->priv->adapter_found == TRUE, NULL);
-    
-    return (const HalDevice *)power->priv->adapter;
-    
-}

Modified: xfce4-power-manager/trunk/libxfpm/hal-power.h
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-power.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/libxfpm/hal-power.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -51,20 +51,12 @@
     void        	(*battery_removed)        (HalPower *power,
 						   const HalBattery *battery);
 					   
-    void        	(*adapter_added)	  (HalPower *power,
-						   const HalDevice *device);
-					   
-    void        	(*adapter_removed)	  (HalPower *power);
-    
 } HalPowerClass;
 
 GType        		hal_power_get_type        (void) G_GNUC_CONST;
 HalPower       	       *hal_power_new             (void);
 
 GPtrArray      	       *hal_power_get_batteries   (HalPower *power);
-gboolean                hal_power_adapter_found   (HalPower *power);
-const HalDevice        *hal_power_get_adapter     (HalPower *power);
-
 G_END_DECLS
 
 #endif /* __HAL_POWER_H */

Modified: xfce4-power-manager/trunk/src/xfpm-adapter.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-adapter.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-adapter.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -40,10 +40,11 @@
 
 #include <libxfce4util/libxfce4util.h>
 
+#include "libxfpm/hal-manager.h"
+#include "libxfpm/hal-device.h"
 #include "libxfpm/xfpm-string.h"
 
 #include "xfpm-adapter.h"
-#include "xfpm-tray-icon.h"
 
 /* Init */
 static void xfpm_adapter_class_init (XfpmAdapterClass *klass);
@@ -55,8 +56,7 @@
 
 struct XfpmAdapterPrivate
 {
-    XfpmTrayIcon *icon;
-    HalDevice    *device;
+    HalDevice 	 *device;
     gboolean      present;
 };
 
@@ -68,9 +68,24 @@
 
 static guint signals [LAST_SIGNAL] = { 0 };
 
+static gpointer xfpm_adapter_object = NULL;
+
 G_DEFINE_TYPE(XfpmAdapter, xfpm_adapter, G_TYPE_OBJECT)
 
 static void
+xfpm_adapter_device_changed_cb (HalDevice *device, const gchar *udi, const gchar *key,
+			        gboolean is_added, gboolean is_removed, XfpmAdapter *adapter)
+{
+    //FIXME React correctly is device is removed
+    if ( xfpm_strequal(key, "ac_adapter.present") )
+    {
+	adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
+	g_signal_emit (G_OBJECT(adapter), signals[ADAPTER_CHANGED], 0, adapter->priv->present);
+    }
+    
+}
+
+static void
 xfpm_adapter_class_init(XfpmAdapterClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -86,20 +101,47 @@
 		      
     object_class->finalize = xfpm_adapter_finalize;
 
-
     g_type_class_add_private (klass, sizeof(XfpmAdapterPrivate));
 }
 
 static void
 xfpm_adapter_init(XfpmAdapter *adapter)
 {
+    HalManager *manager;
+    gchar **udi = NULL;
+    gchar *form_factor = NULL;
+    
     adapter->priv = XFPM_ADAPTER_GET_PRIVATE(adapter);
     
-    adapter->priv->device = NULL;
+    adapter->priv->device = hal_device_new ();
+    hal_device_set_udi (adapter->priv->device, "/org/freedesktop/Hal/devices/computer");
     
-    adapter->priv->icon = xfpm_tray_icon_new ();
-    xfpm_tray_icon_set_visible (adapter->priv->icon, FALSE);
-    xfpm_tray_icon_set_icon (adapter->priv->icon, "gpm-ac-adapter");
+    form_factor = hal_device_get_property_string (adapter->priv->device, "system.formfactor");
+        
+    TRACE("System formfactor=%s\n", form_factor); //FIXME Use this value
+    g_free(form_factor);
+        
+    manager = hal_manager_new ();
+    
+    udi = hal_manager_find_device_by_capability (manager, "ac_adapter");
+    
+    if (!udi )//FIXME Adapter should be present on laptops
+	goto out;
+	
+    TRACE("Found AC Adapter with udi=%s\n", udi[0]);
+    
+    hal_device_set_udi (adapter->priv->device, udi[0]);
+    
+    hal_manager_free_string_array (udi);
+    
+    adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
+    g_signal_connect (adapter->priv->device, "device-changed",
+		      G_CALLBACK(xfpm_adapter_device_changed_cb), adapter);
+		      
+    hal_device_watch (adapter->priv->device);
+out:
+    g_object_unref (manager);
+    
 }
 
 static void
@@ -109,72 +151,30 @@
 
     adapter = XFPM_ADAPTER(object);
     
-    if ( adapter->priv->icon )
-    	g_object_unref (adapter->priv->icon);
-	
-    if ( adapter->priv->device)
-    	g_object_unref (adapter->priv->device);
-
+    if ( adapter->priv->device )
+	g_object_unref (adapter->priv->device);
+    
     G_OBJECT_CLASS(xfpm_adapter_parent_class)->finalize(object);
 }
 
-static void
-xfpm_adapter_changed (XfpmAdapter *adapter)
+XfpmAdapter *
+xfpm_adapter_new (void)
 {
-    adapter->priv->present = hal_device_get_property_bool (adapter->priv->device, "ac_adapter.present");
-    TRACE("Adapter changed is_present =%s", xfpm_bool_to_string(adapter->priv->present));
-    g_signal_emit (G_OBJECT(adapter), signals[ADAPTER_CHANGED], 0, adapter->priv->present);
-}
-
-static void
-xfpm_adapter_device_changed_cb (HalDevice *device,
-				const gchar *udi,
-				const gchar *key, 
-				gboolean is_removed,
-				gboolean is_added,
-				XfpmAdapter *adapter)
-{
-    if ( xfpm_strequal (key, "ac_adapter.present") )
+    if ( xfpm_adapter_object != NULL )
     {
-	xfpm_adapter_changed (adapter);
+	g_object_ref (xfpm_adapter_object);
     }
+    else
+    {
+	xfpm_adapter_object = g_object_new (XFPM_TYPE_ADAPTER, NULL);
+	g_object_add_weak_pointer (xfpm_adapter_object, &xfpm_adapter_object);
+    }
+    return XFPM_ADAPTER (xfpm_adapter_object);
 }
 
-XfpmAdapter *
-xfpm_adapter_new (const HalDevice *device)
+gboolean xfpm_adapter_get_present (XfpmAdapter *adapter)
 {
-    XfpmAdapter *adapter = NULL;
-    adapter = g_object_new (XFPM_TYPE_ADAPTER, NULL);
+    g_return_val_if_fail (XFPM_IS_ADAPTER(adapter), FALSE);
     
-    adapter->priv->device = g_object_ref (G_OBJECT(device));
-    
-    g_signal_connect (adapter->priv->device, "device-changed", 
-		      G_CALLBACK (xfpm_adapter_device_changed_cb),
-		      adapter);
-    
-    xfpm_adapter_changed (adapter);
-    
-    return adapter;
-}
-
-gboolean          xfpm_adapter_get_presence    (XfpmAdapter *adapter)
-{
-    g_return_val_if_fail (XFPM_IS_ADAPTER (adapter), FALSE);
-    
     return adapter->priv->present;
 }
-
-void xfpm_adapter_set_visible (XfpmAdapter *adapter, gboolean visible)
-{
-    g_return_if_fail ( XFPM_IS_ADAPTER (adapter));
-    
-    xfpm_tray_icon_set_visible(adapter->priv->icon, visible);
-    
-}
-
-void xfpm_adapter_set_tooltip (XfpmAdapter *adapter, const gchar *text)
-{
-     g_return_if_fail ( XFPM_IS_ADAPTER (adapter));
-    
-    xfpm_tray_icon_set_tooltip (adapter->priv->icon, text);
-}

Modified: xfce4-power-manager/trunk/src/xfpm-adapter.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-adapter.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-adapter.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -23,8 +23,6 @@
 
 #include <glib-object.h>
 
-#include "libxfpm/hal-device.h"
-
 G_BEGIN_DECLS
 
 #define XFPM_TYPE_ADAPTER        (xfpm_adapter_get_type () )
@@ -44,21 +42,15 @@
 {
     GObjectClass 	  parent_class;
     
-    void                 (*adapter_changed)    (XfpmAdapter *adapter,
-    						gboolean present);
+    void                 (*adapter_changed)    	      (XfpmAdapter *adapter,
+    						       gboolean present);
     
 } XfpmAdapterClass;
 
-GType        	  xfpm_adapter_get_type        (void) G_GNUC_CONST;
-XfpmAdapter      *xfpm_adapter_new             (const HalDevice *device);
+GType        	 	 xfpm_adapter_get_type        (void) G_GNUC_CONST;
+XfpmAdapter      	*xfpm_adapter_new             (void);
 
-gboolean          xfpm_adapter_get_presence    (XfpmAdapter *adapter);
-
-void              xfpm_adapter_set_visible     (XfpmAdapter *adapter,
-						gboolean visible);
-						
-void              xfpm_adapter_set_tooltip     (XfpmAdapter *adapter,
-						const gchar *text);
+gboolean 	  	 xfpm_adapter_get_present     (XfpmAdapter *adapter);
 G_END_DECLS
 
 #endif /* __XFPM_ADAPTER_H */

Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -45,12 +45,13 @@
 #include "libxfpm/hal-device.h"
 #include "libxfpm/xfpm-string.h"
 
+#include "xfpm-brightness-hal.h"
+#include "xfpm-button-xf86.h"
+#include "xfpm-enum-glib.h"
 #include "xfpm-xfconf.h"
 #include "xfpm-idle.h"
 #include "xfpm-config.h"
-#include "xfpm-brightness-hal.h"
-#include "xfpm-button-xf86.h"
-#include "xfpm-enum-glib.h"
+#include "xfpm-adapter.h"
 
 /* Init */
 static void xfpm_brightness_hal_class_init (XfpmBrightnessHalClass *klass);
@@ -67,6 +68,7 @@
     XfpmXfconf     *conf;
     XfpmIdle       *idle;
     XfpmButtonXf86 *button;
+    XfpmAdapter    *adapter;
     
     gint            max_level;
     gint            hw_level;
@@ -129,6 +131,9 @@
     if ( brg->priv->conf )
 	g_object_unref (brg->priv->conf);
 	
+    if (brg->priv->adapter)
+	g_object_unref (brg->priv->adapter);
+	
     G_OBJECT_CLASS(xfpm_brightness_hal_parent_class)->finalize(object);
 }
 
@@ -336,6 +341,13 @@
 }
 
 static void
+xfpm_brightness_hal_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmBrightnessHal *brg)
+{
+    brg->priv->on_battery = !present;
+
+}
+
+static void
 xfpm_brightness_hal_load_config (XfpmBrightnessHal *brg)
 {
     brg->priv->on_ac_timeout =
@@ -419,7 +431,12 @@
 	brg->priv->idle     = xfpm_idle_new ();
 	brg->priv->conf     = xfpm_xfconf_new ();
 	brg->priv->button   = xfpm_button_xf86_new ();
+	brg->priv->adapter  = xfpm_adapter_new ();
+	brg->priv->on_battery = !xfpm_adapter_get_present (brg->priv->adapter);
 	
+	g_signal_connect (brg->priv->adapter, "adapter-changed",
+			  G_CALLBACK(xfpm_brightness_hal_adapter_changed_cb), brg);
+	
 	g_signal_connect (brg->priv->button, "xf86-button-pressed",	
 			  G_CALLBACK(xfpm_brightness_hal_button_pressed_cb), brg);
 	
@@ -439,12 +456,3 @@
     
     return brg;
 }
-
-void
-xfpm_brightness_hal_set_on_battery (XfpmBrightnessHal *brg, gboolean on_battery)
-{
-    g_return_if_fail (XFPM_IS_BRIGHTNESS_HAL(brg));
-    
-    brg->priv->on_battery = on_battery;
-}
-

Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -46,9 +46,6 @@
 
 GType        				xfpm_brightness_hal_get_type        (void) G_GNUC_CONST;
 XfpmBrightnessHal      		       *xfpm_brightness_hal_new             (void);
-
-void                                    xfpm_brightness_hal_set_on_battery  (XfpmBrightnessHal *brg,
-									     gboolean on_battery);
 G_END_DECLS
 
 #endif /* __XFPM_BRIGHTNESS_HAL_H */

Modified: xfce4-power-manager/trunk/src/xfpm-cpu.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -42,6 +42,7 @@
 #include "libxfpm/xfpm-string.h"
 
 #include "xfpm-cpu.h"
+#include "xfpm-adapter.h"
 #include "xfpm-xfconf.h"
 #include "xfpm-config.h"
 #include "xfpm-enum.h"
@@ -56,6 +57,7 @@
 
 struct XfpmCpuPrivate
 {
+    XfpmAdapter   *adapter;
     XfpmXfconf    *conf;
     HalIface      *iface;
     
@@ -63,7 +65,6 @@
     gboolean 	   power_save;
     
     guint8         cpu_governors;
-    
 };
 
 G_DEFINE_TYPE(XfpmCpu, xfpm_cpu, G_TYPE_OBJECT)
@@ -231,6 +232,13 @@
 }
 
 static void
+xfpm_cpu_adapter_changed_cb (XfpmAdapter *adapter, gboolean is_present, XfpmCpu *cpu)
+{
+    cpu->priv->on_battery = !is_present;
+    xfpm_cpu_update_governor (cpu);
+}
+
+static void
 xfpm_cpu_class_init(XfpmCpuClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -247,6 +255,7 @@
     
     cpu->priv->cpu_governors = 0;
     cpu->priv->iface         = hal_iface_new ();
+    cpu->priv->adapter       = xfpm_adapter_new ();
     
     cpu->priv->conf = xfpm_xfconf_new ();
     xfpm_cpu_load_configuration (cpu);
@@ -254,6 +263,11 @@
     g_signal_connect (cpu->priv->conf->channel, "property-changed",
 		      G_CALLBACK(xfpm_cpu_property_changed_cb), cpu);
 		      
+    g_signal_connect (cpu->priv->adapter, "adapter-changed",
+		      G_CALLBACK(xfpm_cpu_adapter_changed_cb), cpu);
+    
+    cpu->priv->on_battery = !xfpm_adapter_get_present (cpu->priv->adapter);
+		
     xfpm_cpu_check (cpu);
 }
 
@@ -269,6 +283,9 @@
 	
     if ( cpu->priv->iface )
 	g_object_unref (cpu->priv->iface);
+	
+    if ( cpu->priv->adapter)
+	g_object_unref (cpu->priv->adapter);
 
     G_OBJECT_CLASS(xfpm_cpu_parent_class)->finalize(object);
 }
@@ -280,12 +297,3 @@
     cpu = g_object_new (XFPM_TYPE_CPU, NULL);
     return cpu;
 }
-
-void xfpm_cpu_set_on_battery (XfpmCpu *cpu, gboolean on_battery)
-{
-    g_return_if_fail (XFPM_IS_CPU(cpu));
-    
-    cpu->priv->on_battery = on_battery;
-    
-    xfpm_cpu_update_governor (cpu);
-}

Modified: xfce4-power-manager/trunk/src/xfpm-cpu.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-cpu.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-cpu.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -47,9 +47,6 @@
 GType          xfpm_cpu_get_type        (void) G_GNUC_CONST;
 XfpmCpu       *xfpm_cpu_new             (void);
 
-void           xfpm_cpu_set_on_battery  (XfpmCpu *cpu,
-					 gboolean on_battery);
-
 G_END_DECLS
 
 #endif /* __XFPM_CPU_H */

Modified: xfce4-power-manager/trunk/src/xfpm-dpms.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dpms.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-dpms.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -49,6 +49,7 @@
 #include "libxfpm/xfpm-string.h"
 
 #include "xfpm-dpms.h"
+#include "xfpm-adapter.h"
 #include "xfpm-xfconf.h"
 #include "xfpm-config.h"
 
@@ -67,6 +68,7 @@
 struct XfpmDpmsPrivate
 {
     XfpmXfconf    *conf;
+    XfpmAdapter   *adapter;
     
     gboolean       dpms_capable;
     gboolean       dpms_enabled;
@@ -83,39 +85,6 @@
 G_DEFINE_TYPE(XfpmDpms, xfpm_dpms, G_TYPE_OBJECT)
 
 static void
-xfpm_dpms_class_init(XfpmDpmsClass *klass)
-{
-    GObjectClass *object_class = G_OBJECT_CLASS(klass);
-    
-    object_class->finalize = xfpm_dpms_finalize;
-
-    g_type_class_add_private(klass,sizeof(XfpmDpmsPrivate));
-}
-
-static void
-xfpm_dpms_init(XfpmDpms *dpms)
-{
-    dpms->priv = XFPM_DPMS_GET_PRIVATE(dpms);
-    
-    dpms->priv->dpms_capable = DPMSCapable (GDK_DISPLAY());
-    
-    dpms->priv->conf = NULL;
-}
-
-static void
-xfpm_dpms_finalize(GObject *object)
-{
-    XfpmDpms *dpms;
-
-    dpms = XFPM_DPMS (object);
-    
-    if ( dpms->priv->conf )
-	g_object_unref (dpms->priv->conf);
-
-    G_OBJECT_CLASS(xfpm_dpms_parent_class)->finalize(object);
-}
-
-static void
 xfpm_dpms_set_timeouts (XfpmDpms *dpms, guint16 standby, guint16 suspend, guint off)
 {
     CARD16 x_standby = 0 ,x_suspend = 0,x_off = 0;
@@ -304,6 +273,52 @@
     g_free (str);
 }
 
+static void
+xfpm_dpms_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmDpms *dpms)
+{
+    dpms->priv->on_battery = !present;
+}
+
+static void
+xfpm_dpms_class_init(XfpmDpmsClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+    
+    object_class->finalize = xfpm_dpms_finalize;
+
+    g_type_class_add_private(klass,sizeof(XfpmDpmsPrivate));
+}
+
+static void
+xfpm_dpms_init(XfpmDpms *dpms)
+{
+    dpms->priv = XFPM_DPMS_GET_PRIVATE(dpms);
+    
+    dpms->priv->dpms_capable = DPMSCapable (GDK_DISPLAY());
+    dpms->priv->adapter = xfpm_adapter_new ();
+    
+    g_signal_connect (dpms->priv->adapter, "adapter-changed",
+		      G_CALLBACK(xfpm_dpms_adapter_changed_cb), dpms);
+		      
+    dpms->priv->conf = NULL;
+}
+
+static void
+xfpm_dpms_finalize(GObject *object)
+{
+    XfpmDpms *dpms;
+
+    dpms = XFPM_DPMS (object);
+    
+    if ( dpms->priv->conf )
+	g_object_unref (dpms->priv->conf);
+	
+    if ( dpms->priv->adapter )
+	g_object_unref (dpms->priv->adapter);
+
+    G_OBJECT_CLASS(xfpm_dpms_parent_class)->finalize(object);
+}
+
 XfpmDpms *
 xfpm_dpms_new (void)
 {

Modified: xfce4-power-manager/trunk/src/xfpm-dpms.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-dpms.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-dpms.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -55,8 +55,6 @@
 GType           xfpm_dpms_get_type        (void) G_GNUC_CONST;
 XfpmDpms       *xfpm_dpms_new             (void);
 
-void            xfpm_dpms_set_on_battery  (XfpmDpms *dpms,
-					   gboolean on_battery);
 gboolean        xfpm_dpms_capable         (XfpmDpms *dpms);
 
 

Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -51,6 +51,7 @@
 
 #include "xfpm-engine.h"
 #include "xfpm-supply.h"
+#include "xfpm-adapter.h"
 #include "xfpm-xfconf.h"
 #include "xfpm-cpu.h"
 #include "xfpm-network-manager.h"
@@ -77,6 +78,7 @@
     XfpmButtonXf86    *xf86_button;
     XfpmLidHal        *lid;
     XfpmBrightnessHal *brg_hal;
+    XfpmAdapter       *adapter;
     HalIface          *iface;
 #ifdef HAVE_DPMS
     XfpmDpms          *dpms;
@@ -198,18 +200,6 @@
 }
 
 static void
-xfpm_engine_on_battery_cb (XfpmSupply *supply, gboolean on_battery, XfpmEngine *engine)
-{
-    TRACE("%s\n", xfpm_bool_to_string (on_battery)); 
-    engine->priv->on_battery = on_battery;
-#ifdef HAVE_DPMS
-    xfpm_dpms_set_on_battery (engine->priv->dpms, on_battery);
-#endif
-    xfpm_cpu_set_on_battery (engine->priv->cpu, on_battery);
-    xfpm_brightness_hal_set_on_battery (engine->priv->brg_hal, on_battery);
-}
-
-static void
 xfpm_engine_xf86_button_pressed_cb (XfpmButtonXf86 *button, XfpmXF86Button type, XfpmEngine *engine)
 {
     TRACE("Received button press event type %d", type);
@@ -229,7 +219,6 @@
 	    TRACE("Accepting shutdown request");
 	    xfpm_engine_shutdown_request (engine, engine->priv->sleep_button);
 	}
-	    
     }
     g_timer_reset (engine->priv->button_timer);
 }
@@ -266,6 +255,7 @@
     xfpm_engine_shutdown_request (engine, engine->priv->on_battery ? 
 					  engine->priv->lid_button_battery :
 					  engine->priv->lid_button_ac);
+
     g_timer_reset (engine->priv->button_timer);
 }
 
@@ -330,11 +320,7 @@
     g_signal_connect (G_OBJECT(engine->priv->supply), "shutdown-request",
 		      G_CALLBACK (xfpm_engine_shutdown_request_battery_cb), engine);
 
-    g_signal_connect (G_OBJECT(engine->priv->supply), "on-battery",
-		      G_CALLBACK (xfpm_engine_on_battery_cb), engine);
-		      
     xfpm_supply_monitor (engine->priv->supply);
-    
 }
 
 static void
@@ -433,6 +419,12 @@
     }
 }
 
+static void
+xfpm_engine_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmEngine *engine)
+{
+    engine->priv->on_battery = !present;
+}
+
 XfpmEngine *
 xfpm_engine_new(void)
 {
@@ -446,8 +438,14 @@
        	g_error_free (error);
     }	
     
-    engine->priv->conf   = xfpm_xfconf_new ();
+    engine->priv->conf    = xfpm_xfconf_new ();
+    engine->priv->adapter = xfpm_adapter_new ();
     
+    engine->priv->on_battery = ! xfpm_adapter_get_present (engine->priv->adapter);
+    
+    g_signal_connect (engine->priv->adapter, "adapter-changed",
+		      G_CALLBACK(xfpm_engine_adapter_changed_cb), engine);
+    
     g_signal_connect (engine->priv->conf->channel, "property-changed",
 		      G_CALLBACK(xfpm_engine_property_changed_cb), engine);
     

Modified: xfce4-power-manager/trunk/src/xfpm-supply.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-16 18:07:00 UTC (rev 6921)
@@ -36,8 +36,8 @@
 #include "libxfpm/xfpm-common.h"
 
 #include "xfpm-supply.h"
-#include "xfpm-battery.h"
 #include "xfpm-adapter.h"
+#include "xfpm-battery.h"
 #include "xfpm-notify.h"
 #include "xfpm-enum.h"
 #include "xfpm-enum-types.h"
@@ -61,12 +61,11 @@
     HalPower      *power;
     GHashTable    *hash;
     
+    gboolean       adapter_present;
+    
     XfpmShutdownRequest critical_action;
     XfpmShowIcon   show_icon;
     
-    gboolean 	   adapter_found;
-    gboolean       adapter_present;
-
     guint8         critical_level;
     guint8         power_management;
 };
@@ -74,9 +73,6 @@
 enum
 {
     SHUTDOWN_REQUEST,
-    BLOCK_SHUTDOWN,
-    ON_BATTERY,
-    ON_LOW_BATTERY,
     LAST_SIGNAL
 };
 
@@ -98,33 +94,6 @@
                       g_cclosure_marshal_VOID__ENUM,
                       G_TYPE_NONE, 1, XFPM_TYPE_SHUTDOWN_REQUEST);
 
-    signals[BLOCK_SHUTDOWN] = 
-    	g_signal_new("block-shutdown",
-                      XFPM_TYPE_SUPPLY,
-                      G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET(XfpmSupplyClass, block_shutdown),
-                      NULL, NULL,
-                      g_cclosure_marshal_VOID__BOOLEAN,
-                      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-    
-    signals[ON_BATTERY] = 
-    	g_signal_new("on-battery",
-                      XFPM_TYPE_SUPPLY,
-                      G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET(XfpmSupplyClass, on_battery),
-                      NULL, NULL,
-                      g_cclosure_marshal_VOID__BOOLEAN,
-                      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-		      
-    signals[ON_LOW_BATTERY] = 
-    	g_signal_new("on-low-battery",
-                      XFPM_TYPE_SUPPLY,
-                      G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET(XfpmSupplyClass, on_low_battery),
-                      NULL, NULL,
-                      g_cclosure_marshal_VOID__VOID,
-                      G_TYPE_NONE, 0, G_TYPE_NONE);
-		      
     object_class->finalize = xfpm_supply_finalize;
 
     g_type_class_add_private(klass,sizeof(XfpmSupplyPrivate));
@@ -139,9 +108,6 @@
     supply->priv->hash    = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
     supply->priv->notify  = xfpm_notify_new ();
     supply->priv->conf    = xfpm_xfconf_new ();
-    
-    supply->priv->adapter = NULL;
-    supply->priv->adapter_found = FALSE;
 }
 
 static void
@@ -161,6 +127,9 @@
 	
     if ( supply->priv->conf )
     	g_object_unref (supply->priv->conf);
+	
+    if ( supply->priv->adapter )
+	g_object_unref (supply->priv->adapter);
     
     G_OBJECT_CLASS(xfpm_supply_parent_class)->finalize(object);
 }
@@ -375,8 +344,7 @@
     }
     
     const gchar *message 
-    	= xfpm_supply_get_message_from_battery_state (state, supply->priv->adapter_found ? 
-							     supply->priv->adapter_present : TRUE); // FIXME, TRUE makes sense here ?
+    	= xfpm_supply_get_message_from_battery_state (state, supply->priv->adapter_present);
 
     if ( !message )
     	return;
@@ -540,6 +508,7 @@
 
 //FIXME: Change the name of this function
 
+
 static void
 xfpm_supply_set_adapter_presence (XfpmSupply *supply)
 {
@@ -559,22 +528,9 @@
 	if ( battery )
 	    xfpm_battery_set_adapter_presence (battery, supply->priv->adapter_present);
     }
-    
     g_list_free (list);
 }
 
-static void
-xfpm_supply_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmSupply *supply )
-{
-    if ( !supply->priv->adapter_found )
-    	g_warning ("Callback from the adapter object but no adapter found in the system");
-	
-    supply->priv->adapter_present = present;
-    xfpm_supply_set_adapter_presence (supply);
-    
-    g_signal_emit (G_OBJECT(supply), signals[ON_BATTERY], 0, !supply->priv->adapter_present);
-}
-
 static XfpmBattery *
 xfpm_supply_get_battery (XfpmSupply *supply, const gchar *udi)
 {
@@ -686,70 +642,9 @@
 }
 
 static void
-xfpm_supply_add_adapter (XfpmSupply *supply, const HalDevice *device)
-{
-    supply->priv->adapter_found = TRUE;
-    
-    supply->priv->adapter = xfpm_adapter_new (device);
-    g_signal_connect (supply->priv->adapter, "adapter-changed", 
-		      G_CALLBACK(xfpm_supply_adapter_changed_cb), supply);
-    
-    supply->priv->adapter_present = xfpm_adapter_get_presence (supply->priv->adapter);
-    g_signal_emit (G_OBJECT(supply), signals[ON_BATTERY], 0, !supply->priv->adapter_present);
-}
-
-static void
-xfpm_supply_get_adapter (XfpmSupply *supply)
-{
-    const HalDevice *device;
-    
-    if ( hal_power_adapter_found (supply->priv->power) )
-    {
-	device = hal_power_get_adapter (supply->priv->power);
-	if ( device )
-	{
-#ifdef DEBUG
-	    const gchar *udi;
-	    udi = hal_device_get_udi (HAL_DEVICE(device));
-	    TRACE ("Adapter found in the system with udi=%s\n", udi);
-#endif
-	    xfpm_supply_add_adapter (supply, device);
-	}
-    }
-    else
-    {
-	supply->priv->adapter_found = FALSE;
-    }
-}
-
-static void
-xfpm_supply_remove_adapter (XfpmSupply *supply)
-{
-    supply->priv->adapter_found = FALSE;
-    g_object_unref (supply->priv->adapter);
-}
-
-static void
-xfpm_supply_adapter_added_cb (HalPower *power, const HalDevice *device, XfpmSupply *supply)
-{
-    if ( supply->priv->adapter_found )
-	return;
-	
-    xfpm_supply_add_adapter (supply, device);
-}
-
-static void
-xfpm_supply_adapter_removed_cb (HalPower *power, XfpmSupply *supply)
-{
-    if ( supply->priv->adapter_found )
-	xfpm_supply_remove_adapter (supply);
-}
-
-static void
 xfpm_supply_monitor_start (XfpmSupply *supply)
 {
     //FIXME: Check the system formfactor
-    xfpm_supply_get_adapter (supply );
     
     GPtrArray *array = hal_power_get_batteries (supply->priv->power);
     
@@ -833,6 +728,13 @@
     }
 }
 
+static void
+xfpm_supply_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmSupply *supply)
+{
+    supply->priv->adapter_present = present;
+    xfpm_supply_set_adapter_presence (supply);
+}
+
 /*
  * Public functions
  */ 
@@ -849,7 +751,13 @@
 
 void xfpm_supply_monitor (XfpmSupply *supply)
 {
+    supply->priv->adapter = xfpm_adapter_new ();
+    supply->priv->adapter_present = xfpm_adapter_get_present (supply->priv->adapter);
+    
     xfpm_supply_load_configuration (supply);
+    
+    g_signal_connect (supply->priv->adapter, "adapter-changed",
+		      G_CALLBACK(xfpm_supply_adapter_changed_cb), supply);
       
     g_signal_connect (supply->priv->conf->channel, "property-changed", 
 		      G_CALLBACK(xfpm_supply_property_changed_cb), supply);
@@ -861,10 +769,5 @@
 		     
     g_signal_connect(supply->priv->power, "battery-removed",
 		     G_CALLBACK(xfpm_supply_battery_removed_cb), supply);
-		     
-    g_signal_connect(supply->priv->power, "adapter-added",
-		     G_CALLBACK(xfpm_supply_adapter_added_cb), supply);
-		     
-    g_signal_connect(supply->priv->power, "adapter-removed",
-		     G_CALLBACK(xfpm_supply_adapter_removed_cb), supply);
+    
 }

Modified: xfce4-power-manager/trunk/src/xfpm-supply.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.h	2009-03-16 16:36:48 UTC (rev 6920)
+++ xfce4-power-manager/trunk/src/xfpm-supply.h	2009-03-16 18:07:00 UTC (rev 6921)
@@ -47,14 +47,6 @@
     
     void                (*shutdown_request)	    (XfpmSupply *supply,
 						     XfpmShutdownRequest action);
-						     
-    void	        (*block_shutdown)	    (XfpmSupply *supply,
-    						     gboolean block);
-						     
-    void                (*on_battery    )	    (XfpmSupply *supply,
-						     gboolean on_battery);
-						     
-    void                (*on_low_battery)	    (XfpmSupply *supply);
 	
 } XfpmSupplyClass;
 




More information about the Goodies-commits mailing list