summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
authorTeruaki Kawashima <teru@rockbox.org>2010-11-06 13:40:09 +0000
committerTeruaki Kawashima <teru@rockbox.org>2010-11-06 13:40:09 +0000
commit781f05e40d987941e3ac374ea29083a4570c8394 (patch)
treef00825014d28d06a7c66316ae67526db549cee4d /apps/plugins
parentf20582442f6a7c49a217b8e9a75e161e750e4ea6 (diff)
downloadrockbox-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
Diffstat (limited to 'apps/plugins')
-rw-r--r--apps/plugins/lamp.c119
1 files changed, 72 insertions, 47 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