diff options
author | Teruaki Kawashima <teru@rockbox.org> | 2010-11-06 13:40:09 +0000 |
---|---|---|
committer | Teruaki Kawashima <teru@rockbox.org> | 2010-11-06 13:40:09 +0000 |
commit | 781f05e40d987941e3ac374ea29083a4570c8394 (patch) | |
tree | f00825014d28d06a7c66316ae67526db549cee4d | |
parent | f20582442f6a7c49a217b8e9a75e161e750e4ea6 (diff) | |
download | rockbox-781f05e40d987941e3ac374ea29083a4570c8394.tar.gz rockbox-781f05e40d987941e3ac374ea29083a4570c8394.zip |
FS#11546: Adjustable brightness in lamp plugin
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28519 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/plugins/lamp.c | 119 | ||||
-rw-r--r-- | manual/plugins/lamp.tex | 17 |
2 files changed, 87 insertions, 49 deletions
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c index a3f0f189c7..41cf33f4c9 100644 --- a/apps/plugins/lamp.c +++ b/apps/plugins/lamp.c | |||
@@ -25,42 +25,56 @@ | |||
25 | #include "plugin.h" | 25 | #include "plugin.h" |
26 | #include "lib/helper.h" | 26 | #include "lib/helper.h" |
27 | 27 | ||
28 | 28 | /* variable button definitions. | |
29 | 29 | - only targets with a colour display | |
30 | /* variable button definitions - only targets with a colour display */ | 30 | LAMP_LEFT / LAMP_RIGHT: change the color |
31 | #if defined(HAVE_LCD_COLOR) | 31 | LAMP_NEXT / LAMP_PREV: (optional) change the color |
32 | - only targets which can set brightness | ||
33 | LAMP_UP / LAMP_DOWN: change the brightness | ||
34 | */ | ||
35 | #if defined(HAVE_LCD_COLOR) || defined(HAVE_BACKLIGHT_BRIGHTNESS) | ||
32 | #if (CONFIG_KEYPAD == IRIVER_H300_PAD) | 36 | #if (CONFIG_KEYPAD == IRIVER_H300_PAD) |
33 | # define LAMP_LEFT BUTTON_LEFT | 37 | # define LAMP_LEFT BUTTON_LEFT |
34 | # define LAMP_RIGHT BUTTON_RIGHT | 38 | # define LAMP_RIGHT BUTTON_RIGHT |
39 | # define LAMP_UP BUTTON_UP | ||
40 | # define LAMP_DOWN BUTTON_DOWN | ||
35 | 41 | ||
36 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) | 42 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) |
37 | # define LAMP_LEFT BUTTON_LEFT | 43 | # define LAMP_LEFT BUTTON_LEFT |
38 | # define LAMP_RIGHT BUTTON_RIGHT | 44 | # define LAMP_RIGHT BUTTON_RIGHT |
39 | # define LAMP_NEXT BUTTON_SCROLL_FWD | 45 | # define LAMP_UP BUTTON_SCROLL_FWD |
40 | # define LAMP_PREV BUTTON_SCROLL_BACK | 46 | # define LAMP_DOWN BUTTON_SCROLL_BACK |
41 | 47 | ||
42 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) | 48 | #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD) |
43 | # define LAMP_LEFT BUTTON_LEFT | 49 | # define LAMP_LEFT BUTTON_LEFT |
44 | # define LAMP_RIGHT BUTTON_RIGHT | 50 | # define LAMP_RIGHT BUTTON_RIGHT |
51 | # define LAMP_UP BUTTON_UP | ||
52 | # define LAMP_DOWN BUTTON_DOWN | ||
45 | 53 | ||
46 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) | 54 | #elif (CONFIG_KEYPAD == GIGABEAT_PAD) |
47 | # define LAMP_LEFT BUTTON_LEFT | 55 | # define LAMP_LEFT BUTTON_LEFT |
48 | # define LAMP_RIGHT BUTTON_RIGHT | 56 | # define LAMP_RIGHT BUTTON_RIGHT |
57 | # define LAMP_UP BUTTON_UP | ||
58 | # define LAMP_DOWN BUTTON_DOWN | ||
49 | 59 | ||
50 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) | 60 | #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) |
51 | # define LAMP_LEFT BUTTON_LEFT | 61 | # define LAMP_LEFT BUTTON_LEFT |
52 | # define LAMP_RIGHT BUTTON_RIGHT | 62 | # define LAMP_RIGHT BUTTON_RIGHT |
63 | # define LAMP_UP BUTTON_UP | ||
64 | # define LAMP_DOWN BUTTON_DOWN | ||
53 | 65 | ||
54 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ | 66 | #elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \ |
55 | (CONFIG_KEYPAD == SANSA_FUZE_PAD) | 67 | (CONFIG_KEYPAD == SANSA_FUZE_PAD) |
56 | # define LAMP_LEFT BUTTON_LEFT | 68 | # define LAMP_LEFT BUTTON_LEFT |
57 | # define LAMP_RIGHT BUTTON_RIGHT | 69 | # define LAMP_RIGHT BUTTON_RIGHT |
58 | # define LAMP_NEXT BUTTON_SCROLL_FWD | 70 | # define LAMP_UP BUTTON_SCROLL_FWD |
59 | # define LAMP_PREV BUTTON_SCROLL_BACK | 71 | # define LAMP_DOWN BUTTON_SCROLL_BACK |
60 | 72 | ||
61 | #elif (CONFIG_KEYPAD == SANSA_C200_PAD) | 73 | #elif (CONFIG_KEYPAD == SANSA_C200_PAD) |
62 | # define LAMP_LEFT BUTTON_LEFT | 74 | # define LAMP_LEFT BUTTON_LEFT |
63 | # define LAMP_RIGHT BUTTON_RIGHT | 75 | # define LAMP_RIGHT BUTTON_RIGHT |
76 | # define LAMP_UP BUTTON_UP | ||
77 | # define LAMP_DOWN BUTTON_DOWN | ||
64 | 78 | ||
65 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) | 79 | #elif (CONFIG_KEYPAD == IRIVER_H10_PAD) |
66 | # define LAMP_LEFT BUTTON_LEFT | 80 | # define LAMP_LEFT BUTTON_LEFT |
@@ -81,14 +95,20 @@ | |||
81 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD | 95 | #elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD |
82 | # define LAMP_LEFT BUTTON_LEFT | 96 | # define LAMP_LEFT BUTTON_LEFT |
83 | # define LAMP_RIGHT BUTTON_RIGHT | 97 | # define LAMP_RIGHT BUTTON_RIGHT |
98 | # define LAMP_UP BUTTON_UP | ||
99 | # define LAMP_DOWN BUTTON_DOWN | ||
84 | 100 | ||
85 | #elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD | 101 | #elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD |
86 | # define LAMP_LEFT BUTTON_LEFT | 102 | # define LAMP_LEFT BUTTON_LEFT |
87 | # define LAMP_RIGHT BUTTON_RIGHT | 103 | # define LAMP_RIGHT BUTTON_RIGHT |
104 | # define LAMP_UP BUTTON_UP | ||
105 | # define LAMP_DOWN BUTTON_DOWN | ||
88 | 106 | ||
89 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD | 107 | #elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD |
90 | # define LAMP_LEFT BUTTON_PREV | 108 | # define LAMP_LEFT BUTTON_PREV |
91 | # define LAMP_RIGHT BUTTON_NEXT | 109 | # define LAMP_RIGHT BUTTON_NEXT |
110 | # define LAMP_UP BUTTON_UP | ||
111 | # define LAMP_DOWN BUTTON_DOWN | ||
92 | 112 | ||
93 | #elif CONFIG_KEYPAD == ONDAVX747_PAD | 113 | #elif CONFIG_KEYPAD == ONDAVX747_PAD |
94 | # define LAMP_LEFT BUTTON_VOL_DOWN | 114 | # define LAMP_LEFT BUTTON_VOL_DOWN |
@@ -103,11 +123,17 @@ | |||
103 | #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD | 123 | #elif CONFIG_KEYPAD == PBELL_VIBE500_PAD |
104 | # define LAMP_LEFT BUTTON_PREV | 124 | # define LAMP_LEFT BUTTON_PREV |
105 | # define LAMP_RIGHT BUTTON_NEXT | 125 | # define LAMP_RIGHT BUTTON_NEXT |
126 | # define LAMP_UP BUTTON_UP | ||
127 | # define LAMP_DOWN BUTTON_DOWN | ||
128 | |||
129 | #elif CONFIG_KEYPAD == MPIO_HD200_PAD | ||
130 | # define LAMP_UP BUTTON_REW | ||
131 | # define LAMP_DOWN BUTTON_FF | ||
106 | 132 | ||
107 | #else | 133 | #else |
108 | # error Missing key definitions for this keypad | 134 | # error Missing key definitions for this keypad |
109 | #endif | 135 | #endif |
110 | #endif | 136 | #endif /* HAVE_LCD_COLOR || HAVE_BACKLIGHT_BRIGHTNESS */ |
111 | 137 | ||
112 | #ifdef HAVE_TOUCHSCREEN | 138 | #ifdef HAVE_TOUCHSCREEN |
113 | # ifndef LAMP_LEFT | 139 | # ifndef LAMP_LEFT |
@@ -116,11 +142,11 @@ | |||
116 | # ifndef LAMP_RIGHT | 142 | # ifndef LAMP_RIGHT |
117 | # define LAMP_RIGHT BUTTON_MIDRIGHT | 143 | # define LAMP_RIGHT BUTTON_MIDRIGHT |
118 | # endif | 144 | # endif |
119 | # ifndef LAMP_NEXT | 145 | # ifndef LAMP_UP |
120 | # define LAMP_NEXT BUTTON_TOPMIDDLE | 146 | # define LAMP_UP BUTTON_TOPMIDDLE |
121 | # endif | 147 | # endif |
122 | # ifndef LAMP_PREV | 148 | # ifndef LAMP_DOWN |
123 | # define LAMP_PREV BUTTON_BOTTOMMIDDLE | 149 | # define LAMP_DOWN BUTTON_BOTTOMMIDDLE |
124 | # endif | 150 | # endif |
125 | #endif | 151 | #endif |
126 | 152 | ||
@@ -138,12 +164,12 @@ enum plugin_status plugin_start(const void* parameter) | |||
138 | { | 164 | { |
139 | enum plugin_status status = PLUGIN_OK; | 165 | enum plugin_status status = PLUGIN_OK; |
140 | long button; | 166 | long button; |
167 | bool quit = false; | ||
141 | (void)parameter; | 168 | (void)parameter; |
142 | 169 | ||
143 | #ifdef HAVE_LCD_COLOR | 170 | #ifdef HAVE_LCD_COLOR |
144 | int cs = 0; | 171 | int cs = 0; |
145 | bool quit = false; | 172 | bool update = false; |
146 | bool update = true; | ||
147 | #endif /* HAVE_LCD_COLOR */ | 173 | #endif /* HAVE_LCD_COLOR */ |
148 | 174 | ||
149 | #if LCD_DEPTH > 1 | 175 | #if LCD_DEPTH > 1 |
@@ -153,6 +179,7 @@ enum plugin_status plugin_start(const void* parameter) | |||
153 | #endif | 179 | #endif |
154 | 180 | ||
155 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | 181 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS |
182 | int current_brightness = MAX_BRIGHTNESS_SETTING; | ||
156 | backlight_brightness_set(MAX_BRIGHTNESS_SETTING); | 183 | backlight_brightness_set(MAX_BRIGHTNESS_SETTING); |
157 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | 184 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ |
158 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS | 185 | #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS |
@@ -172,9 +199,12 @@ enum plugin_status plugin_start(const void* parameter) | |||
172 | buttonlight_force_on(); | 199 | buttonlight_force_on(); |
173 | #endif /* HAVE_BUTTON_LIGHT */ | 200 | #endif /* HAVE_BUTTON_LIGHT */ |
174 | 201 | ||
175 | #ifdef HAVE_LCD_COLOR | 202 | rb->lcd_clear_display(); |
203 | rb->lcd_update(); | ||
204 | |||
176 | do | 205 | do |
177 | { | 206 | { |
207 | #ifdef HAVE_LCD_COLOR | ||
178 | if(update) | 208 | if(update) |
179 | { | 209 | { |
180 | if(cs < 0) | 210 | if(cs < 0) |
@@ -186,9 +216,11 @@ enum plugin_status plugin_start(const void* parameter) | |||
186 | rb->lcd_update(); | 216 | rb->lcd_update(); |
187 | update = false; | 217 | update = false; |
188 | } | 218 | } |
219 | #endif /* HAVE_LCD_COLOR */ | ||
189 | 220 | ||
190 | switch((button = rb->button_get_w_tmo(HZ*30))) | 221 | switch((button = rb->button_get_w_tmo(HZ*30))) |
191 | { | 222 | { |
223 | #ifdef HAVE_LCD_COLOR | ||
192 | case LAMP_RIGHT: | 224 | case LAMP_RIGHT: |
193 | #ifdef LAMP_NEXT | 225 | #ifdef LAMP_NEXT |
194 | case LAMP_NEXT: | 226 | case LAMP_NEXT: |
@@ -204,46 +236,39 @@ enum plugin_status plugin_start(const void* parameter) | |||
204 | cs--; | 236 | cs--; |
205 | update = true; | 237 | update = true; |
206 | break; | 238 | break; |
239 | #endif /* HAVE_LCD_COLOR */ | ||
240 | |||
241 | #ifdef HAVE_BACKLIGHT_BRIGHTNESS | ||
242 | case LAMP_UP: | ||
243 | case (LAMP_UP|BUTTON_REPEAT): | ||
244 | if (current_brightness < MAX_BRIGHTNESS_SETTING) | ||
245 | backlight_brightness_set(++current_brightness); | ||
246 | break; | ||
247 | |||
248 | case LAMP_DOWN: | ||
249 | case (LAMP_DOWN|BUTTON_REPEAT): | ||
250 | if (current_brightness > MIN_BRIGHTNESS_SETTING) | ||
251 | backlight_brightness_set(--current_brightness); | ||
252 | break; | ||
253 | #endif /* HAVE_BACKLIGHT_BRIGHTNESS */ | ||
254 | case BUTTON_NONE: | ||
255 | /* time out */ | ||
256 | break; | ||
207 | 257 | ||
208 | default: | 258 | default: |
209 | if(button) | 259 | if(rb->default_event_handler(button) == SYS_USB_CONNECTED) |
210 | { | 260 | { |
211 | if(rb->default_event_handler(button) == SYS_USB_CONNECTED) | 261 | status = PLUGIN_USB_CONNECTED; |
212 | { | 262 | quit = true; |
213 | status = PLUGIN_USB_CONNECTED; | ||
214 | quit = true; | ||
215 | } | ||
216 | if(!(button & (BUTTON_REL|BUTTON_REPEAT)) | ||
217 | && !IS_SYSEVENT(button)) | ||
218 | quit = true; | ||
219 | } | 263 | } |
264 | if(!(button & (BUTTON_REL|BUTTON_REPEAT)) | ||
265 | && !IS_SYSEVENT(button)) | ||
266 | quit = true; | ||
220 | break; | 267 | break; |
221 | } | 268 | } |
222 | rb->reset_poweroff_timer(); | 269 | rb->reset_poweroff_timer(); |
223 | } while (!quit); | 270 | } while (!quit); |
224 | 271 | ||
225 | #else /* HAVE_LCD_COLOR */ | ||
226 | rb->lcd_clear_display(); | ||
227 | rb->lcd_update(); | ||
228 | /* wait */ | ||
229 | do | ||
230 | { | ||
231 | button = rb->button_get_w_tmo(HZ*30); | ||
232 | if(button) | ||
233 | { | ||
234 | if(rb->default_event_handler(button) == SYS_USB_CONNECTED) | ||
235 | { | ||
236 | status = PLUGIN_USB_CONNECTED; | ||
237 | break; | ||
238 | } | ||
239 | if(!IS_SYSEVENT(button)) | ||
240 | break; | ||
241 | } | ||
242 | rb->reset_poweroff_timer(); | ||
243 | } while (1); | ||
244 | |||
245 | #endif /*HAVE_LCD_COLOR */ | ||
246 | |||
247 | /* restore */ | 272 | /* restore */ |
248 | backlight_use_settings(); | 273 | backlight_use_settings(); |
249 | #ifdef HAVE_BUTTON_LIGHT | 274 | #ifdef HAVE_BUTTON_LIGHT |
diff --git a/manual/plugins/lamp.tex b/manual/plugins/lamp.tex index 81a90409dd..93c5e413eb 100644 --- a/manual/plugins/lamp.tex +++ b/manual/plugins/lamp.tex | |||
@@ -11,7 +11,20 @@ You get an empty screen with maximum brightness. | |||
11 | & } | 11 | & } |
12 | Toggle between colours | 12 | Toggle between colours |
13 | \\ | 13 | \\ |
14 | 14 | } | |
15 | |||
16 | \opt{backlight_brightness}{ | ||
17 | \nopt{IPOD_4G_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD,touchscreen}{\ButtonDown{} / \ButtonUp}% | ||
18 | \opt{IPOD_4G_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD}{\ButtonScrollBack{} / \ButtonScrollFwd} | ||
19 | \opt{touchscreen}{\TouchBottomMiddle{} / \TouchTopMiddle} | ||
20 | & | ||
21 | \opt{HAVEREMOTEKEYMAP}{ | ||
22 | & } | ||
23 | Change the brightness | ||
24 | \\ | ||
25 | } | ||
26 | |||
27 | \opt{lcd_color,backlight_brightness}{ | ||
15 | Any other key | 28 | Any other key |
16 | & | 29 | & |
17 | \opt{HAVEREMOTEKEYMAP}{ | 30 | \opt{HAVEREMOTEKEYMAP}{ |
@@ -19,7 +32,7 @@ You get an empty screen with maximum brightness. | |||
19 | Quit | 32 | Quit |
20 | \\ | 33 | \\ |
21 | } | 34 | } |
22 | \nopt{lcd_color}{ | 35 | \nopt{lcd_color,backlight_brightness}{ |
23 | Any key | 36 | Any key |
24 | & | 37 | & |
25 | \opt{HAVEREMOTEKEYMAP}{ | 38 | \opt{HAVEREMOTEKEYMAP}{ |