summaryrefslogtreecommitdiff
path: root/firmware
diff options
context:
space:
mode:
authorKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 05:47:36 +0000
committerKarl Kurbjun <kkurbjun@gmail.com>2007-05-08 05:47:36 +0000
commit830576bb0b08dca0f5e9a90bf0526505b1c34a0a (patch)
tree9d793b00c192fb0b78b9b6280391c8c6fad69a2f /firmware
parent7ef0af07f17a51ed814285847f55d8d12bef67c7 (diff)
downloadrockbox-830576bb0b08dca0f5e9a90bf0526505b1c34a0a.tar.gz
rockbox-830576bb0b08dca0f5e9a90bf0526505b1c34a0a.zip
Few more code cleanups to the button light work. This reduces the flickering of the backlight when a button is held (fewer sc606 writes).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13355 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c25
1 files changed, 14 insertions, 11 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 7e143fee8e..7b7e8518ec 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/backlight-meg-fx.c
@@ -55,16 +55,9 @@ static enum sc606_states
55enum buttonlight_states 55enum buttonlight_states
56{ 56{
57 BUTTONLIGHT_CONTROL_IDLE, 57 BUTTONLIGHT_CONTROL_IDLE,
58
59 /* turn button lights off */
60 BUTTONLIGHT_CONTROL_OFF, 58 BUTTONLIGHT_CONTROL_OFF,
61
62 /* turns button lights on to setting */
63 BUTTONLIGHT_CONTROL_ON, 59 BUTTONLIGHT_CONTROL_ON,
64
65 /* buttonlights follow the backlight settings */
66 BUTTONLIGHT_CONTROL_FADE, 60 BUTTONLIGHT_CONTROL_FADE,
67
68} buttonlight_control; 61} buttonlight_control;
69 62
70static unsigned short buttonlight_trigger_now; 63static unsigned short buttonlight_trigger_now;
@@ -134,8 +127,6 @@ void __buttonlight_mode(enum buttonlight_mode mode)
134 default: 127 default:
135 return; /* unknown mode */ 128 return; /* unknown mode */
136 } 129 }
137
138
139} 130}
140 131
141/* 132/*
@@ -162,7 +153,7 @@ static void led_control_service(void)
162 sc606regCONFval=3; 153 sc606regCONFval=3;
163 154
164 static bool sc606_changed=true; 155 static bool sc606_changed=true;
165 156
166 if(sc606_changed==false) 157 if(sc606_changed==false)
167 { 158 {
168 switch (backlight_control) 159 switch (backlight_control)
@@ -186,6 +177,12 @@ static void led_control_service(void)
186 backlight_control = BACKLIGHT_CONTROL_ON; 177 backlight_control = BACKLIGHT_CONTROL_ON;
187 break; 178 break;
188 case BACKLIGHT_CONTROL_FADE: 179 case BACKLIGHT_CONTROL_FADE:
180 /* Was this mode set while the backlight is already on/off? */
181 if(backlight_target==sc606regAval)
182 {
183 backlight_control = BACKLIGHT_CONTROL_IDLE;
184 break;
185 }
189 sc606_changed=true; 186 sc606_changed=true;
190 sc606regCONFval |= 0x03; 187 sc606regCONFval |= 0x03;
191 if(backlight_target>sc606regAval) 188 if(backlight_target>sc606regAval)
@@ -222,6 +219,12 @@ static void led_control_service(void)
222 buttonlight_control=BUTTONLIGHT_CONTROL_IDLE; 219 buttonlight_control=BUTTONLIGHT_CONTROL_IDLE;
223 break; 220 break;
224 case BUTTONLIGHT_CONTROL_FADE: 221 case BUTTONLIGHT_CONTROL_FADE:
222 /* Was this mode set while the button light is already on/off? */
223 if(buttonlight_target==sc606regBval)
224 {
225 buttonlight_control=BUTTONLIGHT_CONTROL_IDLE;
226 break;
227 }
225 sc606_changed=true; 228 sc606_changed=true;
226 sc606regCONFval |= 0x3C; 229 sc606regCONFval |= 0x3C;
227 if(buttonlight_target>sc606regBval) 230 if(buttonlight_target>sc606regBval)
@@ -275,7 +278,7 @@ static void led_control_service(void)
275 sc606_control=SC606_CONTROL_A12; 278 sc606_control=SC606_CONTROL_A12;
276 break; 279 break;
277 } 280 }
278 281
279 if(sc606regCONFval&0x03) 282 if(sc606regCONFval&0x03)
280 lcd_enable(true); 283 lcd_enable(true);
281 else 284 else