diff options
| author | Karl Kurbjun <kkurbjun@gmail.com> | 2007-05-08 03:57:42 +0000 |
|---|---|---|
| committer | Karl Kurbjun <kkurbjun@gmail.com> | 2007-05-08 03:57:42 +0000 |
| commit | 7ef0af07f17a51ed814285847f55d8d12bef67c7 (patch) | |
| tree | 36684d330b0bc2ec50bc15df59ce50b28eef2763 | |
| parent | cf478758dd58ae68f53420c7425b1a08b4f93fe0 (diff) | |
| download | rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.zip rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.tar.gz rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.tar.bz2 rockbox-7ef0af07f17a51ed814285847f55d8d12bef67c7.tar.xz | |
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.c | 44 |
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 a8f8ef5..7e143fe 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; |