summaryrefslogtreecommitdiff
path: root/uisimulator
diff options
context:
space:
mode:
authorHristo Kovachev <bger@rockbox.org>2006-03-25 19:16:45 +0000
committerHristo Kovachev <bger@rockbox.org>2006-03-25 19:16:45 +0000
commita70c6b9b1e2bcf7a5a207017d6c40f5254f6ef98 (patch)
treee39563c6b848d65c0700875676c01da43d3f645b /uisimulator
parent7b9ab84e7d37a761a7b4a5817c6da71213cc17ad (diff)
downloadrockbox-a70c6b9b1e2bcf7a5a207017d6c40f5254f6ef98.tar.gz
rockbox-a70c6b9b1e2bcf7a5a207017d6c40f5254f6ef98.zip
Patch #4913 by David Rothenberger with some changes by me: add only backlight on first keypress to the lcd remotes, too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9253 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'uisimulator')
-rw-r--r--uisimulator/sdl/button.c60
1 files changed, 57 insertions, 3 deletions
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index bf0396e18d..b371643c6f 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -44,6 +44,14 @@ void set_backlight_filter_keypress(bool value)
44{ 44{
45 filter_first_keypress = value; 45 filter_first_keypress = value;
46} 46}
47#ifdef HAVE_REMOTE_LCD
48static bool remote_filter_first_keypress;
49
50void set_remote_backlight_filter_keypress(bool value)
51{
52 remote_filter_first_keypress = value;
53}
54#endif
47#endif 55#endif
48 56
49void button_event(int key, bool pressed) 57void button_event(int key, bool pressed)
@@ -56,6 +64,12 @@ void button_event(int key, bool pressed)
56 static int repeat_count = 0; 64 static int repeat_count = 0;
57 static bool repeat = false; 65 static bool repeat = false;
58 static bool post = false; 66 static bool post = false;
67#ifdef CONFIG_BACKLIGHT
68 static bool skip_release = false;
69#ifdef HAVE_REMOTE_LCD
70 static bool skip_remote_release = false;
71#endif
72#endif
59 73
60 switch (key) 74 switch (key)
61 { 75 {
@@ -169,11 +183,26 @@ void button_event(int key, bool pressed)
169 183
170 /* Find out if a key has been released */ 184 /* Find out if a key has been released */
171 diff = btn ^ lastbtn; 185 diff = btn ^ lastbtn;
172
173 if(diff && (btn & diff) == 0) 186 if(diff && (btn & diff) == 0)
174 { 187 {
188#ifdef CONFIG_BACKLIGHT
189#ifdef HAVE_REMOTE_LCD
190 if(diff & BUTTON_REMOTE)
191 if(!skip_remote_release)
192 queue_post(&button_queue, BUTTON_REL | diff, NULL);
193 else
194 skip_remote_release = false;
195 else
196#endif
197 if(!skip_release)
198 queue_post(&button_queue, BUTTON_REL | diff, NULL);
199 else
200 skip_release = false;
201#else
175 queue_post(&button_queue, BUTTON_REL | diff, NULL); 202 queue_post(&button_queue, BUTTON_REL | diff, NULL);
203#endif
176 } 204 }
205
177 else 206 else
178 { 207 {
179 if ( btn ) 208 if ( btn )
@@ -223,15 +252,40 @@ void button_event(int key, bool pressed)
223 if (queue_empty(&button_queue)) 252 if (queue_empty(&button_queue))
224 { 253 {
225 queue_post(&button_queue, BUTTON_REPEAT | btn, NULL); 254 queue_post(&button_queue, BUTTON_REPEAT | btn, NULL);
255#ifdef CONFIG_BACKLIGHT
256#ifdef HAVE_REMOTE_LCD
257 if(btn & BUTTON_REMOTE)
258 {
259 if(skip_remote_release)
260 skip_remote_release = false;
261 }
262 else
263#endif
264 if(skip_release)
265 skip_release = false;
266#endif
226 post = false; 267 post = false;
227 } 268 }
228 } 269 }
229 else 270 else
230 { 271 {
231#ifdef CONFIG_BACKLIGHT 272#ifdef CONFIG_BACKLIGHT
232 if ( !filter_first_keypress || is_backlight_on()) 273#ifdef HAVE_REMOTE_LCD
233#endif 274 if (btn & BUTTON_REMOTE) {
275 if (!remote_filter_first_keypress || is_remote_backlight_on())
276 queue_post(&button_queue, btn, NULL);
277 else
278 skip_remote_release = true;
279 }
280 else
281#endif
282 if (!filter_first_keypress || is_backlight_on())
283 queue_post(&button_queue, btn, NULL);
284 else
285 skip_release = true;
286#else /* no backlight, nothing to skip */
234 queue_post(&button_queue, btn, NULL); 287 queue_post(&button_queue, btn, NULL);
288#endif
235 post = false; 289 post = false;
236 } 290 }
237 291