[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