X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fdrivers%2Fao_lco_bits.c;h=7dd63615dcce880fcef42b87c985abd457ca23de;hb=5506b6c1f75d639e2d952213a53bc9ee34e5a79c;hp=8e9ea09bf3b63ae32fcd69025dc24572623baad0;hpb=7ac9267b156d7bb6e942dd630a9ba142ba0c7a00;p=fw%2Faltos diff --git a/src/drivers/ao_lco_bits.c b/src/drivers/ao_lco_bits.c index 8e9ea09b..7dd63615 100644 --- a/src/drivers/ao_lco_bits.c +++ b/src/drivers/ao_lco_bits.c @@ -254,15 +254,31 @@ ao_lco_step_pad(int8_t dir) #ifdef AO_LCO_HAS_CONTRAST if (ao_lco_box == AO_LCO_CONTRAST) { - int16_t contrast = ao_lco_get_contrast(); + int32_t contrast = ao_lco_get_contrast(); - contrast += (int16_t) (dir * AO_LCO_CONTRAST_STEP); + contrast = (contrast + AO_LCO_CONTRAST_STEP - 1) / AO_LCO_CONTRAST_STEP; + contrast += dir; + contrast *= AO_LCO_CONTRAST_STEP; if (contrast < AO_LCO_MIN_CONTRAST) contrast = AO_LCO_MIN_CONTRAST; if (contrast > AO_LCO_MAX_CONTRAST) contrast = AO_LCO_MAX_CONTRAST; ao_lco_set_contrast(contrast); } +#endif +#ifdef AO_LCO_HAS_BACKLIGHT + if (ao_lco_box == AO_LCO_BACKLIGHT) { + int32_t backlight = ao_lco_get_backlight(); + + backlight = (backlight + AO_LCO_BACKLIGHT_STEP - 1) / AO_LCO_BACKLIGHT_STEP; + backlight += dir; + backlight *= AO_LCO_BACKLIGHT_STEP; + if (backlight < AO_LCO_MIN_BACKLIGHT) + backlight = AO_LCO_MIN_BACKLIGHT; + if (backlight > AO_LCO_MAX_BACKLIGHT) + backlight = AO_LCO_MAX_BACKLIGHT; + ao_lco_set_backlight(backlight); + } #endif new_pad = (int16_t) ao_lco_pad; do { @@ -297,11 +313,7 @@ ao_lco_step_box(int8_t dir) new_box += dir; if (new_box > ao_lco_max_box) new_box = AO_LCO_BOX_FIRST; -#ifdef AO_LCO_HAS_CONTRAST - else if (new_box < AO_LCO_CONTRAST) -#else - else if (new_box < 0) -#endif + else if (new_box < AO_LCO_BOX_FIRST) new_box = ao_lco_max_box; if (new_box == ao_lco_box) break;