[Goodies-commits] r6978 - in xfce4-power-manager/trunk: . panel-plugins/brightness po src
Ali Abdallah
aliov at xfce.org
Sun Mar 22 20:23:26 CET 2009
Author: aliov
Date: 2009-03-22 19:23:26 +0000 (Sun, 22 Mar 2009)
New Revision: 6978
Added:
xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Backlight.xml
xfce4-power-manager/trunk/src/xfpm-backlight.c
xfce4-power-manager/trunk/src/xfpm-backlight.h
Modified:
xfce4-power-manager/trunk/ChangeLog
xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c
xfce4-power-manager/trunk/po/POTFILES.in
xfce4-power-manager/trunk/src/Makefile.am
xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Inhibit.xml
xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
xfce4-power-manager/trunk/src/xfpm-engine.c
xfce4-power-manager/trunk/src/xfpm-manager.c
Log:
Provide a dbus interface to syncronize the brightness plugin and xfpm+update POTFILES
Modified: xfce4-power-manager/trunk/ChangeLog
===================================================================
--- xfce4-power-manager/trunk/ChangeLog 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/ChangeLog 2009-03-22 19:23:26 UTC (rev 6978)
@@ -1,4 +1,7 @@
+2009-03-22 20:23 Ali aliov at xfce.org
+ * : Provide a dbus interface to syncronize the brightness plugin and xfpm+update POTFILES
+
2009-03-22 19:02 Ali aliov at xfce.org
* : React correctly when panel orientation changed
Modified: xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c
===================================================================
--- xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/panel-plugins/brightness/brightness-plugin.c 2009-03-22 19:23:26 UTC (rev 6978)
@@ -42,14 +42,18 @@
typedef struct
{
DBusGConnection *bus;
+ DBusGConnection *session;
XfcePanelPlugin *plugin;
gint max_level;
gint current_level;
+
gboolean hw_found;
+ gboolean xfpm_running;
gboolean open;
DBusGProxy *proxy;
+ DBusGProxy *xfpm_proxy;
GtkWidget *button;
@@ -61,6 +65,16 @@
} brightness_t;
+
+static void
+brightness_plugin_update_xfpm_brightness_level (brightness_t *plugin, guint level)
+{
+ dbus_g_proxy_call_no_reply (plugin->xfpm_proxy, "UpdateBrightness",
+ G_TYPE_UINT, level,
+ G_TYPE_INVALID,
+ G_TYPE_INVALID);
+}
+
static gint
brightness_plugin_get_level (brightness_t *brightness)
{
@@ -98,6 +112,10 @@
g_critical ("Error setting brightness level: %s\n", error->message);
g_error_free (error);
}
+
+ if ( brightness->xfpm_running )
+ brightness_plugin_update_xfpm_brightness_level (brightness, level);
+
return ret;
}
@@ -345,7 +363,6 @@
return brightness_plugin_set_icon (brightness, width);
}
-
static void
brightness_plugin_construct_popup (brightness_t *plugin)
{
@@ -372,6 +389,26 @@
}
+static void
+brightness_plugin_xfpm (brightness_t *plugin)
+{
+ plugin->session = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
+
+ plugin->xfpm_proxy = dbus_g_proxy_new_for_name (plugin->session,
+ "org.freedesktop.PowerManagement",
+ "/org/freedesktop/PowerManagement/Backlight",
+ "org.freedesktop.PowerManagement.Backlight");
+
+ if ( !plugin->xfpm_proxy )
+ {
+ g_warning ("Failed to create proxy");
+ plugin->xfpm_running = FALSE;
+ return;
+ }
+
+ plugin->xfpm_running = TRUE;
+}
+
static void brightness_plugin_free_data_cb (XfcePanelPlugin *plugin, brightness_t *brightness)
{
if ( brightness->win )
@@ -422,6 +459,7 @@
{
brightness_plugin_construct_popup (brightness);
brightness_plugin_set_level (brightness, 9);
+ brightness_plugin_xfpm (brightness);
gtk_widget_set_tooltip_text (brightness->button, _("Control your LCD brightness level"));
}
else
Modified: xfce4-power-manager/trunk/po/POTFILES.in
===================================================================
--- xfce4-power-manager/trunk/po/POTFILES.in 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/po/POTFILES.in 2009-03-22 19:23:26 UTC (rev 6978)
@@ -28,7 +28,9 @@
libxfpm/hal-manager.c
libxfpm/hal-power.c
libxfpm/hal-battery.c
-panel-plugins/brightness/main.c
-src/xfce-power-manager.desktop.in
+panel-plugins/brightness/brightness-plugin.c
+panel-plugins/brightness/xfce4-brightness-plugin.desktop.in.in
+panel-plugins/inhibit/inhibit-plugin.c
+panel-plugins/inhibit/xfce4-inhibit-plugin.desktop.in.in
+src/xfce4-power-manager.desktop.in
settings/xfce4-power-manager.desktop.in
-panel-plugins/brightness/xfce4-brightness-plugin.desktop.in.in
Modified: xfce4-power-manager/trunk/src/Makefile.am
===================================================================
--- xfce4-power-manager/trunk/src/Makefile.am 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/Makefile.am 2009-03-22 19:23:26 UTC (rev 6978)
@@ -7,6 +7,7 @@
xfpm-marshal.h \
org.freedesktop.PowerManagement.h \
org.freedesktop.PowerManagement.Inhibit.h\
+ org.freedesktop.PowerManagement.Backlight.h\
xfce-power-manager-dbus-server.h \
xfce-power-manager-dbus-client.h \
xfpm-main.c \
@@ -32,6 +33,8 @@
xfpm-button-xf86.h \
xfpm-lid-hal.c \
xfpm-lid-hal.h \
+ xfpm-backlight.c \
+ xfpm-backlight.h \
xfpm-brightness-hal.c \
xfpm-brightness-hal.h \
xfpm-idle.c \
@@ -89,6 +92,7 @@
xfce-power-manager-dbus-client.h \
org.freedesktop.PowerManagement.h \
org.freedesktop.PowerManagement.Inhibit.h \
+ org.freedesktop.PowerManagement.Backlight.h \
xfpm-marshal.c \
xfpm-marshal.h \
xfpm-enum-types.c \
@@ -140,6 +144,9 @@
org.freedesktop.PowerManagement.Inhibit.h: $(srcdir)/org.freedesktop.PowerManagement.Inhibit.xml
dbus-binding-tool --mode=glib-server --prefix=xfpm_inhibit $< >$@
+org.freedesktop.PowerManagement.Backlight.h: $(srcdir)/org.freedesktop.PowerManagement.Backlight.xml
+ dbus-binding-tool --mode=glib-server --prefix=xfpm_backlight $< >$@
+
endif
@INTLTOOL_DESKTOP_RULE@
Added: xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Backlight.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Backlight.xml (rev 0)
+++ xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Backlight.xml 2009-03-22 19:23:26 UTC (rev 6978)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<node name="/">
+ <interface name="org.freedesktop.PowerManagement.Backlight">
+ <annotation name="org.freedesktop.DBus.GLib.CSymbol"
+ value="xfpm_backlight_dbus"/>
+ <annotation name="org.freedesktop.DBus.GLib.ClientCSymbol"
+ value="xfpm_backlight_dbus_client"/>
+
+ <method name="UpdateBrightness">
+ <arg type="u" name="level" direction="in"/>
+ </method>
+
+ </interface>
+</node>
Modified: xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Inhibit.xml
===================================================================
--- xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Inhibit.xml 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/org.freedesktop.PowerManagement.Inhibit.xml 2009-03-22 19:23:26 UTC (rev 6978)
@@ -21,7 +21,9 @@
<arg type="b" name="has_inhibit" direction="out"/>
</method>
- <signal name="HasInhibitChanged"/>
+ <signal name="HasInhibitChanged">
+ <arg type="b" name="has_inhibit_changed" direction="out"/>
+ </signal>
</interface>
Added: xfce4-power-manager/trunk/src/xfpm-backlight.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-backlight.c (rev 0)
+++ xfce4-power-manager/trunk/src/xfpm-backlight.c 2009-03-22 19:23:26 UTC (rev 6978)
@@ -0,0 +1,138 @@
+/*
+ * * 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
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libxfce4util/libxfce4util.h>
+
+#include "xfpm-backlight.h"
+#include "xfpm-brightness-hal.h"
+
+/* Init */
+static void xfpm_backlight_class_init (XfpmBacklightClass *klass);
+static void xfpm_backlight_init (XfpmBacklight *bk);
+static void xfpm_backlight_finalize (GObject *object);
+
+static void xfpm_backlight_dbus_class_init (XfpmBacklightClass *klass);
+static void xfpm_backlight_dbus_init (XfpmBacklight *bk);
+
+#define XFPM_BACKLIGHT_GET_PRIVATE(o) \
+(G_TYPE_INSTANCE_GET_PRIVATE((o), XFPM_TYPE_BACKLIGHT, XfpmBacklightPrivate))
+
+struct XfpmBacklightPrivate
+{
+ XfpmBrightnessHal *br;
+ gboolean has_hw;
+};
+
+G_DEFINE_TYPE(XfpmBacklight, xfpm_backlight, G_TYPE_OBJECT)
+
+static void
+xfpm_backlight_class_init(XfpmBacklightClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS(klass);
+
+ object_class->finalize = xfpm_backlight_finalize;
+
+ g_type_class_add_private(klass,sizeof(XfpmBacklightPrivate));
+
+ xfpm_backlight_dbus_class_init (klass);
+}
+
+static void
+xfpm_backlight_init(XfpmBacklight *bk)
+{
+ bk->priv = XFPM_BACKLIGHT_GET_PRIVATE(bk);
+
+ bk->priv->br = xfpm_brightness_hal_new ();
+ bk->priv->has_hw = xfpm_brightness_hal_has_hw(bk->priv->br);
+
+ xfpm_backlight_dbus_init (bk);
+}
+
+static void
+xfpm_backlight_finalize(GObject *object)
+{
+ XfpmBacklight *bk;
+
+ bk = XFPM_BACKLIGHT(object);
+
+ G_OBJECT_CLASS(xfpm_backlight_parent_class)->finalize(object);
+}
+
+XfpmBacklight *
+xfpm_backlight_new(void)
+{
+ XfpmBacklight *bk = NULL;
+ bk = g_object_new (XFPM_TYPE_BACKLIGHT, NULL);
+ return bk;
+}
+
+/*
+ *
+ * DBus server implementation for org.freedesktop.PowerManagement.Backlight (Not standard)
+ *
+ */
+
+static gboolean xfpm_backlight_dbus_update_brightness (XfpmBacklight *bk,
+ guint IN_level,
+ GError **error);
+
+#include "org.freedesktop.PowerManagement.Backlight.h"
+
+static void xfpm_backlight_dbus_class_init (XfpmBacklightClass *klass)
+{
+ dbus_g_object_type_install_info (G_TYPE_FROM_CLASS(klass),
+ &dbus_glib_xfpm_backlight_object_info);
+}
+
+static void xfpm_backlight_dbus_init (XfpmBacklight *bk)
+{
+ DBusGConnection *bus = dbus_g_bus_get (DBUS_BUS_SESSION, NULL);
+
+ dbus_g_connection_register_g_object (bus,
+ "/org/freedesktop/PowerManagement/Backlight",
+ G_OBJECT(bk));
+}
+
+
+static gboolean xfpm_backlight_dbus_update_brightness (XfpmBacklight *bk,
+ guint IN_level,
+ GError **error)
+{
+ TRACE("Update backlight message received");
+ if ( bk->priv->has_hw )
+ xfpm_brightness_hal_update_level (bk->priv->br, IN_level);
+
+ return TRUE;
+}
+
+gboolean xfpm_backlight_has_hw (XfpmBacklight *bk)
+{
+ g_return_val_if_fail (XFPM_IS_BACKLIGHT (bk), FALSE);
+
+ return bk->priv->has_hw;
+}
Added: xfce4-power-manager/trunk/src/xfpm-backlight.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-backlight.h (rev 0)
+++ xfce4-power-manager/trunk/src/xfpm-backlight.h 2009-03-22 19:23:26 UTC (rev 6978)
@@ -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 __XFPM_BACKLIGHT_H
+#define __XFPM_BACKLIGHT_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define XFPM_TYPE_BACKLIGHT (xfpm_backlight_get_type () )
+#define XFPM_BACKLIGHT(o) (G_TYPE_CHECK_INSTANCE_CAST((o), XFPM_TYPE_BACKLIGHT, XfpmBacklight))
+#define XFPM_IS_BACKLIGHT(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), XFPM_TYPE_BACKLIGHT))
+
+typedef struct XfpmBacklightPrivate XfpmBacklightPrivate;
+
+typedef struct
+{
+ GObject parent;
+ XfpmBacklightPrivate *priv;
+
+} XfpmBacklight;
+
+typedef struct
+{
+ GObjectClass parent_class;
+
+} XfpmBacklightClass;
+
+GType xfpm_backlight_get_type (void) G_GNUC_CONST;
+XfpmBacklight *xfpm_backlight_new (void);
+
+gboolean xfpm_backlight_has_hw (XfpmBacklight *bk);
+
+G_END_DECLS
+
+#endif /* __XFPM_BACKLIGHT_H */
Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.c 2009-03-22 19:23:26 UTC (rev 6978)
@@ -499,3 +499,10 @@
return brg->priv->hw_found;
}
+
+void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg, guint level)
+{
+ g_return_if_fail (XFPM_IS_BRIGHTNESS_HAL (brg));
+
+ brg->priv->hw_level = level;
+}
Modified: xfce4-power-manager/trunk/src/xfpm-brightness-hal.h
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-brightness-hal.h 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/xfpm-brightness-hal.h 2009-03-22 19:23:26 UTC (rev 6978)
@@ -48,6 +48,8 @@
XfpmBrightnessHal *xfpm_brightness_hal_new (void);
gboolean xfpm_brightness_hal_has_hw (XfpmBrightnessHal *brg);
+void xfpm_brightness_hal_update_level (XfpmBrightnessHal *brg,
+ guint level);
G_END_DECLS
#endif /* __XFPM_BRIGHTNESS_HAL_H */
Modified: xfce4-power-manager/trunk/src/xfpm-engine.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/xfpm-engine.c 2009-03-22 19:23:26 UTC (rev 6978)
@@ -59,7 +59,7 @@
#include "xfpm-button-xf86.h"
#include "xfpm-lid-hal.h"
#include "xfpm-inhibit.h"
-#include "xfpm-brightness-hal.h"
+#include "xfpm-backlight.h"
#include "xfpm-screen-saver.h"
#include "xfpm-config.h"
@@ -81,7 +81,7 @@
XfpmCpu *cpu;
XfpmButtonXf86 *xf86_button;
XfpmLidHal *lid;
- XfpmBrightnessHal *brg_hal;
+ XfpmBacklight *bk;
XfpmAdapter *adapter;
XfpmInhibit *inhibit;
HalIface *iface;
@@ -330,10 +330,8 @@
*/
if ( engine->priv->is_laptop )
{
- engine->priv->brg_hal = xfpm_brightness_hal_new ();
- engine->priv->has_lcd_brightness = xfpm_brightness_hal_has_hw (engine->priv->brg_hal);
- if ( !engine->priv->has_lcd_brightness )
- g_object_unref (engine->priv->brg_hal);
+ engine->priv->bk = xfpm_backlight_new ();
+ engine->priv->has_lcd_brightness = xfpm_backlight_has_hw (engine->priv->bk);
}
}
@@ -480,7 +478,7 @@
engine->priv->cpu = NULL;
engine->priv->xf86_button = NULL;
engine->priv->lid = NULL;
- engine->priv->brg_hal = NULL;
+ engine->priv->bk = NULL;
engine->priv->power_management = 0;
@@ -536,6 +534,9 @@
if ( engine->priv->adapter)
g_object_unref (engine->priv->adapter);
+ if ( engine->priv->bk )
+ g_object_unref (engine->priv->bk);
+
G_OBJECT_CLASS(xfpm_engine_parent_class)->finalize(object);
}
Modified: xfce4-power-manager/trunk/src/xfpm-manager.c
===================================================================
--- xfce4-power-manager/trunk/src/xfpm-manager.c 2009-03-22 18:02:55 UTC (rev 6977)
+++ xfce4-power-manager/trunk/src/xfpm-manager.c 2009-03-22 19:23:26 UTC (rev 6978)
@@ -140,22 +140,30 @@
if ( !xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
"org.xfce.PowerManager") )
{
- g_critical("Unable to reserve bus name\n");
+ g_critical("Unable to reserve bus name: Xfce Power Manager\n");
}
if (!xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
"org.freedesktop.PowerManagement") )
{
- g_critical ("Unable to reserve bus name\n");
+ g_critical ("Unable to reserve bus name: PowerManagement\n");
}
if (!xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
"org.freedesktop.PowerManagement.Inhibit") )
{
- g_critical ("Unable to reserve bus name\n");
+ g_critical ("Unable to reserve bus name: Inhibit\n");
}
+
+ if (!xfpm_dbus_register_name (dbus_g_connection_get_connection(manager->priv->session_bus),
+ "org.freedesktop.PowerManagement.Backlight") )
+ {
+
+ g_critical ("Unable to reserve bus name: Backlight\n");
+ }
+
manager->priv->hproxy = hal_proxy_new ();
g_signal_connect (manager->priv->hproxy, "hal-disconnected",
More information about the Goodies-commits
mailing list