[gnome-power-manager] Remove the unused abstraction GpmAdapter, and use DkpClient directly
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-power-manager] Remove the unused abstraction GpmAdapter, and use DkpClient directly
- Date: Wed, 6 May 2009 11:36:41 -0400 (EDT)
commit b241d8e555943fdb93d6eaffaaca4131d0292bdf
Author: Richard Hughes <richard hughsie com>
Date: Wed May 6 15:17:47 2009 +0100
Remove the unused abstraction GpmAdapter, and use DkpClient directly
---
src/Makefile.am | 4 -
src/gpm-ac-adapter.c | 162 --------------------------------------------------
src/gpm-ac-adapter.h | 59 ------------------
src/gpm-backlight.c | 45 +++++++-------
src/gpm-manager.c | 124 +++++++++++++-------------------------
src/gpm-notify.c | 30 +++++-----
6 files changed, 80 insertions(+), 344 deletions(-)
diff --git a/src/Makefile.am b/src/Makefile.am
index 964ab05..a18cc0b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -182,8 +182,6 @@ gnome_power_manager_SOURCES = \
gpm-main.c \
gpm-manager.h \
gpm-manager.c \
- gpm-ac-adapter.h \
- gpm-ac-adapter.c \
gpm-tray-icon.h \
gpm-tray-icon.c \
gpm-marshal.h \
@@ -251,8 +249,6 @@ gnome_power_self_test_SOURCES = \
egg-array-float.c \
egg-console-kit.h \
egg-console-kit.c \
- gpm-ac-adapter.h \
- gpm-ac-adapter.c \
gpm-prefs-server.h \
gpm-prefs-server.c \
gpm-control.h \
diff --git a/src/gpm-ac-adapter.c b/src/gpm-ac-adapter.c
deleted file mode 100644
index cee1d07..0000000
--- a/src/gpm-ac-adapter.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2006-2007 Richard Hughes <richard hughsie com>
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <glib/gi18n.h>
-#include <dbus/dbus-glib.h>
-#include <devkit-power-gobject/devicekit-power.h>
-
-#include "gpm-common.h"
-#include "egg-debug.h"
-#include "gpm-ac-adapter.h"
-
-#define GPM_AC_ADAPTER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GPM_TYPE_AC_ADAPTER, GpmAcAdapterPrivate))
-
-struct GpmAcAdapterPrivate
-{
- gboolean has_hardware;
- DkpClient *client;
-};
-
-enum {
- AC_ADAPTER_CHANGED,
- LAST_SIGNAL
-};
-
-static guint signals [LAST_SIGNAL] = { 0 };
-static gpointer gpm_ac_adapter_object = NULL;
-
-G_DEFINE_TYPE (GpmAcAdapter, gpm_ac_adapter, G_TYPE_OBJECT)
-
-/**
- * gpm_ac_adapter_get:
- * @ac_adapter: This class instance
- *
- * Gets the current state of the AC adapter
- **/
-gboolean
-gpm_ac_adapter_is_present (GpmAcAdapter *ac_adapter)
-{
- gboolean is_on_ac;
- gboolean on_battery;
- on_battery = dkp_client_on_battery (ac_adapter->priv->client);
- /* battery -> not AC */
- is_on_ac = !on_battery;
- return is_on_ac;
-}
-
-/**
- * gpm_ac_adapter_changed_cb:
- */
-static void
-gpm_ac_adapter_changed_cb (DkpClient *client, GpmAcAdapter *ac_adapter)
-{
- gboolean on_battery;
- on_battery = dkp_client_on_battery (client);
- g_signal_emit (ac_adapter, signals [AC_ADAPTER_CHANGED], 0, !on_battery);
-}
-
-/**
- * gpm_ac_adapter_finalize:
- **/
-static void
-gpm_ac_adapter_finalize (GObject *object)
-{
- GpmAcAdapter *ac_adapter;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GPM_IS_AC_ADAPTER (object));
- ac_adapter = GPM_AC_ADAPTER (object);
- g_return_if_fail (ac_adapter->priv != NULL);
-
- g_object_unref (ac_adapter->priv->client);
-
- G_OBJECT_CLASS (gpm_ac_adapter_parent_class)->finalize (object);
-}
-
-/**
- * gpm_ac_adapter_class_init:
- **/
-static void
-gpm_ac_adapter_class_init (GpmAcAdapterClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gpm_ac_adapter_finalize;
-
- signals [AC_ADAPTER_CHANGED] =
- g_signal_new ("ac-adapter-changed",
- G_TYPE_FROM_CLASS (object_class),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GpmAcAdapterClass, ac_adapter_changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__BOOLEAN,
- G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-
- g_type_class_add_private (klass, sizeof (GpmAcAdapterPrivate));
-}
-
-/**
- * gpm_ac_adapter_init:
- * @ac_adapter: This class instance
- *
- * initialises the ac_adapter class. NOTE: We expect ac_adapter objects
- * to *NOT* be removed or added during the session.
- * We only control the first ac_adapter object if there are more than one.
- **/
-static void
-gpm_ac_adapter_init (GpmAcAdapter *ac_adapter)
-{
- ac_adapter->priv = GPM_AC_ADAPTER_GET_PRIVATE (ac_adapter);
- ac_adapter->priv->client = dkp_client_new ();
- g_signal_connect (ac_adapter->priv->client, "changed",
- G_CALLBACK (gpm_ac_adapter_changed_cb), ac_adapter);
-}
-
-/**
- * gpm_ac_adapter_new:
- * Return value: A new ac_adapter class instance.
- **/
-GpmAcAdapter *
-gpm_ac_adapter_new (void)
-{
- if (gpm_ac_adapter_object != NULL) {
- g_object_ref (gpm_ac_adapter_object);
- } else {
- gpm_ac_adapter_object = g_object_new (GPM_TYPE_AC_ADAPTER, NULL);
- g_object_add_weak_pointer (gpm_ac_adapter_object, &gpm_ac_adapter_object);
- }
- return GPM_AC_ADAPTER (gpm_ac_adapter_object);
-}
-
diff --git a/src/gpm-ac-adapter.h b/src/gpm-ac-adapter.h
deleted file mode 100644
index ac4530e..0000000
--- a/src/gpm-ac-adapter.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2005 William Jon McCann <mccann jhu edu>
- * Copyright (C) 2005-2007 Richard Hughes <richard hughsie com>
- *
- * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GPM_AC_ADAPTER_H
-#define __GPM_AC_ADAPTER_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define GPM_TYPE_AC_ADAPTER (gpm_ac_adapter_get_type ())
-#define GPM_AC_ADAPTER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GPM_TYPE_AC_ADAPTER, GpmAcAdapter))
-#define GPM_AC_ADAPTER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GPM_TYPE_AC_ADAPTER, GpmAcAdapterClass))
-#define GPM_IS_AC_ADAPTER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GPM_TYPE_AC_ADAPTER))
-#define GPM_IS_AC_ADAPTER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GPM_TYPE_AC_ADAPTER))
-#define GPM_AC_ADAPTER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GPM_TYPE_AC_ADAPTER, GpmAcAdapterClass))
-
-typedef struct GpmAcAdapterPrivate GpmAcAdapterPrivate;
-
-typedef struct
-{
- GObject parent;
- GpmAcAdapterPrivate *priv;
-} GpmAcAdapter;
-
-typedef struct
-{
- GObjectClass parent_class;
- void (* ac_adapter_changed) (GpmAcAdapter *ac_adapter,
- gboolean on_ac);
-} GpmAcAdapterClass;
-
-GType gpm_ac_adapter_get_type (void);
-GpmAcAdapter *gpm_ac_adapter_new (void);
-
-gboolean gpm_ac_adapter_is_present (GpmAcAdapter *ac_adapter);
-
-G_END_DECLS
-
-#endif /* __GPM_AC_ADAPTER_H */
diff --git a/src/gpm-backlight.c b/src/gpm-backlight.c
index bb52a54..9bf13cd 100644
--- a/src/gpm-backlight.c
+++ b/src/gpm-backlight.c
@@ -40,10 +40,10 @@
#include <glib/gi18n.h>
#include <dbus/dbus-glib.h>
#include <gconf/gconf-client.h>
+#include <devkit-power-gobject/devicekit-power.h>
#include <hal-manager.h>
-#include "gpm-ac-adapter.h"
#include "gpm-button.h"
#include "gpm-backlight.h"
#include "gpm-brightness.h"
@@ -62,7 +62,7 @@
struct GpmBacklightPrivate
{
- GpmAcAdapter *ac_adapter;
+ DkpClient *client;
GpmBrightness *brightness;
GpmButton *button;
GConfClient *conf;
@@ -229,7 +229,7 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
gfloat brightness;
gfloat scale;
gboolean ret;
- gboolean on_ac;
+ gboolean on_battery;
gboolean do_laptop_lcd;
gboolean enable_action;
gboolean battery_reduce;
@@ -253,11 +253,11 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
egg_debug ("1. main brightness %f", brightness);
/* get AC status */
- on_ac = gpm_ac_adapter_is_present (backlight->priv->ac_adapter);
+ on_battery = dkp_client_on_battery (backlight->priv->client);
/* reduce if on battery power if we should */
battery_reduce = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_BATTERY_REDUCE, NULL);
- if (on_ac == FALSE && battery_reduce) {
+ if (on_battery && battery_reduce) {
value = gconf_client_get_int (backlight->priv->conf, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT, NULL);
if (value > 100) {
egg_warning ("cannot use battery brightness value %i, correcting to 50", value);
@@ -271,7 +271,7 @@ gpm_backlight_brightness_evaluate_and_set (GpmBacklight *backlight, gboolean int
egg_debug ("2. battery scale %f, brightness %f", scale, brightness);
/* reduce if system is momentarily idle */
- if (on_ac)
+ if (!on_battery)
enable_action = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_AC, NULL);
else
enable_action = gconf_client_get_bool (backlight->priv->conf, GPM_CONF_BACKLIGHT_IDLE_DIM_BATT, NULL);
@@ -340,19 +340,19 @@ static void
gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *entry, GpmBacklight *backlight)
{
GConfValue *value;
- gboolean on_ac;
+ gboolean on_battery;
value = gconf_entry_get_value (entry);
if (value == NULL)
return;
- on_ac = gpm_ac_adapter_is_present (backlight->priv->ac_adapter);
+ on_battery = dkp_client_on_battery (backlight->priv->client);
- if (on_ac && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
+ if (!on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_AC) == 0) {
backlight->priv->master_percentage = gconf_value_get_int (value);
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
- } else if (!on_ac && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT) == 0) {
+ } else if (on_battery && strcmp (entry->key, GPM_CONF_BACKLIGHT_BRIGHTNESS_DIM_BATT) == 0) {
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
} else if (strcmp (entry->key, GPM_CONF_BACKLIGHT_IDLE_DIM_AC) == 0 ||
@@ -374,15 +374,14 @@ gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *e
}
/**
- * ac_adapter_changed_cb:
- * @ac_adapter: The ac_adapter class instance
- * @on_ac: if we are on AC power
- * @brightness: This class instance
+ * gpm_backlight_client_changed_cb:
+ * @client: The dkp_client class instance
+ * @backlight: This class instance
*
* Does the actions when the ac power source is inserted/removed.
**/
static void
-ac_adapter_changed_cb (GpmAcAdapter *ac_adapter, gboolean on_ac, GpmBacklight *backlight)
+gpm_backlight_client_changed_cb (DkpClient *client, GpmBacklight *backlight)
{
gpm_backlight_brightness_evaluate_and_set (backlight, TRUE);
}
@@ -513,7 +512,7 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
{
gboolean ret;
GError *error = NULL;
- gboolean on_ac;
+ gboolean on_battery;
gchar *dpms_method;
GpmDpmsMode dpms_mode;
@@ -553,8 +552,8 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmBacklight *backlight)
gpm_backlight_brightness_evaluate_and_set (backlight, FALSE);
/* get the DPMS state we're supposed to use on the power state */
- on_ac = gpm_ac_adapter_is_present (backlight->priv->ac_adapter);
- if (on_ac)
+ on_battery = dkp_client_on_battery (backlight->priv->client);
+ if (!on_battery)
dpms_method = gconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_AC, NULL);
else
dpms_method = gconf_client_get_string (backlight->priv->conf, GPM_CONF_BACKLIGHT_DPMS_METHOD_BATT, NULL);
@@ -671,7 +670,7 @@ gpm_backlight_finalize (GObject *object)
g_object_unref (backlight->priv->light_sensor);
g_object_unref (backlight->priv->feedback);
g_object_unref (backlight->priv->conf);
- g_object_unref (backlight->priv->ac_adapter);
+ g_object_unref (backlight->priv->client);
g_object_unref (backlight->priv->button);
g_object_unref (backlight->priv->idle);
g_object_unref (backlight->priv->brightness);
@@ -776,10 +775,10 @@ gpm_backlight_init (GpmBacklight *backlight)
g_signal_connect (backlight->priv->button, "button-pressed",
G_CALLBACK (gpm_backlight_button_pressed_cb), backlight);
- /* we use ac_adapter for the ac-adapter-changed signal */
- backlight->priv->ac_adapter = gpm_ac_adapter_new ();
- g_signal_connect (backlight->priv->ac_adapter, "ac-adapter-changed",
- G_CALLBACK (ac_adapter_changed_cb), backlight);
+ /* we use dkp_client for the ac-adapter-changed signal */
+ backlight->priv->client = dkp_client_new ();
+ g_signal_connect (backlight->priv->client, "changed",
+ G_CALLBACK (gpm_backlight_client_changed_cb), backlight);
/* watch for idle mode changes */
backlight->priv->idle = gpm_idle_new ();
diff --git a/src/gpm-manager.c b/src/gpm-manager.c
index 1783949..43cc8e0 100644
--- a/src/gpm-manager.c
+++ b/src/gpm-manager.c
@@ -45,7 +45,6 @@
#include "egg-debug.h"
#include "egg-console-kit.h"
-#include "gpm-ac-adapter.h"
#include "gpm-button.h"
#include "gpm-control.h"
#include "gpm-common.h"
@@ -77,7 +76,6 @@ static void gpm_manager_finalize (GObject *object);
struct GpmManagerPrivate
{
- GpmAcAdapter *ac_adapter;
GpmButton *button;
GConfClient *conf;
GpmDpms *dpms;
@@ -89,7 +87,6 @@ struct GpmManagerPrivate
GpmScreensaver *screensaver;
GpmTrayIcon *tray_icon;
GpmEngine *engine;
- gboolean low_power;
GpmBrightnessKbd *brightness_kbd;
GpmFeedback *feedback_kbd;
GpmBacklight *backlight;
@@ -98,6 +95,7 @@ struct GpmManagerPrivate
guint32 screensaver_dpms_throttle_id;
guint32 screensaver_lid_throttle_id;
DkpClient *client;
+ gboolean on_battery;
};
enum {
@@ -282,7 +280,6 @@ gpm_manager_is_inhibit_valid (GpmManager *manager, gboolean user_action, const c
/**
* gpm_manager_sync_policy_sleep:
* @manager: This class instance
- * @on_ac: If we are on AC power
*
* Changes the policy if required, setting brightness, display and computer
* timeouts.
@@ -294,19 +291,13 @@ gpm_manager_sync_policy_sleep (GpmManager *manager)
{
guint sleep_display;
guint sleep_computer;
- gboolean on_ac;
- gboolean power_save;
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
-
- if (on_ac) {
+ if (!manager->priv->on_battery) {
sleep_computer = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_AC, NULL);
sleep_display = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_AC, NULL);
- power_save = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_AC, NULL);
} else {
sleep_computer = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_COMPUTER_BATT, NULL);
sleep_display = gconf_client_get_int (manager->priv->conf, GPM_CONF_TIMEOUT_SLEEP_DISPLAY_BATT, NULL);
- power_save = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_BATT, NULL);
}
/* set the new sleep (inactivity) value */
@@ -599,7 +590,7 @@ gpm_manager_get_power_save_status (GpmManager *manager, gboolean *low_power, GEr
{
g_return_val_if_fail (manager != NULL, FALSE);
g_return_val_if_fail (GPM_IS_MANAGER (manager), FALSE);
- *low_power = manager->priv->low_power;
+ *low_power = FALSE;
return TRUE;
}
@@ -614,11 +605,9 @@ gpm_manager_get_power_save_status (GpmManager *manager, gboolean *low_power, GEr
gboolean
gpm_manager_get_on_battery (GpmManager *manager, gboolean *on_battery, GError **error)
{
- gboolean on_ac;
g_return_val_if_fail (manager != NULL, FALSE);
g_return_val_if_fail (GPM_IS_MANAGER (manager), FALSE);
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- *on_battery = !on_ac;
+ *on_battery = manager->priv->on_battery;
return TRUE;
}
@@ -630,8 +619,6 @@ gpm_manager_get_low_battery (GpmManager *manager, gboolean *low_battery, GError
{
g_return_val_if_fail (manager != NULL, FALSE);
g_return_val_if_fail (GPM_IS_MANAGER (manager), FALSE);
-
- /* TODO */
*low_battery = FALSE;
return TRUE;
}
@@ -646,15 +633,11 @@ gpm_manager_get_low_battery (GpmManager *manager, gboolean *low_battery, GError
static void
idle_do_sleep (GpmManager *manager)
{
- gboolean on_ac;
gchar *action = NULL;
gboolean ret;
GError *error = NULL;
- /* find if we are on AC power */
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
-
- if (on_ac)
+ if (!manager->priv->on_battery)
action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_AC, NULL);
else
action = gconf_client_get_string (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_TYPE_BATT, NULL);
@@ -753,13 +736,10 @@ idle_changed_cb (GpmIdle *idle, GpmIdleMode mode, GpmManager *manager)
static void
lid_button_pressed (GpmManager *manager, gboolean pressed)
{
- gboolean on_ac;
gboolean has_inhibit;
gboolean do_policy;
gchar *action;
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
-
if (pressed)
gpm_manager_play (manager, GPM_MANAGER_SOUND_LID_CLOSE, FALSE);
else
@@ -771,7 +751,7 @@ lid_button_pressed (GpmManager *manager, gboolean pressed)
return;
}
- if (on_ac) {
+ if (!manager->priv->on_battery) {
egg_debug ("Performing AC policy");
manager_policy_do (manager, GPM_CONF_BUTTON_LID_AC,
_("The lid has been closed on ac power."));
@@ -828,11 +808,11 @@ update_dpms_throttle (GpmManager *manager)
}
static void
-update_ac_throttle (GpmManager *manager, gboolean on_ac)
+update_ac_throttle (GpmManager *manager)
{
/* Throttle the manager when we are not on AC power so we don't
waste the battery */
- if (on_ac) {
+ if (manager->priv->on_battery) {
if (manager->priv->screensaver_ac_throttle_id != 0) {
gpm_screensaver_remove_throttle (manager->priv->screensaver, manager->priv->screensaver_ac_throttle_id);
manager->priv->screensaver_ac_throttle_id = 0;
@@ -924,7 +904,7 @@ button_pressed_cb (GpmButton *button, const gchar *type, GpmManager *manager)
}
/**
- * power_on_ac_changed_cb:
+ * gpm_manager_client_changed_cb:
* @power: The power class instance
* @on_ac: if we are on AC power
* @manager: This class instance
@@ -932,11 +912,21 @@ button_pressed_cb (GpmButton *button, const gchar *type, GpmManager *manager)
* Does the actions when the ac power source is inserted/removed.
**/
static void
-ac_adapter_changed_cb (GpmAcAdapter *ac_adapter, gboolean on_ac, GpmManager *manager)
+gpm_manager_client_changed_cb (DkpClient *client, GpmManager *manager)
{
gboolean event_when_closed;
- gboolean power_save;
guint brightness;
+ gboolean on_battery;
+
+ /* get the on-battery state */
+ on_battery = dkp_client_on_battery (manager->priv->client);
+ if (on_battery == manager->priv->on_battery) {
+ egg_debug ("same state as before, ignoring");
+ return;
+ }
+
+ /* save in local cache */
+ manager->priv->on_battery = on_battery;
/* ConsoleKit says we are not on active console */
if (!egg_console_kit_is_active (manager->priv->console)) {
@@ -944,9 +934,9 @@ ac_adapter_changed_cb (GpmAcAdapter *ac_adapter, gboolean on_ac, GpmManager *man
return;
}
- egg_debug ("Setting on-ac: %d", on_ac);
+ egg_debug ("on_battery: %d", on_battery);
- if (on_ac)
+ if (!on_battery)
brightness = gconf_client_get_int (manager->priv->conf, GPM_CONF_KEYBOARD_BRIGHTNESS_AC, NULL);
else
brightness = gconf_client_get_int (manager->priv->conf, GPM_CONF_KEYBOARD_BRIGHTNESS_BATT, NULL);
@@ -954,37 +944,28 @@ ac_adapter_changed_cb (GpmAcAdapter *ac_adapter, gboolean on_ac, GpmManager *man
gpm_manager_sync_policy_sleep (manager);
- update_ac_throttle (manager, on_ac);
+ update_ac_throttle (manager);
/* simulate user input, but only when the lid is open */
- if (gpm_button_is_lid_closed (manager->priv->button) == FALSE)
+ if (!gpm_button_is_lid_closed (manager->priv->button))
gpm_screensaver_poke (manager->priv->screensaver);
- if (on_ac)
+ if (!on_battery)
gpm_manager_play (manager, GPM_MANAGER_SOUND_POWER_PLUG, FALSE);
else
gpm_manager_play (manager, GPM_MANAGER_SOUND_POWER_UNPLUG, FALSE);
- egg_debug ("emitting on-ac-changed : %i", on_ac);
- g_signal_emit (manager, signals [ON_BATTERY_CHANGED], 0, !on_ac);
-
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- if (on_ac)
- power_save = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_AC, NULL);
- else
- power_save = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_BATT, NULL);
- if (manager->priv->low_power != power_save)
- g_signal_emit (manager, signals [POWER_SAVE_STATUS_CHANGED], 0, power_save);
- manager->priv->low_power = power_save;
+ egg_debug ("emitting on-battery-changed : %i", on_battery);
+ g_signal_emit (manager, signals [ON_BATTERY_CHANGED], 0, on_battery);
- /* We do the lid close on battery action if the ac_adapter is removed
+ /* We do the lid close on battery action if the ac adapter is removed
when the laptop is closed and on battery. Fixes #331655 */
event_when_closed = gconf_client_get_bool (manager->priv->conf, GPM_CONF_ACTIONS_SLEEP_WHEN_CLOSED, NULL);
/* We keep track of the lid state so we can do the
- lid close on battery action if the ac_adapter is removed when the laptop
+ lid close on battery action if the ac adapter is removed when the laptop
is closed. Fixes #331655 */
- if (event_when_closed && on_ac == FALSE && gpm_button_is_lid_closed (manager->priv->button)) {
+ if (event_when_closed && on_battery && gpm_button_is_lid_closed (manager->priv->button)) {
manager_policy_do (manager, GPM_CONF_BUTTON_LID_BATT,
_("The lid has been closed, and the ac adapter "
"removed (and gconf is okay)."));
@@ -1050,7 +1031,6 @@ gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *e
{
GConfValue *value;
gint brightness;
- gboolean on_ac;
value = gconf_entry_get_value (entry);
if (value == NULL)
@@ -1063,17 +1043,16 @@ gpm_conf_gconf_key_changed_cb (GConfClient *client, guint cnxn_id, GConfEntry *e
gpm_manager_sync_policy_sleep (manager);
/* set keyboard brightness */
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- if (strcmp (entry->key, GPM_CONF_KEYBOARD_BRIGHTNESS_AC) == 0) {
+ if (strcmp (entry->key, GPM_CONF_KEYBOARD_BRIGHTNESS_BATT) == 0) {
brightness = gconf_value_get_int (value);
- if (on_ac)
+ if (manager->priv->on_battery)
gpm_brightness_kbd_set_std (manager->priv->brightness_kbd, brightness);
- } else if (strcmp (entry->key, GPM_CONF_KEYBOARD_BRIGHTNESS_BATT) == 0) {
+ } else if (strcmp (entry->key, GPM_CONF_KEYBOARD_BRIGHTNESS_AC) == 0) {
brightness = gconf_client_get_int (manager->priv->conf, GPM_CONF_KEYBOARD_BRIGHTNESS_AC, NULL);
- if (on_ac == FALSE)
+ if (!manager->priv->on_battery)
gpm_brightness_kbd_set_std (manager->priv->brightness_kbd, brightness);
}
@@ -1276,7 +1255,6 @@ gpm_engine_charge_low_cb (GpmEngine *engine, DkpDevice *device, GpmManager *mana
DkpDeviceType type;
gdouble percentage;
gint64 time_to_empty;
- gboolean on_battery;
/* get device properties */
g_object_get (device,
@@ -1287,8 +1265,7 @@ gpm_engine_charge_low_cb (GpmEngine *engine, DkpDevice *device, GpmManager *mana
/* check to see if the batteries have not noticed we are on AC */
if (type == DKP_DEVICE_TYPE_BATTERY) {
- on_battery = dkp_client_on_battery (manager->priv->client);
- if (!on_battery) {
+ if (!manager->priv->on_battery) {
egg_warning ("ignoring critically low message as we are not on battery power");
goto out;
}
@@ -1356,7 +1333,6 @@ gpm_engine_charge_critical_cb (GpmEngine *engine, DkpDevice *device, GpmManager
DkpDeviceType type;
gdouble percentage;
gint64 time_to_empty;
- gboolean on_battery;
/* get device properties */
g_object_get (device,
@@ -1367,8 +1343,7 @@ gpm_engine_charge_critical_cb (GpmEngine *engine, DkpDevice *device, GpmManager
/* check to see if the batteries have not noticed we are on AC */
if (type == DKP_DEVICE_TYPE_BATTERY) {
- on_battery = dkp_client_on_battery (manager->priv->client);
- if (!on_battery) {
+ if (!manager->priv->on_battery) {
egg_warning ("ignoring critically low message as we are not on battery power");
goto out;
}
@@ -1452,7 +1427,6 @@ gpm_engine_charge_action_cb (GpmEngine *engine, DkpDevice *device, GpmManager *m
gchar *message = NULL;
gchar *icon = NULL;
DkpDeviceType type;
- gboolean on_battery;
/* get device properties */
g_object_get (device,
@@ -1461,8 +1435,7 @@ gpm_engine_charge_action_cb (GpmEngine *engine, DkpDevice *device, GpmManager *m
/* check to see if the batteries have not noticed we are on AC */
if (type == DKP_DEVICE_TYPE_BATTERY) {
- on_battery = dkp_client_on_battery (manager->priv->client);
- if (!on_battery) {
+ if (!manager->priv->on_battery) {
egg_warning ("ignoring critically low message as we are not on battery power");
goto out;
}
@@ -1624,7 +1597,6 @@ dpms_mode_changed_cb (GpmDpms *dpms, GpmDpmsMode mode, GpmManager *manager)
static void
gpm_manager_console_kit_active_changed_cb (EggConsoleKit *console, gboolean active, GpmManager *manager)
{
- gboolean on_ac;
gboolean ret;
egg_debug ("console now %s", active ? "active" : "inactive");
@@ -1639,8 +1611,7 @@ gpm_manager_console_kit_active_changed_cb (EggConsoleKit *console, gboolean acti
return;
/* get ac state */
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- if (on_ac) {
+ if (!manager->priv->on_battery) {
egg_debug ("Performing AC policy as become active when lid down");
manager_policy_do (manager, GPM_CONF_BUTTON_LID_AC,
_("The lid has been found closed on ac power."));
@@ -1662,7 +1633,6 @@ gpm_manager_init (GpmManager *manager)
gboolean check_type_cpu;
DBusGConnection *connection;
GError *error = NULL;
- gboolean on_ac;
guint version;
manager->priv = GPM_MANAGER_GET_PRIVATE (manager);
@@ -1684,6 +1654,8 @@ gpm_manager_init (GpmManager *manager)
manager->priv->notify = gpm_notify_new ();
manager->priv->conf = gconf_client_get_default ();
manager->priv->client = dkp_client_new ();
+ g_signal_connect (manager->priv->client, "changed",
+ G_CALLBACK (gpm_manager_client_changed_cb), manager);
/* watch gnome-power-manager keys */
gconf_client_add_dir (manager->priv->conf, GPM_CONF_DIR,
@@ -1705,17 +1677,8 @@ gpm_manager_init (GpmManager *manager)
egg_error ("no gconf schema installed!");
}
- /* we use ac_adapter so we can poke the screensaver and throttle */
- manager->priv->ac_adapter = gpm_ac_adapter_new ();
- g_signal_connect (manager->priv->ac_adapter, "ac-adapter-changed",
- G_CALLBACK (ac_adapter_changed_cb), manager);
-
/* coldplug so we are in the correct state at startup */
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- if (on_ac)
- manager->priv->low_power = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_AC, NULL);
- else
- manager->priv->low_power = gconf_client_get_bool (manager->priv->conf, GPM_CONF_LOWPOWER_BATT, NULL);
+ manager->priv->on_battery = dkp_client_on_battery (manager->priv->client);
manager->priv->button = gpm_button_new ();
g_signal_connect (manager->priv->button, "button-pressed",
@@ -1804,8 +1767,7 @@ gpm_manager_init (GpmManager *manager)
G_CALLBACK (gpm_engine_charge_action_cb), manager);
/* update ac throttle */
- on_ac = gpm_ac_adapter_is_present (manager->priv->ac_adapter);
- update_ac_throttle (manager, on_ac);
+ update_ac_throttle (manager);
}
/**
diff --git a/src/gpm-notify.c b/src/gpm-notify.c
index c192ca1..697ea04 100644
--- a/src/gpm-notify.c
+++ b/src/gpm-notify.c
@@ -40,8 +40,8 @@
#include <gtk/gtk.h>
#include <gconf/gconf-client.h>
#include <libnotify/notify.h>
+#include <devkit-power-gobject/devicekit-power.h>
-#include "gpm-ac-adapter.h"
#include "gpm-common.h"
#include "egg-debug.h"
#include "gpm-notify.h"
@@ -52,7 +52,7 @@
struct GpmNotifyPrivate
{
- GpmAcAdapter *ac_adapter;
+ DkpClient *client;
GConfClient *conf;
GtkStatusIcon *status_icon;
gchar *internet_url;
@@ -181,19 +181,19 @@ gpm_notify_cancel (GpmNotify *notify)
/**
* power_on_ac_changed_cb:
* @power: The power class instance
- * @on_ac: if we are on AC power
* @icon: This class instance
*
* Does the actions when the ac power source is inserted/removed.
**/
static void
-ac_adapter_changed_cb (GpmAcAdapter *ac_adapter,
- gboolean on_ac,
- GpmNotify *notify)
+gpm_notify_client_changed_cb (DkpClient *client, GpmNotify *notify)
{
- /* for where we add back the ac_adapter before the "AC Power unplugged"
+ gboolean on_battery;
+
+ /* for where we add back the client before the "AC Power unplugged"
* message times out. */
- if (on_ac) {
+ on_battery = dkp_client_on_battery (client);
+ if (!on_battery) {
egg_debug ("clearing notify due ac being present");
gpm_notify_cancel (notify);
}
@@ -530,8 +530,8 @@ gpm_notify_finalize (GObject *object)
if (notify->priv->libnotify != NULL)
notify_notification_close (notify->priv->libnotify, NULL);
g_object_unref (notify->priv->conf);
- if (notify->priv->ac_adapter != NULL)
- g_object_unref (notify->priv->ac_adapter);
+ if (notify->priv->client != NULL)
+ g_object_unref (notify->priv->client);
G_OBJECT_CLASS (gpm_notify_parent_class)->finalize (object);
}
@@ -543,7 +543,7 @@ static void
gpm_notify_class_init (GpmNotifyClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->finalize = gpm_notify_finalize;
+ object_class->finalize = gpm_notify_finalize;
g_type_class_add_private (klass, sizeof (GpmNotifyPrivate));
}
@@ -564,10 +564,10 @@ gpm_notify_init (GpmNotify *notify)
notify->priv->conf = gconf_client_get_default ();
notify->priv->do_not_show_gconf = NULL;
- /* we use ac_adapter so we can log the event */
- notify->priv->ac_adapter = gpm_ac_adapter_new ();
- g_signal_connect (notify->priv->ac_adapter, "ac-adapter-changed",
- G_CALLBACK (ac_adapter_changed_cb), notify);
+ /* we use client so we can log the event */
+ notify->priv->client = dkp_client_new ();
+ g_signal_connect (notify->priv->client, "changed",
+ G_CALLBACK (gpm_notify_client_changed_cb), notify);
notify->priv->status_icon = NULL;
notify->priv->libnotify = NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]