summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/lamp.c168
-rw-r--r--manual/plugins/lamp.tex31
2 files changed, 37 insertions, 162 deletions
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index 583e2753fa..b825bb61ce 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -24,6 +24,10 @@
24 24
25#include "plugin.h" 25#include "plugin.h"
26#include "lib/helper.h" 26#include "lib/helper.h"
27#include "lib/pluginlib_actions.h"
28
29/* this set the context to use with PLA */
30static const struct button_mapping *plugin_contexts[] = { pla_main_ctx };
27 31
28/* variable button definitions. 32/* variable button definitions.
29 - only targets with a colour display 33 - only targets with a colour display
@@ -33,140 +37,31 @@
33 LAMP_UP / LAMP_DOWN: change the brightness 37 LAMP_UP / LAMP_DOWN: change the brightness
34*/ 38*/
35#if defined(HAVE_LCD_COLOR) || defined(HAVE_BACKLIGHT_BRIGHTNESS) 39#if defined(HAVE_LCD_COLOR) || defined(HAVE_BACKLIGHT_BRIGHTNESS)
36#if (CONFIG_KEYPAD == IRIVER_H300_PAD)
37# define LAMP_LEFT BUTTON_LEFT
38# define LAMP_RIGHT BUTTON_RIGHT
39# define LAMP_UP BUTTON_UP
40# define LAMP_DOWN BUTTON_DOWN
41
42#elif (CONFIG_KEYPAD == IPOD_4G_PAD)
43# define LAMP_LEFT BUTTON_LEFT
44# define LAMP_RIGHT BUTTON_RIGHT
45# define LAMP_UP BUTTON_SCROLL_FWD
46# define LAMP_DOWN BUTTON_SCROLL_BACK
47
48#elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
49# define LAMP_LEFT BUTTON_LEFT
50# define LAMP_RIGHT BUTTON_RIGHT
51# define LAMP_UP BUTTON_UP
52# define LAMP_DOWN BUTTON_DOWN
53
54#elif (CONFIG_KEYPAD == GIGABEAT_PAD)
55# define LAMP_LEFT BUTTON_LEFT
56# define LAMP_RIGHT BUTTON_RIGHT
57# define LAMP_UP BUTTON_UP
58# define LAMP_DOWN BUTTON_DOWN
59
60#elif (CONFIG_KEYPAD == GIGABEAT_S_PAD) || \
61 (CONFIG_KEYPAD == SAMSUNG_YPR0_PAD)
62# define LAMP_LEFT BUTTON_LEFT
63# define LAMP_RIGHT BUTTON_RIGHT
64# define LAMP_UP BUTTON_UP
65# define LAMP_DOWN BUTTON_DOWN
66
67#elif (CONFIG_KEYPAD == SANSA_E200_PAD) || \
68 (CONFIG_KEYPAD == SANSA_FUZE_PAD) || \
69 (CONFIG_KEYPAD == SANSA_CONNECT_PAD)
70# define LAMP_LEFT BUTTON_LEFT
71# define LAMP_RIGHT BUTTON_RIGHT
72# define LAMP_UP BUTTON_SCROLL_FWD
73# define LAMP_DOWN BUTTON_SCROLL_BACK
74
75#elif (CONFIG_KEYPAD == SANSA_C200_PAD)
76# define LAMP_LEFT BUTTON_LEFT
77# define LAMP_RIGHT BUTTON_RIGHT
78# define LAMP_UP BUTTON_UP
79# define LAMP_DOWN BUTTON_DOWN
80
81#elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
82# define LAMP_LEFT BUTTON_LEFT
83# define LAMP_RIGHT BUTTON_RIGHT
84# define LAMP_NEXT BUTTON_SCROLL_UP
85# define LAMP_PREV BUTTON_SCROLL_DOWN
86
87#elif CONFIG_KEYPAD == MROBE500_PAD
88# define LAMP_LEFT BUTTON_LEFT
89# define LAMP_RIGHT BUTTON_RIGHT
90
91#elif CONFIG_KEYPAD == COWON_D2_PAD
92
93#elif CONFIG_KEYPAD == IAUDIO67_PAD
94# define LAMP_LEFT BUTTON_LEFT
95# define LAMP_RIGHT BUTTON_RIGHT
96
97#elif CONFIG_KEYPAD == PHILIPS_HDD1630_PAD
98# define LAMP_LEFT BUTTON_LEFT
99# define LAMP_RIGHT BUTTON_RIGHT
100# define LAMP_UP BUTTON_UP
101# define LAMP_DOWN BUTTON_DOWN
102
103#elif CONFIG_KEYPAD == PHILIPS_HDD6330_PAD
104# define LAMP_LEFT BUTTON_LEFT
105# define LAMP_RIGHT BUTTON_RIGHT
106# define LAMP_UP BUTTON_UP
107# define LAMP_DOWN BUTTON_DOWN
108
109#elif CONFIG_KEYPAD == PHILIPS_SA9200_PAD
110# define LAMP_LEFT BUTTON_PREV
111# define LAMP_RIGHT BUTTON_NEXT
112# define LAMP_UP BUTTON_UP
113# define LAMP_DOWN BUTTON_DOWN
114
115#elif CONFIG_KEYPAD == ONDAVX747_PAD
116# define LAMP_LEFT BUTTON_VOL_DOWN
117# define LAMP_RIGHT BUTTON_VOL_UP
118 40
119#elif CONFIG_KEYPAD == ONDAVX777_PAD 41/* we use PLA */
120 42#ifdef HAVE_SCROLLWHEEL
121#elif CONFIG_KEYPAD == SAMSUNG_YH_PAD 43# define LAMP_LEFT PLA_LEFT
122# define LAMP_LEFT BUTTON_LEFT 44# define LAMP_RIGHT PLA_RIGHT
123# define LAMP_RIGHT BUTTON_RIGHT 45# define LAMP_UP PLA_SCROLL_FWD
124 46# define LAMP_DOWN PLA_SCROLL_BACK
125#elif CONFIG_KEYPAD == PBELL_VIBE500_PAD 47# define LAMP_UP_REPEAT PLA_SCROLL_FWD_REPEAT
126# define LAMP_LEFT BUTTON_PREV 48# define LAMP_DOWN_REPEAT PLA_SCROLL_BACK_REPEAT
127# define LAMP_RIGHT BUTTON_NEXT 49#else
128# define LAMP_UP BUTTON_UP 50# define LAMP_LEFT PLA_LEFT
129# define LAMP_DOWN BUTTON_DOWN 51# define LAMP_RIGHT PLA_RIGHT
130 52# define LAMP_UP PLA_UP
131#elif CONFIG_KEYPAD == MPIO_HD200_PAD 53# define LAMP_DOWN PLA_DOWN
132# define LAMP_UP BUTTON_REW 54# define LAMP_UP_REPEAT PLA_UP_REPEAT
133# define LAMP_DOWN BUTTON_FF 55# define LAMP_DOWN_REPEAT PLA_DOWN_REPEAT
134 56#endif/* HAVE_SCROLLWHEEL */
135#elif CONFIG_KEYPAD == MPIO_HD300_PAD
136# define LAMP_UP BUTTON_UP
137# define LAMP_DOWN BUTTON_DOWN
138
139#elif CONFIG_KEYPAD == SANSA_FUZEPLUS_PAD
140# define LAMP_LEFT BUTTON_LEFT
141# define LAMP_RIGHT BUTTON_RIGHT
142# define LAMP_UP BUTTON_UP
143# define LAMP_DOWN BUTTON_DOWN
144
145#elif CONFIG_KEYPAD == SANSA_CLIP_PAD
146# define LAMP_LEFT BUTTON_LEFT
147# define LAMP_RIGHT BUTTON_RIGHT
148# define LAMP_UP BUTTON_UP
149# define LAMP_DOWN BUTTON_DOWN
150 57
151#else 58#else
152# error Missing key definitions for this keypad 59# error Missing key definitions for this keypad
153#endif
154#endif /* HAVE_LCD_COLOR || HAVE_BACKLIGHT_BRIGHTNESS */ 60#endif /* HAVE_LCD_COLOR || HAVE_BACKLIGHT_BRIGHTNESS */
155 61
156#ifdef HAVE_TOUCHSCREEN 62#define LAMP_EXIT PLA_EXIT
157# ifndef LAMP_LEFT 63#define LAMP_EXIT2 PLA_CANCEL
158# define LAMP_LEFT BUTTON_MIDLEFT 64
159# endif
160# ifndef LAMP_RIGHT
161# define LAMP_RIGHT BUTTON_MIDRIGHT
162# endif
163# ifndef LAMP_UP
164# define LAMP_UP BUTTON_TOPMIDDLE
165# endif
166# ifndef LAMP_DOWN
167# define LAMP_DOWN BUTTON_BOTTOMMIDDLE
168# endif
169#endif
170 65
171#ifdef HAVE_LCD_COLOR 66#ifdef HAVE_LCD_COLOR
172/* RGB color sets */ 67/* RGB color sets */
@@ -235,8 +130,10 @@ enum plugin_status plugin_start(const void* parameter)
235 update = false; 130 update = false;
236 } 131 }
237#endif /* HAVE_LCD_COLOR */ 132#endif /* HAVE_LCD_COLOR */
133 button = pluginlib_getaction(HZ*30, plugin_contexts,
134 ARRAYLEN(plugin_contexts));
238 135
239 switch((button = rb->button_get_w_tmo(HZ*30))) 136 switch(button)
240 { 137 {
241#ifdef HAVE_LCD_COLOR 138#ifdef HAVE_LCD_COLOR
242 case LAMP_RIGHT: 139 case LAMP_RIGHT:
@@ -258,31 +155,30 @@ enum plugin_status plugin_start(const void* parameter)
258 155
259#ifdef HAVE_BACKLIGHT_BRIGHTNESS 156#ifdef HAVE_BACKLIGHT_BRIGHTNESS
260 case LAMP_UP: 157 case LAMP_UP:
261 case (LAMP_UP|BUTTON_REPEAT): 158 case (LAMP_UP_REPEAT):
262 if (current_brightness < MAX_BRIGHTNESS_SETTING) 159 if (current_brightness < MAX_BRIGHTNESS_SETTING)
263 backlight_brightness_set(++current_brightness); 160 backlight_brightness_set(++current_brightness);
264 break; 161 break;
265 162
266 case LAMP_DOWN: 163 case LAMP_DOWN:
267 case (LAMP_DOWN|BUTTON_REPEAT): 164 case (LAMP_DOWN_REPEAT):
268 if (current_brightness > MIN_BRIGHTNESS_SETTING) 165 if (current_brightness > MIN_BRIGHTNESS_SETTING)
269 backlight_brightness_set(--current_brightness); 166 backlight_brightness_set(--current_brightness);
270 break; 167 break;
271#endif /* HAVE_BACKLIGHT_BRIGHTNESS */ 168#endif /* HAVE_BACKLIGHT_BRIGHTNESS */
169 case LAMP_EXIT:
170 case LAMP_EXIT2:
171 quit = true;
172 break;
272 case BUTTON_NONE: 173 case BUTTON_NONE:
273 /* time out */ 174 /* time out */
274 break; 175 break;
275
276 default: 176 default:
277 if(rb->default_event_handler(button) == SYS_USB_CONNECTED) 177 if(rb->default_event_handler(button) == SYS_USB_CONNECTED)
278 { 178 {
279 status = PLUGIN_USB_CONNECTED; 179 status = PLUGIN_USB_CONNECTED;
280 quit = true; 180 quit = true;
281 } 181 }
282 if(!(button & (BUTTON_REL|BUTTON_REPEAT))
283 && !IS_SYSEVENT(button))
284 quit = true;
285 break;
286 } 182 }
287 rb->reset_poweroff_timer(); 183 rb->reset_poweroff_timer();
288 } while (!quit); 184 } while (!quit);
diff --git a/manual/plugins/lamp.tex b/manual/plugins/lamp.tex
index ec803f54e0..73f48f12f8 100644
--- a/manual/plugins/lamp.tex
+++ b/manual/plugins/lamp.tex
@@ -4,43 +4,22 @@ Lamp is a simple plugin to use your player as a lamp (flashlight, torch).
4You get an empty screen with maximum brightness. 4You get an empty screen with maximum brightness.
5\begin{btnmap} 5\begin{btnmap}
6 \opt{lcd_color}{ 6 \opt{lcd_color}{
7 \nopt{touchscreen}{\ButtonLeft{} / \ButtonRight}% 7 \PluginLeft{} / \PluginRight
8 \opt{touchscreen}{\TouchMidLeft{} / \TouchMidRight}
9 & 8 &
10 \opt{HAVEREMOTEKEYMAP}{ 9 \opt{HAVEREMOTEKEYMAP}{
11 & } 10 & }
12 Toggle between colours 11 Toggle between colours
13 \\ 12 \\
14 } 13 }
15
16 \opt{backlight_brightness}{ 14 \opt{backlight_brightness}{
17 \nopt{IPOD_4G_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD,MPIO_HD200_PAD,MPIO_HD300_PAD,touchscreen} 15 \nopt{scrollwheel}{\PluginUp{} / \PluginDown}
18 {\ButtonDown{} / \ButtonUp}% 16 \opt{scrollwheel}{\PluginScrollFwd{} / \PluginScrollBack}
19 \opt{IPOD_4G_PAD,SANSA_E200_PAD,SANSA_FUZE_PAD}{\ButtonScrollBack{} / \ButtonScrollFwd}
20 \opt{MPIO_HD200_PAD}{\ButtonRew / \ButtonFF}
21 \opt{MPIO_HD300_PAD}{\ButtonScrollDown / \ButtonScrollUp}
22 \opt{touchscreen}{\TouchBottomMiddle{} / \TouchTopMiddle}
23 & 17 &
24 \opt{HAVEREMOTEKEYMAP}{ 18 \opt{HAVEREMOTEKEYMAP}{
25 & } 19 & }
26 Change the brightness 20 Change the brightness
27 \\ 21 \\
28 } 22 }
29 23 \PluginCancel{} or \PluginExit
30 \opt{lcd_color,backlight_brightness}{ 24 & Exit to menu\\
31 Any other key
32 &
33 \opt{HAVEREMOTEKEYMAP}{
34 & }
35 Quit
36 \\
37 }
38 \nopt{lcd_color,backlight_brightness}{
39 Any key
40 &
41 \opt{HAVEREMOTEKEYMAP}{
42 & }
43 Quit
44 \\
45 }
46\end{btnmap} 25\end{btnmap}