summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 03:57:42 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 03:57:42 +0000
commit7ef0af07f17a51ed814285847f55d8d12bef67c7 (patch)
tree36684d330b0bc2ec50bc15df59ce50b28eef2763
parentcf478758dd58ae68f53420c7425b1a08b4f93fe0 (diff)
downloadrockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.tar.gz
rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.zip
Faster/Smoother fading on the Gigabeat
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13354 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c44
1 files changed, 26 insertions, 18 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
index a8f8ef5d85..7e143fee8e 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
@@ -188,17 +188,19 @@ static void led_control_service(void)
case BACKLIGHT_CONTROL_FADE:
sc606_changed=true;
sc606regCONFval |= 0x03;
- /* The SC606 LED driver can set the brightness in 64 steps */
- if(backlight_target==sc606regAval)
- if(sc606regAval)
+ if(backlight_target>sc606regAval)
+ {
+ sc606regAval++;
+ if(backlight_target==sc606regAval)
backlight_control = BACKLIGHT_CONTROL_ON;
- else
- backlight_control = BACKLIGHT_CONTROL_OFF;
+ }
else
- if(backlight_target>sc606regAval)
- sc606regAval++;
- else
- sc606regAval--;
+ {
+ sc606regAval--;
+ if(backlight_target==sc606regAval)
+ backlight_control = BACKLIGHT_CONTROL_OFF;
+ }
+
break;
default:
break;
@@ -222,16 +224,19 @@ static void led_control_service(void)
case BUTTONLIGHT_CONTROL_FADE:
sc606_changed=true;
sc606regCONFval |= 0x3C;
- if(buttonlight_target==sc606regBval)
- if(sc606regBval)
+ if(buttonlight_target>sc606regBval)
+ {
+ sc606regCval=++sc606regBval;
+ if(buttonlight_target==sc606regBval)
buttonlight_control = BUTTONLIGHT_CONTROL_ON;
- else
- buttonlight_control = BUTTONLIGHT_CONTROL_OFF;
+ }
else
- if(buttonlight_target>sc606regBval)
- sc606regCval=++sc606regBval;
- else
- sc606regCval=--sc606regBval;
+ {
+ sc606regCval=--sc606regBval;
+ if(buttonlight_target==sc606regBval)
+ buttonlight_control = BUTTONLIGHT_CONTROL_OFF;
+ }
+
break;
default:
break;
@@ -261,7 +266,10 @@ static void led_control_service(void)
case SC606_CONTROL_CONF:
sc606_write(SC606_REG_CONF , sc606regCONFval);
sc606_changed=false;
- sc606_control=SC606_CONTROL_IDLE;
+ if(backlight_control != BACKLIGHT_CONTROL_IDLE && buttonlight_control != BUTTONLIGHT_CONTROL_IDLE)
+ sc606_control=SC606_CONTROL_A12;
+ else
+ sc606_control=SC606_CONTROL_IDLE;
break;
default:
sc606_control=SC606_CONTROL_A12;