[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