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 /firmware | |
parent | cf478758dd58ae68f53420c7425b1a08b4f93fe0 (diff) | |
download | rockbox-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
Diffstat (limited to 'firmware')
-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 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; |