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

Ali Abdallah aliov at xfce.org
Tue Mar 17 19:15:57 CET 2009


Author: aliov
Date: 2009-03-17 18:15:57 +0000 (Tue, 17 Mar 2009)
New Revision: 6931

Added:
   xfce4-power-manager/trunk/libxfpm/hal-proxy.c
   xfce4-power-manager/trunk/libxfpm/hal-proxy.h
Modified:
   xfce4-power-manager/trunk/ChangeLog
   xfce4-power-manager/trunk/libxfpm/Makefile.am
   xfce4-power-manager/trunk/src/xfpm-battery.c
   xfce4-power-manager/trunk/src/xfpm-battery.h
   xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
   xfce4-power-manager/trunk/src/xfpm-engine.c
   xfce4-power-manager/trunk/src/xfpm-manager.c
   xfce4-power-manager/trunk/src/xfpm-supply.c
   xfce4-power-manager/trunk/src/xfpm-tray-icon.c
Log:
Added experimentale code to monitor hal proxy+some typos

Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/ChangeLog	2009-03-17 18:15:57 UTC (rev 6931)
@@ -1,4 +1,7 @@
 
+2009-03-17 19:15 Ali aliov at xfce.org 
+	 * : Added experimentale code to monitor hal proxy+some typos
+
 2009-03-17 13:10 Ali aliov at xfce.org 
 	 * : Fix a bug in idle timeout that was breaking gdk events
 

Modified: xfce4-power-manager/trunk/libxfpm/Makefile.am
===================================================================
--- xfce4-power-manager/trunk/libxfpm/Makefile.am	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/libxfpm/Makefile.am	2009-03-17 18:15:57 UTC (rev 6931)
@@ -8,6 +8,8 @@
 	xfpm-string.h			\
 	hal-marshal.c			\
 	hal-marshal.h			\
+	hal-proxy.c			\
+	hal-proxy.h			\
 	hal-manager.c			\
 	hal-manager.h			\
 	hal-power.c			\

Added: xfce4-power-manager/trunk/libxfpm/hal-proxy.c
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-proxy.c	                        (rev 0)
+++ xfce4-power-manager/trunk/libxfpm/hal-proxy.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -0,0 +1,169 @@
+/*
+ * * Copyright (C) 2008 Ali <aliov at xfce.org>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <glib.h>
+
+#include <dbus/dbus-glib.h>
+
+#include "hal-proxy.h"
+
+/* Init */
+static void hal_proxy_class_init (HalProxyClass *klass);
+static void hal_proxy_init       (HalProxy *hal_proxy);
+static void hal_proxy_finalize   (GObject *object);
+
+#define HAL_PROXY_GET_PRIVATE(o) \
+(G_TYPE_INSTANCE_GET_PRIVATE((o), HAL_TYPE_PROXY, HalProxyPrivate))
+
+struct HalProxyPrivate
+{
+    DBusGProxy *proxy;
+};
+
+enum
+{
+    HAL_DISCONNECTED,
+    HAL_CONNECTED,
+    LAST_SIGNAL
+};
+
+static guint signals[LAST_SIGNAL] = { 0 };
+    
+G_DEFINE_TYPE(HalProxy, hal_proxy, G_TYPE_OBJECT)
+/*
+static void
+hal_proxy_destroy_cb (DBusGProxy *proxy, HalProxy *hal_proxy)
+{
+    g_signal_emit (G_OBJECT(hal_proxy), signals[HAL_DISCONNECTED], 0);
+}
+*/
+
+static void
+hal_proxy_name_owner_changed_cb (DBusGProxy *proxy, const gchar *name,
+				 const gchar *prev, const gchar *new,
+				 HalProxy *hproxy)
+{
+    
+    g_print("name=%s prev=%s new=%s\n", name, prev, new);
+}
+
+
+static void
+hal_proxy_name_aquired_cb (DBusGProxy *proxy, const gchar *name, gpointer data)
+{
+    
+    g_print("name=%s\n", name);
+}
+
+static void
+hal_proxy_get (HalProxy *hal_proxy)
+{
+    GError *error = NULL;
+    DBusGConnection *bus;
+    
+    bus = dbus_g_bus_get (DBUS_BUS_SYSTEM, &error);
+    
+    if ( error )
+    {
+	g_critical ("error getting system bus connection: %s", error->message);
+	g_error_free (error);
+	return;
+    }
+    
+    hal_proxy->priv->proxy = dbus_g_proxy_new_for_name_owner (bus,
+							      "org.freedesktop.Hal",
+							      "/org/freedesktop/Hal/Manager",
+							      "org.freedesktop.Hal.Manager",
+							      &error);
+    if ( error )
+    {
+	g_critical ("Error getting proxy to hald: %s", error->message);
+	g_error_free (error);
+	return;
+    }
+    
+    //g_signal_connect (hal_proxy->priv->proxy, "destroy",
+	//	      G_CALLBACK(hal_proxy_destroy_cb), hal_proxy);
+    
+    dbus_g_proxy_add_signal (hal_proxy->priv->proxy, "NameOwnerChanged", 
+			     G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
+			     
+    dbus_g_proxy_connect_signal (hal_proxy->priv->proxy, "NameOwnerChanged",
+				 G_CALLBACK(hal_proxy_name_owner_changed_cb), hal_proxy, NULL);
+    		     
+    dbus_g_proxy_add_signal (hal_proxy->priv->proxy, "NameAcquired", 
+			     G_TYPE_STRING, G_TYPE_INVALID);
+			     
+    dbus_g_proxy_connect_signal (hal_proxy->priv->proxy, "NameAcquired",
+				 G_CALLBACK(hal_proxy_name_aquired_cb), hal_proxy, NULL);
+}
+
+static void
+hal_proxy_class_init(HalProxyClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+
+    signals[HAL_DISCONNECTED] =
+    	g_signal_new("hal-disconnected",
+		     HAL_TYPE_PROXY,
+		     G_SIGNAL_RUN_LAST,
+		     G_STRUCT_OFFSET(HalProxyClass, hal_disconnected),
+		     NULL, NULL,
+		     g_cclosure_marshal_VOID__VOID,
+		     G_TYPE_NONE, 0, G_TYPE_NONE);
+
+    object_class->finalize = hal_proxy_finalize;
+
+    g_type_class_add_private(klass,sizeof(HalProxyPrivate));
+}
+
+static void
+hal_proxy_init(HalProxy *hal_proxy)
+{
+    hal_proxy->priv = HAL_PROXY_GET_PRIVATE(hal_proxy);
+    
+    hal_proxy_get (hal_proxy);
+}
+
+static void
+hal_proxy_finalize(GObject *object)
+{
+    HalProxy *hal_proxy;
+
+    hal_proxy = HAL_PROXY(object);
+
+    G_OBJECT_CLASS(hal_proxy_parent_class)->finalize(object);
+}
+
+HalProxy *
+hal_proxy_new(void)
+{
+    HalProxy *hal_proxy = NULL;
+    hal_proxy = g_object_new(HAL_TYPE_PROXY,NULL);
+    return hal_proxy;
+}

Added: xfce4-power-manager/trunk/libxfpm/hal-proxy.h
===================================================================
--- xfce4-power-manager/trunk/libxfpm/hal-proxy.h	                        (rev 0)
+++ xfce4-power-manager/trunk/libxfpm/hal-proxy.h	2009-03-17 18:15:57 UTC (rev 6931)
@@ -0,0 +1,54 @@
+/*
+ * * Copyright (C) 2009 Ali <aliov at xfce.org>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+#ifndef __HAL_PROXY_H
+#define __HAL_PROXY_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define HAL_TYPE_PROXY        (hal_proxy_get_type () )
+#define HAL_PROXY(o)          (G_TYPE_CHECK_INSTANCE_CAST((o), HAL_TYPE_PROXY, HalProxy))
+#define HAL_IS_PROXY(o)       (G_TYPE_CHECK_INSTANCE_TYPE((o), HAL_TYPE_PROXY))
+
+typedef struct HalProxyPrivate HalProxyPrivate;
+
+typedef struct
+{
+    GObject		  parent;
+    HalProxyPrivate	 *priv;
+	
+} HalProxy;
+
+typedef struct
+{
+    GObjectClass 	  parent_class;
+    
+    void                  (*hal_disconnected)	    (HalProxy *proxy);
+    
+} HalProxyClass;
+
+GType        		  hal_proxy_get_type        (void) G_GNUC_CONST;
+HalProxy       		 *hal_proxy_new             (void);
+
+G_END_DECLS
+
+#endif /* __HAL_PROXY_H */

Modified: xfce4-power-manager/trunk/src/xfpm-battery.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-battery.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -42,6 +42,7 @@
 #include "xfpm-enum-types.h"
 #include "xfpm-battery-info.h"
 #include "xfpm-notify.h"
+#include "xfpm-adapter.h"
 
 /* Init */
 static void xfpm_battery_class_init (XfpmBatteryClass *klass);
@@ -53,8 +54,9 @@
 
 struct XfpmBatteryPrivate
 {
-    XfpmTrayIcon  *icon;
-    HalBattery     *device;
+    XfpmTrayIcon    *icon;
+    XfpmAdapter     *adapter;
+    HalBattery      *device;
 
     HalDeviceType    type;
     gchar 	    *icon_prefix;
@@ -77,66 +79,6 @@
 
 G_DEFINE_TYPE(XfpmBattery, xfpm_battery, G_TYPE_OBJECT)
 
-static void
-xfpm_battery_class_init(XfpmBatteryClass *klass)
-{
-    GObjectClass *object_class = G_OBJECT_CLASS(klass);
-
-    signals[BATTERY_STATE_CHANGED] = 
-    	g_signal_new("battery-state-changed",
-		      XFPM_TYPE_BATTERY,
-		      G_SIGNAL_RUN_LAST,
-		      G_STRUCT_OFFSET(XfpmBatteryClass, battery_state_changed),
-		      NULL, NULL,
-		      g_cclosure_marshal_VOID__ENUM,
-		      G_TYPE_NONE, 1, XFPM_TYPE_BATTERY_STATE);
-
-    signals[POPUP_BATTERY_MENU] = 
-   	g_signal_new("popup-battery-menu",
-		      XFPM_TYPE_BATTERY,
-		      G_SIGNAL_RUN_LAST,
-		      G_STRUCT_OFFSET(XfpmBatteryClass, popup_battery_menu),
-		      NULL, NULL,
-		      _xfpm_marshal_VOID__POINTER_UINT_UINT_UINT,
-		      G_TYPE_NONE, 4, 
-		      GTK_TYPE_STATUS_ICON, 
-		      G_TYPE_UINT,
-		      G_TYPE_UINT,
-		      G_TYPE_UINT);
-		      
-    object_class->finalize = xfpm_battery_finalize;
-    
-
-    g_type_class_add_private(klass,sizeof(XfpmBatteryPrivate));
-}
-
-static void
-xfpm_battery_init(XfpmBattery *battery)
-{
-    battery->priv = XFPM_BATTERY_GET_PRIVATE(battery);
-    
-    battery->priv->icon      = xfpm_tray_icon_new();
-    battery->priv->show_icon = SHOW_ICON_ALWAYS;
-}
-
-static void
-xfpm_battery_finalize(GObject *object)
-{
-    XfpmBattery *battery;
-    battery = XFPM_BATTERY(object);
-    
-    if ( battery->priv->icon )
-    	g_object_unref (battery->priv->icon);
-    
-    if ( battery->priv->device )
-    	g_object_unref (battery->priv->device);
-	
-    if ( battery->priv->icon_prefix )
-    	g_free(battery->priv->icon_prefix);
-
-    G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
-}
-
 static const gchar *
 xfpm_battery_get_icon_index (HalDeviceType type, guint percent)
 {
@@ -157,7 +99,7 @@
 static void
 xfpm_battery_refresh_visible_icon (XfpmBattery *battery)
 {
-    gboolean visible = FALSE, tray_visible = FALSE;
+    gboolean visible = FALSE;
     
     if ( battery->priv->show_icon == SHOW_ICON_ALWAYS )
     	visible = TRUE;
@@ -174,13 +116,7 @@
 	else visible = TRUE;
     }
 
-    tray_visible = xfpm_tray_icon_get_visible (battery->priv->icon);
-    
-    if ( tray_visible != visible )
-    {
-    	TRACE ("Settings battery visibility %s\n", xfpm_bool_to_string(visible));
-    	xfpm_tray_icon_set_visible (battery->priv->icon, visible);
-    }
+    xfpm_tray_icon_set_visible (battery->priv->icon, TRUE);
 }
     
 static void
@@ -486,6 +422,77 @@
     		   icon, button, activate_time, battery->priv->type);
 }
 
+static void
+xfpm_battery_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmBattery *battery)
+{
+    battery->priv->adapter_present = present;
+}
+
+static void
+xfpm_battery_class_init(XfpmBatteryClass *klass)
+{
+    GObjectClass *object_class = G_OBJECT_CLASS(klass);
+
+    signals[BATTERY_STATE_CHANGED] = 
+    	g_signal_new("battery-state-changed",
+		      XFPM_TYPE_BATTERY,
+		      G_SIGNAL_RUN_LAST,
+		      G_STRUCT_OFFSET(XfpmBatteryClass, battery_state_changed),
+		      NULL, NULL,
+		      g_cclosure_marshal_VOID__ENUM,
+		      G_TYPE_NONE, 1, XFPM_TYPE_BATTERY_STATE);
+
+    signals[POPUP_BATTERY_MENU] = 
+   	g_signal_new("popup-battery-menu",
+		      XFPM_TYPE_BATTERY,
+		      G_SIGNAL_RUN_LAST,
+		      G_STRUCT_OFFSET(XfpmBatteryClass, popup_battery_menu),
+		      NULL, NULL,
+		      _xfpm_marshal_VOID__POINTER_UINT_UINT_UINT,
+		      G_TYPE_NONE, 4, 
+		      GTK_TYPE_STATUS_ICON, 
+		      G_TYPE_UINT,
+		      G_TYPE_UINT,
+		      G_TYPE_UINT);
+		      
+    object_class->finalize = xfpm_battery_finalize;
+    
+    g_type_class_add_private(klass,sizeof(XfpmBatteryPrivate));
+}
+
+static void
+xfpm_battery_init(XfpmBattery *battery)
+{
+    battery->priv = XFPM_BATTERY_GET_PRIVATE(battery);
+    
+    battery->priv->icon      = xfpm_tray_icon_new ();
+    battery->priv->show_icon = SHOW_ICON_ALWAYS;
+    battery->priv->adapter   = xfpm_adapter_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);
+}
+
+static void
+xfpm_battery_finalize(GObject *object)
+{
+    XfpmBattery *battery;
+    battery = XFPM_BATTERY(object);
+    
+    g_object_unref (battery->priv->icon);
+    
+    g_object_unref (battery->priv->device);
+	
+    if ( battery->priv->icon_prefix )
+    	g_free(battery->priv->icon_prefix);
+	
+    g_object_unref (battery->priv->adapter);
+
+    G_OBJECT_CLASS(xfpm_battery_parent_class)->finalize(object);
+}
+
 XfpmBattery *
 xfpm_battery_new(const HalBattery *device)
 {
@@ -510,14 +517,6 @@
     return battery;
 }
 
-void xfpm_battery_set_adapter_presence (XfpmBattery *battery, gboolean adapter_present)
-{
-    g_return_if_fail ( XFPM_IS_BATTERY(battery));
-    
-    battery->priv->adapter_present = adapter_present;
-    xfpm_battery_refresh (battery);
-}
-
 void xfpm_battery_set_show_icon (XfpmBattery *battery, XfpmShowIcon show_icon)
 {
     g_return_if_fail (XFPM_IS_BATTERY(battery));

Modified: xfce4-power-manager/trunk/src/xfpm-battery.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-battery.h	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-battery.h	2009-03-17 18:15:57 UTC (rev 6931)
@@ -62,9 +62,6 @@
 GType        		 xfpm_battery_get_type           (void) G_GNUC_CONST;
 XfpmBattery    		*xfpm_battery_new                (const HalBattery *device);
 
-void                     xfpm_battery_set_adapter_presence(XfpmBattery *battery,
-							  gboolean adapter_present);
-							  
 void                     xfpm_battery_set_show_icon      (XfpmBattery *battery,
 							  XfpmShowIcon show_icon);
 							  

Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -256,7 +256,7 @@
     if ( brg->priv->brightness_in_hw )
 	return;
     
-    if ( brg->priv->hw_level != brg->priv->max_level -2 )
+    if ( brg->priv->hw_level <= brg->priv->max_level -2 )
     {
 	xfpm_brightness_hal_set_level (brg, brg->priv->hw_level + 1 );
 	brg->priv->hw_level = xfpm_brightness_hal_get_level (brg);
@@ -324,7 +324,7 @@
 	if ( level != 1 )
 	{
 	    TRACE ("Reducing brightness, on AC power\n");
-	    xfpm_brightness_hal_set_level(brg, 1);
+	    xfpm_brightness_hal_set_level(brg, 0);
 	}
     }
     else if ( id == TIMEOUT_ON_BATTERY_ID && brg->priv->on_battery_timeout != 9)
@@ -334,7 +334,7 @@
 	
 	if ( level != 1 )
 	{
-	    xfpm_brightness_hal_set_level(brg, 1);
+	    xfpm_brightness_hal_set_level(brg, 0);
 	    TRACE ("Reducing brightness, on battery power\n");
 	}
     }
@@ -373,6 +373,7 @@
 xfpm_brightness_hal_set_timeouts (XfpmBrightnessHal *brg )
 {
     xfpm_idle_set_alarm (brg->priv->idle, TIMEOUT_ON_AC_ID, brg->priv->on_ac_timeout * 1000);
+    
     xfpm_idle_set_alarm (brg->priv->idle, TIMEOUT_ON_BATTERY_ID, brg->priv->on_battery_timeout * 1000);
     
     xfpm_idle_alarm_reset_all (brg->priv->idle);

Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -151,6 +151,7 @@
 	
     if ( engine->priv->supply )
     	g_object_unref (engine->priv->supply);
+	
 #ifdef HAVE_DPMS
     if ( engine->priv->dpms )
     	g_object_unref (engine->priv->dpms);
@@ -165,6 +166,9 @@
     if ( engine->priv->iface)
     	g_object_unref(engine->priv->iface);
 
+    if ( engine->priv->adapter)
+	g_object_unref (engine->priv->adapter);
+	
     if ( engine->priv->button_timer)
     	g_timer_destroy (engine->priv->button_timer);
 	
@@ -287,7 +291,6 @@
 	engine->priv->power_management |= SYSTEM_CAN_SUSPEND;
 	
     //FIXME: Show errors here
-   
 }
 
 static void
@@ -301,18 +304,19 @@
     engine->priv->cpu = xfpm_cpu_new ();
 
     engine->priv->supply = xfpm_supply_new (engine->priv->power_management);
+    xfpm_supply_monitor (engine->priv->supply);
     
     /*
-     * Keys from XF86
-     */
+    * Keys from XF86
+    */
     engine->priv->xf86_button = xfpm_button_xf86_new ();
     
     g_signal_connect (engine->priv->xf86_button, "xf86-button-pressed", 
-		      G_CALLBACK(xfpm_engine_xf86_button_pressed_cb), engine);
+		       G_CALLBACK(xfpm_engine_xf86_button_pressed_cb), engine);
 		      
     /*
-     * Lid from HAL 
-     */
+    * Lid from HAL 
+    */
     engine->priv->lid = xfpm_lid_hal_new ();
     
     if ( xfpm_lid_hw_found (engine->priv->lid ))
@@ -320,14 +324,12 @@
 			  G_CALLBACK(xfpm_engine_lid_closed_cb), engine);
 			  
     /*
-     * Brightness HAL
-     */
+    * Brightness HAL
+    */
     engine->priv->brg_hal = xfpm_brightness_hal_new ();
     
     g_signal_connect (G_OBJECT(engine->priv->supply), "shutdown-request",
 		      G_CALLBACK (xfpm_engine_shutdown_request_battery_cb), engine);
-
-    xfpm_supply_monitor (engine->priv->supply);
 }
 
 static void

Modified: xfce4-power-manager/trunk/src/xfpm-manager.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-manager.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -36,10 +36,12 @@
 #include <dbus/dbus-glib-lowlevel.h>
 
 #include "libxfpm/xfpm-string.h"
+#include "libxfpm/hal-proxy.h"
 #include "libxfpm/xfpm-dbus.h"
 
 #include "xfpm-manager.h"
 #include "xfpm-engine.h"
+#include "xfpm-manager.h"
 
 /* Init */
 static void xfpm_manager_class_init (XfpmManagerClass *klass);
@@ -54,7 +56,8 @@
 
 struct XfpmManagerPrivate
 {
-    XfpmEngine *engine;
+    XfpmEngine 	    *engine;
+    HalProxy        *hproxy;
     
     DBusGConnection *session_bus;
 };
@@ -62,6 +65,13 @@
 G_DEFINE_TYPE(XfpmManager, xfpm_manager, G_TYPE_OBJECT)
 
 static void
+xfpm_manager_hal_disconnected_cb (HalProxy *hproxy, XfpmManager *manager)
+{
+    TRACE("hald disconnected ");
+    //g_object_unref (manager->priv->engine);
+}
+
+static void
 xfpm_manager_class_init (XfpmManagerClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
@@ -77,6 +87,8 @@
     manager->priv = XFPM_MANAGER_GET_PRIVATE(manager);
 
     manager->priv->session_bus   = NULL;
+    manager->priv->engine        = NULL;
+    manager->priv->hproxy        = NULL;
 }
 
 static void
@@ -138,6 +150,12 @@
 	g_critical ("Unable to reserve bus name\n");
     }
     
+    manager->priv->hproxy = hal_proxy_new ();
+    
+    g_signal_connect (manager->priv->hproxy, "hal-disconnected",
+		      G_CALLBACK(xfpm_manager_hal_disconnected_cb), manager);
+    
+    
     manager->priv->engine = xfpm_engine_new ();
     
 }

Modified: xfce4-power-manager/trunk/src/xfpm-supply.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-supply.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -78,6 +78,8 @@
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
+static FILE *file = NULL;
+
 G_DEFINE_TYPE(XfpmSupply, xfpm_supply, G_TYPE_OBJECT)
 
 static void
@@ -105,11 +107,12 @@
     supply->priv = XFPM_SUPPLY_GET_PRIVATE (supply);
   
     supply->priv->power   = hal_power_new ();
-    supply->priv->hash    = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+    supply->priv->hash    = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
     supply->priv->notify  = xfpm_notify_new ();
     supply->priv->conf    = xfpm_xfconf_new ();
 }
 
+
 static void
 xfpm_supply_finalize (GObject *object)
 {
@@ -119,8 +122,7 @@
     if ( supply->priv->power )
     	g_object_unref(supply->priv->power);
 	
-    if ( supply->priv->hash )
-    	g_hash_table_destroy (supply->priv->hash);
+    g_hash_table_destroy (supply->priv->hash);
 	
     if ( supply->priv->notify )
     	g_object_unref (supply->priv->notify);
@@ -130,7 +132,7 @@
 	
     if ( supply->priv->adapter )
 	g_object_unref (supply->priv->adapter);
-    
+	
     G_OBJECT_CLASS(xfpm_supply_parent_class)->finalize(object);
 }
 
@@ -506,31 +508,6 @@
 		   icon, button, activate_time);
 }
 
-//FIXME: Change the name of this function
-
-
-static void
-xfpm_supply_set_adapter_presence (XfpmSupply *supply)
-{
-    if ( g_hash_table_size (supply->priv->hash) == 0 ) 
-	return;
-	
-    int i;
-    GList *list = g_hash_table_get_values (supply->priv->hash );
-    
-    if (!list)
-	return;
-    
-    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_adapter_presence (battery, supply->priv->adapter_present);
-    }
-    g_list_free (list);
-}
-
 static XfpmBattery *
 xfpm_supply_get_battery (XfpmSupply *supply, const gchar *udi)
 {
@@ -547,13 +524,14 @@
     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_adapter_presence (battery, supply->priv->adapter_present);
     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",
@@ -641,12 +619,14 @@
     g_list_free (list);
 }
 
-static void
+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++ )
@@ -657,6 +637,8 @@
     }
     
     g_ptr_array_free(array, TRUE);
+    
+    return FALSE;
 }
 
 static void
@@ -732,7 +714,6 @@
 xfpm_supply_adapter_changed_cb (XfpmAdapter *adapter, gboolean present, XfpmSupply *supply)
 {
     supply->priv->adapter_present = present;
-    xfpm_supply_set_adapter_presence (supply);
 }
 
 /*
@@ -762,7 +743,7 @@
     g_signal_connect (supply->priv->conf->channel, "property-changed", 
 		      G_CALLBACK(xfpm_supply_property_changed_cb), supply);
 
-    xfpm_supply_monitor_start(supply);
+    xfpm_supply_monitor_start (supply);
     
     g_signal_connect(supply->priv->power, "battery-added",
 		     G_CALLBACK(xfpm_supply_battery_added_cb), supply);

Modified: xfce4-power-manager/trunk/src/xfpm-tray-icon.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-03-17 12:10:25 UTC (rev 6930)
+++ xfce4-power-manager/trunk/src/xfpm-tray-icon.c	2009-03-17 18:15:57 UTC (rev 6931)
@@ -34,25 +34,20 @@
 #include "libxfpm/xfpm-common.h"
 
 #include "xfpm-tray-icon.h"
+#include "xfpm-string.h"
 
 /* Init */
 static void xfpm_tray_icon_class_init (XfpmTrayIconClass *klass);
 static void xfpm_tray_icon_init       (XfpmTrayIcon *tray);
 static void xfpm_tray_icon_finalize   (GObject *object);
 
-static gboolean xfpm_tray_icon_size_change_cb(GtkStatusIcon *icon, 
-					      gint size,
-					      gpointer data);
-
 #define XFPM_TRAY_ICON_GET_PRIVATE(o) \
 (G_TYPE_INSTANCE_GET_PRIVATE((o), XFPM_TYPE_TRAY_ICON, XfpmTrayIconPrivate))
 
 struct XfpmTrayIconPrivate
 {
     GtkStatusIcon *icon;
-    gint icon_size;
     GQuark icon_quark;
-    
 };
 
 G_DEFINE_TYPE(XfpmTrayIcon, xfpm_tray_icon, G_TYPE_OBJECT)
@@ -71,12 +66,10 @@
 xfpm_tray_icon_init(XfpmTrayIcon *tray)
 {
     tray->priv = XFPM_TRAY_ICON_GET_PRIVATE(tray);
+    
     tray->priv->icon = gtk_status_icon_new();
-    tray->priv->icon_size = 0;
+    
     tray->priv->icon_quark = 0;
-     
-    g_signal_connect(G_OBJECT(tray->priv->icon), "size-changed", 
-		     G_CALLBACK(xfpm_tray_icon_size_change_cb), tray);
 }
 
 static void
@@ -85,30 +78,13 @@
     XfpmTrayIcon *icon;
 
     icon = XFPM_TRAY_ICON(object);
-    
+
     if ( icon->priv->icon )
     	g_object_unref(icon->priv->icon);
 
     G_OBJECT_CLASS(xfpm_tray_icon_parent_class)->finalize(object);
 }
 
-static gboolean 
-xfpm_tray_icon_size_change_cb(GtkStatusIcon *icon, 
-			      gint size,
-			      gpointer data)
-{
-    XfpmTrayIcon *tray = (XfpmTrayIcon *) data;
-    
-    if ( size > 128 ) return TRUE;
-    if ( tray->priv->icon_quark == 0 ) return TRUE;
-    
-    tray->priv->icon_size = size;
-    
-    xfpm_tray_icon_set_icon (tray, g_quark_to_string(tray->priv->icon_quark));
-    
-    return TRUE;
-}
-
 XfpmTrayIcon *
 xfpm_tray_icon_new(void)
 {
@@ -122,16 +98,8 @@
     g_return_if_fail(XFPM_IS_TRAY_ICON(icon));
     
     icon->priv->icon_quark = g_quark_from_string(icon_name);
-        
-    GdkPixbuf *pix;
-    pix = xfpm_load_icon(icon_name, icon->priv->icon_size);
-    
-    if ( pix )
-    {
-	gtk_status_icon_set_from_pixbuf(GTK_STATUS_ICON(icon->priv->icon), pix);
-	g_object_unref(pix);
-    }
-    
+   
+    gtk_status_icon_set_from_icon_name (GTK_STATUS_ICON(icon->priv->icon), icon_name);
 }
 
 void xfpm_tray_icon_set_tooltip (XfpmTrayIcon *icon, const gchar *tooltip)
@@ -143,7 +111,6 @@
 #else
     gtk_status_icon_set_tooltip (GTK_STATUS_ICON(icon->priv->icon), tooltip);
 #endif
-
 }
 
 void xfpm_tray_icon_set_visible (XfpmTrayIcon *icon, gboolean visible)
@@ -151,7 +118,6 @@
     g_return_if_fail(XFPM_IS_TRAY_ICON(icon));
     
     gtk_status_icon_set_visible(GTK_STATUS_ICON(icon->priv->icon), visible);
-    
 }
 
 gboolean xfpm_tray_icon_get_visible (XfpmTrayIcon *icon)




More information about the Goodies-commits mailing list