Merge lp:~albaguirre/indicator-power/use-new-brightness-dbus-interface into lp:indicator-power/14.10

Proposed by Alberto Aguirre
Status: Merged
Approved by: Lars Karlitski
Approved revision: 252
Merged at revision: 247
Proposed branch: lp:~albaguirre/indicator-power/use-new-brightness-dbus-interface
Merge into: lp:indicator-power/14.10
Diff against target: 334 lines (+71/-50)
6 files modified
debian/control (+2/-0)
m4/gcov.m4 (+1/-1)
src/Makefile.am (+2/-2)
src/ib-brightness-uscreen-control.c (+41/-22)
src/ib-brightness-uscreen-control.h (+11/-11)
src/service.c (+14/-14)
To merge this branch: bzr merge lp:~albaguirre/indicator-power/use-new-brightness-dbus-interface
Reviewer Review Type Date Requested Status
Lars Karlitski (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Iain Lane Approve
Review via email: mp+223339@code.launchpad.net

Commit message

Changes to address setBrightness interface moving from powerd to unity-system-compositor

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Iain Lane (laney) wrote :

Cheers. Since you asked me to review I've taken a look, but Charles I think usually takes care of i-power. One inline comment too.

The main problem is that you need to rename the 'powerd' references everywhere since that name is now inaccurate except for getBrightnessParams.

What provides this service? Please either add a dependency or (maybe this is a good idea anyway) keep the fallback to powerd if nothing has the new name.

review: Needs Fixing
Revision history for this message
Charles Kerr (charlesk) wrote :

alberto, laney, IMO we should remove the brightness code from indicator-power altogether. IMO it doesn't make sense for i-power to maintain a feature that it's not using.

Revision history for this message
Charles Kerr (charlesk) wrote :

In the 50 minutes since my last comment, it looks like Design has decided to restore the slider to indicator-power after all -- this MR brought the discussion to a head. :)

After this MR goes through as an interim step, I'll revert the previous code that disabled the slider.

248. By Alberto Aguirre

Remove references to powerd since the brightness interface is now provided by Unity.Screen

249. By Alberto Aguirre

Remove powerd reference in message

250. By Alberto Aguirre

Add powerd and unity-system-compositor to Depends

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
251. By Alberto Aguirre

Add 1.11 as allowed version for lcov

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Iain Lane (laney) wrote :

Cheers. It looks okay to me now (haven't tested though).

Just one thing. Could you version the u-s-c dependency to (>= the-one-which-introduced-this-interface)?

review: Approve
252. By Alberto Aguirre

Specify required unity-system-compositor version

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Lars Karlitski (larsu) wrote :

I would have preferred to rename the functions in a backend-agnostic way, but I won't block on that.

Thanks for the patch!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/control'
--- debian/control 2014-04-15 13:16:44 +0000
+++ debian/control 2014-06-20 19:57:33 +0000
@@ -24,6 +24,8 @@
24Depends: ${shlibs:Depends},24Depends: ${shlibs:Depends},
25 ${misc:Depends},25 ${misc:Depends},
26 upower,26 upower,
27 powerd,
28 unity-system-compositor (>= 0.0.4),
27Recommends: unity-control-center | gnome-control-center (>= 3.1) | ubuntu-system-settings | xfce4-power-manager,29Recommends: unity-control-center | gnome-control-center (>= 3.1) | ubuntu-system-settings | xfce4-power-manager,
28 indicator-applet (>= 0.2) | indicator-renderer,30 indicator-applet (>= 0.2) | indicator-renderer,
29Description: Indicator showing power state.31Description: Indicator showing power state.
3032
=== modified file 'm4/gcov.m4'
--- m4/gcov.m4 2013-12-03 14:00:14 +0000
+++ m4/gcov.m4 2014-06-20 19:57:33 +0000
@@ -30,7 +30,7 @@
30 AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])30 AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
31 fi31 fi
3232
33 lcov_version_list="1.6 1.7 1.8 1.9 1.10"33 lcov_version_list="1.6 1.7 1.8 1.9 1.10 1.11"
34 AC_CHECK_PROG(LCOV, lcov, lcov)34 AC_CHECK_PROG(LCOV, lcov, lcov)
35 AC_CHECK_PROG(GENHTML, genhtml, genhtml)35 AC_CHECK_PROG(GENHTML, genhtml, genhtml)
3636
3737
=== modified file 'src/Makefile.am'
--- src/Makefile.am 2014-03-03 09:18:05 +0000
+++ src/Makefile.am 2014-06-20 19:57:33 +0000
@@ -46,8 +46,8 @@
46libindicatorpower_service_a_SOURCES = \46libindicatorpower_service_a_SOURCES = \
47 ib-brightness-control.c \47 ib-brightness-control.c \
48 ib-brightness-control.h \48 ib-brightness-control.h \
49 ib-brightness-powerd-control.c \49 ib-brightness-uscreen-control.c \
50 ib-brightness-powerd-control.h \50 ib-brightness-uscreen-control.h \
51 device-provider.c \51 device-provider.c \
52 device-provider.h \52 device-provider.h \
53 device.c \53 device.c \
5454
=== renamed file 'src/ib-brightness-powerd-control.c' => 'src/ib-brightness-uscreen-control.c'
--- src/ib-brightness-powerd-control.c 2014-04-28 23:15:18 +0000
+++ src/ib-brightness-uscreen-control.c 2014-06-20 19:57:33 +0000
@@ -17,19 +17,20 @@
17 * Yuan-Chen Cheng <yc.cheng@canonical.com>17 * Yuan-Chen Cheng <yc.cheng@canonical.com>
18 */18 */
1919
20#include "ib-brightness-powerd-control.h"20#include "ib-brightness-uscreen-control.h"
2121
22static gboolean getBrightnessParams(GDBusProxy* powerd_proxy, int *dim, int *min,22static gboolean getBrightnessParams(GDBusProxy* powerd_proxy, int *dim, int *min,
23 int *max, int *dflt, gboolean *ab_supported);23 int *max, int *dflt, gboolean *ab_supported);
2424
25GDBusProxy*25GDBusProxy*
26powerd_get_proxy(brightness_params_t *params)26uscreen_get_proxy(brightness_params_t *params)
27{27{
28 GError *error = NULL;28 GError *error = NULL;
29 gboolean ret;29 gboolean ret;
3030
31 g_return_val_if_fail (params != NULL, NULL);31 g_return_val_if_fail (params != NULL, NULL);
3232
33 /* For now we still need to obtain the brigthness params from powerd */
33 GDBusProxy* powerd_proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,34 GDBusProxy* powerd_proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
34 G_DBUS_PROXY_FLAGS_NONE,35 G_DBUS_PROXY_FLAGS_NONE,
35 NULL,36 NULL,
@@ -55,8 +56,26 @@
55 g_object_unref (powerd_proxy);56 g_object_unref (powerd_proxy);
56 return NULL;57 return NULL;
57 }58 }
58 59
59 return powerd_proxy;60 g_clear_object (&powerd_proxy);
61
62 GDBusProxy* uscreen_proxy = g_dbus_proxy_new_for_bus_sync(G_BUS_TYPE_SYSTEM,
63 G_DBUS_PROXY_FLAGS_NONE,
64 NULL,
65 "com.canonical.Unity.Screen",
66 "/com/canonical/Unity/Screen",
67 "com.canonical.Unity.Screen",
68 NULL,
69 &error);
70
71 if (error != NULL)
72 {
73 g_debug ("could not connect to unity screen: %s", error->message);
74 g_error_free (error);
75 return NULL;
76 }
77
78 return uscreen_proxy;
60}79}
6180
6281
@@ -89,18 +108,18 @@
89 return TRUE;108 return TRUE;
90}109}
91110
92static gboolean setUserBrightness(GDBusProxy* powerd_proxy, GCancellable *gcancel, int brightness)111static gboolean setUserBrightness(GDBusProxy* uscreen_proxy, GCancellable *gcancel, int brightness)
93{112{
94 GVariant *ret = NULL;113 GVariant *ret = NULL;
95 GError *error = NULL;114 GError *error = NULL;
96115
97 ret = g_dbus_proxy_call_sync(powerd_proxy,116 ret = g_dbus_proxy_call_sync(uscreen_proxy,
98 "setUserBrightness",117 "setUserBrightness",
99 g_variant_new("(i)", brightness),118 g_variant_new("(i)", brightness),
100 G_DBUS_CALL_FLAGS_NONE,119 G_DBUS_CALL_FLAGS_NONE,
101 -1, gcancel, &error);120 -1, gcancel, &error);
102 if (!ret) {121 if (!ret) {
103 g_warning("setUserBrightness via powerd failed: %s", error->message);122 g_warning("setUserBrightness via unity.screen failed: %s", error->message);
104 g_error_free(error);123 g_error_free(error);
105 return FALSE;124 return FALSE;
106 } else {125 } else {
@@ -109,9 +128,9 @@
109 }128 }
110}129}
111130
112struct _IbBrightnessPowerdControl131struct _IbBrightnessUScreenControl
113{132{
114 GDBusProxy *powerd_proxy;133 GDBusProxy *uscreen_proxy;
115 GCancellable *gcancel;134 GCancellable *gcancel;
116135
117 int dim;136 int dim;
@@ -123,13 +142,13 @@
123 int current;142 int current;
124};143};
125144
126IbBrightnessPowerdControl*145IbBrightnessUscreenControl*
127ib_brightness_powerd_control_new (GDBusProxy* powerd_proxy, brightness_params_t params)146ib_brightness_uscreen_control_new (GDBusProxy* uscreen_proxy, brightness_params_t params)
128{147{
129 IbBrightnessPowerdControl *control;148 IbBrightnessUscreenControl *control;
130149
131 control = g_new0 (IbBrightnessPowerdControl, 1);150 control = g_new0 (IbBrightnessUscreenControl, 1);
132 control->powerd_proxy = powerd_proxy;151 control->uscreen_proxy = uscreen_proxy;
133 control->gcancel = g_cancellable_new();152 control->gcancel = g_cancellable_new();
134153
135 control->dim = params.dim;154 control->dim = params.dim;
@@ -139,21 +158,21 @@
139 control->ab_supported = params.ab_supported;158 control->ab_supported = params.ab_supported;
140159
141 // XXX: set the brightness value is the only way to sync the brightness value with160 // XXX: set the brightness value is the only way to sync the brightness value with
142 // powerd, and we should set the user prefered / last set brightness value upon startup.161 // unity.screen, and we should set the user prefered / last set brightness value upon startup.
143 // Before we have code to store last set brightness value or other mechanism, we set162 // Before we have code to store last set brightness value or other mechanism, we set
144 // it to default brightness that powerd proposed.163 // it to default brightness that powerd proposed.
145 ib_brightness_powerd_control_set_value(control, control->dflt);164 ib_brightness_uscreen_control_set_value(control, control->dflt);
146165
147 return control;166 return control;
148}167}
149168
150void169void
151ib_brightness_powerd_control_set_value (IbBrightnessPowerdControl* self, gint value)170ib_brightness_uscreen_control_set_value (IbBrightnessUscreenControl* self, gint value)
152{171{
153 gboolean ret;172 gboolean ret;
154173
155 value = CLAMP(value, self->min, self->max);174 value = CLAMP(value, self->min, self->max);
156 ret = setUserBrightness(self->powerd_proxy, self->gcancel, value);175 ret = setUserBrightness(self->uscreen_proxy, self->gcancel, value);
157 if (ret)176 if (ret)
158 {177 {
159 self->current = value;178 self->current = value;
@@ -161,23 +180,23 @@
161}180}
162181
163gint182gint
164ib_brightness_powerd_control_get_value (IbBrightnessPowerdControl* self)183ib_brightness_uscreen_control_get_value (IbBrightnessUscreenControl* self)
165{184{
166 return self->current;185 return self->current;
167}186}
168187
169gint188gint
170ib_brightness_powerd_control_get_max_value (IbBrightnessPowerdControl* self)189ib_brightness_uscreen_control_get_max_value (IbBrightnessUscreenControl* self)
171{190{
172 return self->max;191 return self->max;
173}192}
174193
175void194void
176ib_brightness_powerd_control_free (IbBrightnessPowerdControl *self)195ib_brightness_uscreen_control_free (IbBrightnessUscreenControl *self)
177{196{
178 g_cancellable_cancel (self->gcancel);197 g_cancellable_cancel (self->gcancel);
179 g_object_unref (self->gcancel);198 g_object_unref (self->gcancel);
180 g_object_unref (self->powerd_proxy);199 g_object_unref (self->uscreen_proxy);
181 g_free (self);200 g_free (self);
182}201}
183202
184203
=== renamed file 'src/ib-brightness-powerd-control.h' => 'src/ib-brightness-uscreen-control.h'
--- src/ib-brightness-powerd-control.h 2014-04-28 23:15:18 +0000
+++ src/ib-brightness-uscreen-control.h 2014-06-20 19:57:33 +0000
@@ -17,8 +17,8 @@
17 * Y.C Cheng <yc.cheng@canonical.com>17 * Y.C Cheng <yc.cheng@canonical.com>
18 */18 */
1919
20#ifndef __IB_BRIGHTNESS_POWERD_CONTROL_H__20#ifndef __IB_BRIGHTNESS_USCREEN_CONTROL_H__
21#define __IB_BRIGHTNESS_POWERD_CONTROL_H__21#define __IB_BRIGHTNESS_USCREEN_CONTROL_H__
2222
23#include <gio/gio.h>23#include <gio/gio.h>
2424
@@ -30,14 +30,14 @@
30 gboolean ab_supported;30 gboolean ab_supported;
31} brightness_params_t;31} brightness_params_t;
3232
33GDBusProxy* powerd_get_proxy(brightness_params_t *);33GDBusProxy* uscreen_get_proxy(brightness_params_t *);
3434
35typedef struct _IbBrightnessPowerdControl IbBrightnessPowerdControl;35typedef struct _IbBrightnessUScreenControl IbBrightnessUscreenControl;
3636
37IbBrightnessPowerdControl* ib_brightness_powerd_control_new (GDBusProxy* powerd_proxy, brightness_params_t params);37IbBrightnessUscreenControl* ib_brightness_uscreen_control_new (GDBusProxy* uscreen_proxy, brightness_params_t params);
38void ib_brightness_powerd_control_set_value (IbBrightnessPowerdControl* self, gint value);38void ib_brightness_uscreen_control_set_value (IbBrightnessUscreenControl* self, gint value);
39gint ib_brightness_powerd_control_get_value (IbBrightnessPowerdControl* self);39gint ib_brightness_uscreen_control_get_value (IbBrightnessUscreenControl* self);
40gint ib_brightness_powerd_control_get_max_value (IbBrightnessPowerdControl* self);40gint ib_brightness_uscreen_control_get_max_value (IbBrightnessUscreenControl* self);
41void ib_brightness_powerd_control_free (IbBrightnessPowerdControl *self);41void ib_brightness_uscreen_control_free (IbBrightnessUscreenControl *self);
4242
43#endif43#endif
4444
=== modified file 'src/service.c'
--- src/service.c 2014-04-15 13:08:08 +0000
+++ src/service.c 2014-06-20 19:57:33 +0000
@@ -27,7 +27,7 @@
27#include "device.h"27#include "device.h"
28#include "device-provider.h"28#include "device-provider.h"
29#include "ib-brightness-control.h"29#include "ib-brightness-control.h"
30#include "ib-brightness-powerd-control.h"30#include "ib-brightness-uscreen-control.h"
31#include "service.h"31#include "service.h"
3232
33#define BUS_NAME "com.canonical.indicator.power"33#define BUS_NAME "com.canonical.indicator.power"
@@ -105,7 +105,7 @@
105 GSettings * settings;105 GSettings * settings;
106106
107 IbBrightnessControl * brightness_control;107 IbBrightnessControl * brightness_control;
108 IbBrightnessPowerdControl * brightness_powerd_control;108 IbBrightnessUscreenControl * brightness_uscreen_control;
109109
110 guint own_id;110 guint own_id;
111 guint actions_export_id;111 guint actions_export_id;
@@ -467,9 +467,9 @@
467 {467 {
468 max = ib_brightness_control_get_max_value (self->priv->brightness_control);468 max = ib_brightness_control_get_max_value (self->priv->brightness_control);
469 }469 }
470 else if (p->brightness_powerd_control)470 else if (p->brightness_uscreen_control)
471 {471 {
472 max = ib_brightness_powerd_control_get_max_value (self->priv->brightness_powerd_control);472 max = ib_brightness_uscreen_control_get_max_value (self->priv->brightness_uscreen_control);
473 }473 }
474 *low = max * 0.05; /* 5% minimum -- don't let the screen go completely dark */474 *low = max * 0.05; /* 5% minimum -- don't let the screen go completely dark */
475 *high = max;475 *high = max;
@@ -500,9 +500,9 @@
500 {500 {
501 brightness = ib_brightness_control_get_value (p->brightness_control);501 brightness = ib_brightness_control_get_value (p->brightness_control);
502 }502 }
503 else if (p->brightness_powerd_control)503 else if (p->brightness_uscreen_control)
504 {504 {
505 brightness = ib_brightness_powerd_control_get_value (p->brightness_powerd_control);505 brightness = ib_brightness_uscreen_control_get_value (p->brightness_uscreen_control);
506 }506 }
507 return g_variant_new_double (brightness_to_percentage (self, brightness));507 return g_variant_new_double (brightness_to_percentage (self, brightness));
508}508}
@@ -527,9 +527,9 @@
527 {527 {
528 ib_brightness_control_set_value (self->priv->brightness_control, brightness);528 ib_brightness_control_set_value (self->priv->brightness_control, brightness);
529 }529 }
530 else if (self->priv->brightness_powerd_control)530 else if (self->priv->brightness_uscreen_control)
531 {531 {
532 ib_brightness_powerd_control_set_value (self->priv->brightness_powerd_control, brightness);532 ib_brightness_uscreen_control_set_value (self->priv->brightness_uscreen_control, brightness);
533 }533 }
534534
535 update_brightness_action_state (self);535 update_brightness_action_state (self);
@@ -1024,7 +1024,7 @@
10241024
1025 // g_clear_pointer has NULL check inside.1025 // g_clear_pointer has NULL check inside.
1026 g_clear_pointer (&p->brightness_control, ib_brightness_control_free);1026 g_clear_pointer (&p->brightness_control, ib_brightness_control_free);
1027 g_clear_pointer (&p->brightness_powerd_control, ib_brightness_powerd_control_free);1027 g_clear_pointer (&p->brightness_uscreen_control, ib_brightness_uscreen_control_free);
10281028
1029 indicator_power_service_set_device_provider (self, NULL);1029 indicator_power_service_set_device_provider (self, NULL);
10301030
@@ -1038,8 +1038,8 @@
1038static void1038static void
1039indicator_power_service_init (IndicatorPowerService * self)1039indicator_power_service_init (IndicatorPowerService * self)
1040{1040{
1041 GDBusProxy *powerd_proxy;1041 GDBusProxy *uscreen_proxy;
1042 brightness_params_t powerd_brightness_params;1042 brightness_params_t brightness_params;
1043 priv_t * p = G_TYPE_INSTANCE_GET_PRIVATE (self,1043 priv_t * p = G_TYPE_INSTANCE_GET_PRIVATE (self,
1044 INDICATOR_TYPE_POWER_SERVICE,1044 INDICATOR_TYPE_POWER_SERVICE,
1045 IndicatorPowerServicePrivate);1045 IndicatorPowerServicePrivate);
@@ -1049,10 +1049,10 @@
10491049
1050 p->settings = g_settings_new ("com.canonical.indicator.power");1050 p->settings = g_settings_new ("com.canonical.indicator.power");
10511051
1052 powerd_proxy = powerd_get_proxy(&powerd_brightness_params);1052 uscreen_proxy = uscreen_get_proxy(&brightness_params);
1053 if (powerd_proxy != NULL)1053 if (uscreen_proxy != NULL)
1054 {1054 {
1055 p->brightness_powerd_control = ib_brightness_powerd_control_new(powerd_proxy, powerd_brightness_params);1055 p->brightness_uscreen_control = ib_brightness_uscreen_control_new(uscreen_proxy, brightness_params);
1056 }1056 }
1057 else1057 else
1058 {1058 {

Subscribers

People subscribed via source and target branches