Skip to content

Commit 638aa9d

Browse files
committed
Fix re-acquisition of sensor proxy for restarts, log failures
1 parent 0416c58 commit 638aa9d

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

plugins/power/csd-power-manager.c

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3875,8 +3875,11 @@ iio_proxy_changed (CsdPowerManager *manager)
38753875
gdouble current_brightness;
38763876

38773877
current_brightness = (gdouble) backlight_get_percentage (manager, NULL);
3878-
if (current_brightness < 0.0)
3878+
if (current_brightness < 0.0) {
3879+
g_warning ("Could not read current backlight level for ambient baseline, "
3880+
"defaulting to 50%%");
38793881
current_brightness = 50.0;
3882+
}
38803883

38813884
g_debug ("First sensor reading %f, adopting current brightness %.1f%% as baseline",
38823885
sensor_value, current_brightness);
@@ -4059,6 +4062,8 @@ iio_proxy_appeared_cb (GDBusConnection *connection,
40594062
gpointer user_data)
40604063
{
40614064
CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
4065+
GError *error = NULL;
4066+
40624067
manager->priv->iio_proxy =
40634068
g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM,
40644069
0,
@@ -4067,7 +4072,14 @@ iio_proxy_appeared_cb (GDBusConnection *connection,
40674072
"/net/hadess/SensorProxy",
40684073
"net.hadess.SensorProxy",
40694074
NULL,
4070-
NULL);
4075+
&error);
4076+
if (manager->priv->iio_proxy == NULL) {
4077+
g_warning ("Failed to create iio-sensor-proxy D-Bus proxy: %s",
4078+
error->message);
4079+
g_error_free (error);
4080+
return;
4081+
}
4082+
40714083
iio_proxy_update_ambient_light_supported (manager);
40724084
iio_proxy_maybe_claim_light (manager);
40734085
}
@@ -4078,6 +4090,13 @@ iio_proxy_vanished_cb (GDBusConnection *connection,
40784090
gpointer user_data)
40794091
{
40804092
CsdPowerManager *manager = CSD_POWER_MANAGER (user_data);
4093+
4094+
ambient_cancel_timers (manager);
4095+
manager->priv->ambient_state = AMBIENT_STATE_IDLE;
4096+
manager->priv->ambient_baseline_sensor = -1.0;
4097+
manager->priv->ambient_brightness_baseline = -1.0;
4098+
manager->priv->light_claimed = FALSE;
4099+
40814100
g_clear_object (&manager->priv->iio_proxy);
40824101
iio_proxy_update_ambient_light_supported (manager);
40834102
}
@@ -4649,15 +4668,15 @@ csd_power_manager_stop (CsdPowerManager *manager)
46494668
{
46504669
g_debug ("Stopping power manager");
46514670

4671+
iio_proxy_claim_light (manager, FALSE);
4672+
46524673
if (manager->priv->bus_cancellable != NULL) {
46534674
g_cancellable_cancel (manager->priv->bus_cancellable);
46544675
g_object_unref (manager->priv->bus_cancellable);
46554676
manager->priv->bus_cancellable = NULL;
46564677
}
46574678

46584679
kill_lid_close_safety_timer (manager);
4659-
4660-
iio_proxy_claim_light (manager, FALSE);
46614680
ambient_cancel_timers (manager);
46624681
if (manager->priv->iio_proxy_watch_id != 0)
46634682
g_bus_unwatch_name (manager->priv->iio_proxy_watch_id);

0 commit comments

Comments
 (0)