[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