[Merge] lp:~rsalveti/powerd/progressive-brightness into lp:powerd
Jim Hodapp
jim.hodapp at canonical.com
Thu Jan 15 22:20:04 UTC 2015
Review: Needs Fixing code
Minor tweak below.
Diff comments:
> === modified file 'src/backlight.c'
> --- src/backlight.c 2014-08-12 08:52:23 +0000
> +++ src/backlight.c 2015-01-15 21:18:52 +0000
> @@ -26,6 +26,7 @@
> #include <glib-object.h>
> #include <android/hardware/hardware.h>
> #include <android/hardware/lights.h>
> +#include <unistd.h>
>
> #include "powerd-internal.h"
> #include "device-config.h"
> @@ -52,6 +53,10 @@
> int dim_brightness = 10;
> int current_brightness = -1;
>
> +/* Used when setting up brightness */
> +int set_brightness_usleep = 5000;
Use const
> +int set_brightness_step = 2;
Use const
> +
> static int user_brightness;
>
> int powerd_get_brightness(void)
> @@ -64,11 +69,26 @@
> return max_brightness;
> }
>
> +static int set_brightness_hal(int brightness)
> +{
> + struct light_state_t state = { .flashMode = LIGHT_FLASH_NONE,
> + .brightnessMode = BRIGHTNESS_MODE_USER };
> + int ret;
> +
> + /* color is ARGB, docs specifiy that alpha should be 0xff,
> + * although it also instructs callers to ignore it. */
> + state.color = (int)((0xffU << 24) | (brightness << 16) |
> + (brightness << 8) | brightness);
> + ret = light_dev->set_light(light_dev, &state);
> + if (ret != 0)
> + powerd_error("light_dev: failed to set brightness to %i", brightness);
> +
> + return ret;
> +}
> +
> int powerd_set_brightness(int brightness)
> {
> - struct light_state_t state;
> - int scaled_brightness;
> - int ret;
> + int ret, i;
>
> if (!light_dev)
> return -ENODEV;
> @@ -77,25 +97,30 @@
> if (brightness == current_brightness)
> return 0;
>
> - /* Scale brightness to range of 0 to 255 */
> - scaled_brightness = (brightness * 255) / max_brightness;
> - if (scaled_brightness > 255)
> - scaled_brightness = 255;
> -
> - state.flashMode = LIGHT_FLASH_NONE;
> - state.brightnessMode = BRIGHTNESS_MODE_USER;
> - /* color is ARGB, docs specifiy that alpha should be 0xff,
> - * although it also instructs callers to ignore it. */
> - state.color = (int)((0xffU << 24) | (scaled_brightness << 16) |
> - (scaled_brightness << 8) | scaled_brightness);
> -
> - ret = light_dev->set_light(light_dev, &state);
> - if (!ret) {
> - powerd_debug("light_dev: set_light to brightness %i succ", brightness);
> + powerd_debug("light_dev: setting brightness to %i", brightness);
> +
> + /* Set brightness in a progressive way, per step */
> + if (brightness > current_brightness) {
> + for (i = current_brightness; i < brightness;
> + i = i + set_brightness_step) {
> + set_brightness_hal(i);
> + usleep(set_brightness_usleep);
> + }
> + } else {
> + for (i = current_brightness; i > brightness;
> + i = i - set_brightness_step) {
> + set_brightness_hal(i);
> + usleep(set_brightness_usleep);
> + }
> + }
> +
> + /* Now set the final value (only care about error here as if
> + * the last set works, we're good) */
> + ret = set_brightness_hal(brightness);
> + if (!ret)
> current_brightness = brightness;
> - } else {
> - powerd_debug("light_dev: set_light to brightness %i failed", brightness);
> - }
> + else
> + powerd_error("light_dev: failed to set brightness to %i", brightness);
>
> return ret;
> }
>
--
https://code.launchpad.net/~rsalveti/powerd/progressive-brightness/+merge/246651
Your team Ubuntu Phablet Team is subscribed to branch lp:powerd.
More information about the Ubuntu-reviews
mailing list