summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Hughes <richard@hughsie.com>2017-07-30 16:38:30 +0100
committerRichard Hughes <richard@hughsie.com>2017-07-31 12:00:57 +0100
commit8d45f440bb0809615e7cf1ad6cba3a0484041b38 (patch)
tree7af7b4365405a70537134d0caba0afd8b637cb4b
parent15f6125a6f0446e71da68a26f9683dbf353107bb (diff)
downloadcolord-8d45f440bb0809615e7cf1ad6cba3a0484041b38.tar.gz
huey: Do not spin the LEDs when the sensor is embedded
..and thus has no LEDs to flash.
-rw-r--r--src/cd-sensor.c7
-rw-r--r--src/cd-sensor.h1
-rw-r--r--src/sensors/huey/cd-sensor-huey.c18
3 files changed, 18 insertions, 8 deletions
diff --git a/src/cd-sensor.c b/src/cd-sensor.c
index 347c5f7..8b5bd80 100644
--- a/src/cd-sensor.c
+++ b/src/cd-sensor.c
@@ -273,6 +273,13 @@ cd_sensor_get_kind (CdSensor *sensor)
return priv->kind;
}
+gboolean
+cd_sensor_get_is_embedded (CdSensor *sensor)
+{
+ CdSensorPrivate *priv = GET_PRIVATE (sensor);
+ return priv->embedded;
+}
+
/**
* cd_sensor_load:
* @sensor: a valid #CdSensor instance
diff --git a/src/cd-sensor.h b/src/cd-sensor.h
index b01795b..9c66339 100644
--- a/src/cd-sensor.h
+++ b/src/cd-sensor.h
@@ -80,6 +80,7 @@ void cd_sensor_button_pressed (CdSensor *sensor);
gboolean cd_sensor_dump (CdSensor *sensor,
GString *data,
GError **error);
+gboolean cd_sensor_get_is_embedded (CdSensor *sensor);
CdSensorKind cd_sensor_get_kind (CdSensor *sensor);
void cd_sensor_set_kind (CdSensor *sensor,
CdSensorKind kind);
diff --git a/src/sensors/huey/cd-sensor-huey.c b/src/sensors/huey/cd-sensor-huey.c
index 9a8ff87..b68d356 100644
--- a/src/sensors/huey/cd-sensor-huey.c
+++ b/src/sensors/huey/cd-sensor-huey.c
@@ -188,15 +188,17 @@ cd_sensor_huey_lock_thread_cb (GTask *task,
}
/* spin the LEDs */
- for (i = 0; spin_leds[i] != 0xff; i++) {
- if (!huey_device_set_leds (priv->device, spin_leds[i], &error)) {
- g_task_return_new_error (task,
- CD_SENSOR_ERROR,
- CD_SENSOR_ERROR_INTERNAL,
- "%s", error->message);
- goto out;
+ if (!cd_sensor_get_is_embedded (sensor)) {
+ for (i = 0; spin_leds[i] != 0xff; i++) {
+ if (!huey_device_set_leds (priv->device, spin_leds[i], &error)) {
+ g_task_return_new_error (task,
+ CD_SENSOR_ERROR,
+ CD_SENSOR_ERROR_INTERNAL,
+ "%s", error->message);
+ goto out;
+ }
+ g_usleep (50000);
}
- g_usleep (50000);
}
/* success */