1 /***************************************************************************
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// __ \_/ ___\| |/ /| __ \ / __ \ \/ /
5 * Jukebox | | ( (__) ) \___| ( | \_\ ( (__) ) (
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 * Copyright (C) 2007 Vuong Minh Hiep (vmh)
11 * Copyright (C) 2008 Thomas Martitz (kugel.)
12 * Copyright (C) 2008 Alexander Papst
13 * Copyright (C) 2008 Peter D'Hoye
15 * This program is free software; you can redistribute it and/or
16 * modify it under the terms of the GNU General Public License
17 * as published by the Free Software Foundation; either version 2
18 * of the License, or (at your option) any later version.
20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21 * KIND, either express or implied.
23 ****************************************************************************/
30 #if defined(HAVE_BACKLIGHT)
31 /* variable button definitions - only targets with a colour display */
32 #if defined(HAVE_LCD_COLOR)
33 #if (CONFIG_KEYPAD == IRIVER_H300_PAD)
34 # define LAMP_LEFT BUTTON_LEFT
35 # define LAMP_RIGHT BUTTON_RIGHT
37 #elif (CONFIG_KEYPAD == IPOD_4G_PAD)
38 # define LAMP_LEFT BUTTON_LEFT
39 # define LAMP_RIGHT BUTTON_RIGHT
40 # define LAMP_NEXT BUTTON_SCROLL_FWD
41 # define LAMP_PREV BUTTON_SCROLL_BACK
43 #elif (CONFIG_KEYPAD == IAUDIO_X5M5_PAD)
44 # define LAMP_LEFT BUTTON_LEFT
45 # define LAMP_RIGHT BUTTON_RIGHT
47 #elif (CONFIG_KEYPAD == GIGABEAT_PAD)
48 # define LAMP_LEFT BUTTON_LEFT
49 # define LAMP_RIGHT BUTTON_RIGHT
51 #elif (CONFIG_KEYPAD == GIGABEAT_S_PAD)
52 # define LAMP_LEFT BUTTON_LEFT
53 # define LAMP_RIGHT BUTTON_RIGHT
55 #elif (CONFIG_KEYPAD == SANSA_E200_PAD)
56 # define LAMP_LEFT BUTTON_LEFT
57 # define LAMP_RIGHT BUTTON_RIGHT
58 # define LAMP_NEXT BUTTON_SCROLL_FWD
59 # define LAMP_PREV BUTTON_SCROLL_BACK
61 #elif (CONFIG_KEYPAD == SANSA_C200_PAD)
62 # define LAMP_LEFT BUTTON_LEFT
63 # define LAMP_RIGHT BUTTON_RIGHT
65 #elif (CONFIG_KEYPAD == IRIVER_H10_PAD)
66 # define LAMP_LEFT BUTTON_LEFT
67 # define LAMP_RIGHT BUTTON_RIGHT
68 # define LAMP_NEXT BUTTON_SCROLL_UP
69 # define LAMP_PREV BUTTON_SCROLL_DOWN
71 #elif CONFIG_KEYPAD == MROBE500_PAD
72 # define LAMP_LEFT BUTTON_LEFT
73 # define LAMP_RIGHT BUTTON_RIGHT
75 #elif CONFIG_KEYPAD == COWOND2_PAD
78 # error Missing key definitions for this keypad
84 # define LAMP_LEFT BUTTON_MIDLEFT
87 # define LAMP_RIGHT BUTTON_MIDRIGHT
90 # define LAMP_NEXT BUTTON_TOPMIDDLE
93 # define LAMP_PREV BUTTON_BOTTOMMIDDLE
97 static const struct plugin_api
* rb
; /* global api struct pointer */
101 #define NUM_COLORSETS 2
102 static int colorset
[NUM_COLORSETS
][3] = { { 255, 255, 255 } , /* white */
103 { 255, 0, 0 } }; /* red */
104 #endif /* HAVE_LCD_COLOR */
106 /* this is the plugin entry point */
107 enum plugin_status
plugin_start(const struct plugin_api
* api
, const void* parameter
)
112 #ifdef HAVE_LCD_COLOR
115 #endif /* HAVE_LCD_COLOR */
117 #ifdef HAVE_BACKLIGHT_BRIGHTNESS
118 short old_brightness
= rb
->global_settings
->brightness
;
119 #endif /* HAVE_BACKLIGHT_BRIGHTNESS */
120 #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS
121 short old_buttonlight_brightness
=
122 rb
->global_settings
->buttonlight_brightness
;
123 #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */
126 unsigned bg_color
=rb
->lcd_get_background();
127 rb
->lcd_set_backdrop(NULL
);
128 rb
->lcd_set_background(LCD_WHITE
);
131 #ifdef HAVE_BACKLIGHT_BRIGHTNESS
132 rb
->backlight_set_brightness(MAX_BRIGHTNESS_SETTING
);
133 #endif /* HAVE_BACKLIGHT_BRIGHTNESS */
134 #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS
135 rb
->buttonlight_set_brightness(MAX_BRIGHTNESS_SETTING
);
136 #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */
138 #ifdef HAVE_LCD_INVERT
140 /* mrobe-100 has inverted display so invert it for max brightness */
141 rb
->lcd_set_invert_display(true);
143 rb
->lcd_set_invert_display(false);
144 #endif /* MROBE_100 */
145 #endif /* HAVE_LCD_INVERT */
147 backlight_force_on(rb
);
148 #ifdef HAVE_BUTTON_LIGHT
149 buttonlight_force_on(rb
);
150 #endif /* HAVE_BUTTON_LIGHT */
152 #ifdef HAVE_LCD_COLOR
156 cs
= NUM_COLORSETS
-1;
157 if(cs
>= NUM_COLORSETS
)
159 rb
->lcd_set_background( LCD_RGBPACK( colorset
[cs
][0],
162 rb
->lcd_clear_display();
165 switch(rb
->button_get(true))
170 #endif /* LAMP_NEXT */
177 #endif /* LAMP_PREV */
181 case (LAMP_RIGHT
|BUTTON_REPEAT
):
182 case (LAMP_RIGHT
|BUTTON_REL
):
183 case (LAMP_LEFT
|BUTTON_REPEAT
):
184 case (LAMP_LEFT
|BUTTON_REL
):
186 case (LAMP_NEXT
|BUTTON_REPEAT
):
187 case (LAMP_NEXT
|BUTTON_REL
):
188 #endif /* LAMP_NEXT */
190 case (LAMP_PREV
|BUTTON_REPEAT
):
191 case (LAMP_PREV
|BUTTON_REL
):
192 #endif /* LAMP_PREV */
200 #else /* HAVE_LCD_COLOR */
201 rb
->lcd_clear_display();
204 while(rb
->button_get(false) == BUTTON_NONE
)
209 #endif /*HAVE_LCD_COLOR */
212 backlight_use_settings(rb
);
213 #ifdef HAVE_BUTTON_LIGHT
214 buttonlight_use_settings(rb
);
215 #endif /* HAVE_BUTTON_LIGHT */
217 #ifdef HAVE_LCD_INVERT
218 rb
->lcd_set_invert_display(rb
->global_settings
->invert
);
219 #endif /* HAVE_LCD_INVERT */
221 #ifdef HAVE_BACKLIGHT_BRIGHTNESS
222 rb
->backlight_set_brightness(old_brightness
);
223 #endif /* HAVE_BACKLIGHT_BRIGHTNESS */
224 #ifdef HAVE_BUTTONLIGHT_BRIGHTNESS
225 rb
->buttonlight_set_brightness(old_buttonlight_brightness
);
226 #endif /* HAVE_BUTTONLIGHT_BRIGHTNESS */
229 rb
->lcd_set_background(bg_color
);