diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-07 07:23:45 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-08-07 07:23:45 +0000 |
commit | 921484de874d33f6cde0aae3857f5e6c644ded71 (patch) | |
tree | 18ba71eb67c7c2af7a1233b3f5fc33d220444aed | |
parent | 3c67c0a5121454277f52a60368d713bfc7547cf7 (diff) | |
download | rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.tar.gz rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.zip |
Now uses button_get_w_tmo()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1577 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/wps.c | 425 |
1 files changed, 212 insertions, 213 deletions
diff --git a/apps/wps.c b/apps/wps.c index 506cba7d15..c3398e2ea4 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -171,6 +171,8 @@ int wps_show(void) | |||
171 | bool menu_button_is_down = false; | 171 | bool menu_button_is_down = false; |
172 | bool pending_keylock = true; /* Keylock will go ON next time */ | 172 | bool pending_keylock = true; /* Keylock will go ON next time */ |
173 | int old_release_mask; | 173 | int old_release_mask; |
174 | int button; | ||
175 | char buffer[32]; | ||
174 | 176 | ||
175 | old_release_mask = button_set_release(RELEASE_MASK); | 177 | old_release_mask = button_set_release(RELEASE_MASK); |
176 | 178 | ||
@@ -182,9 +184,8 @@ int wps_show(void) | |||
182 | 184 | ||
183 | while ( 1 ) | 185 | while ( 1 ) |
184 | { | 186 | { |
185 | int i; | 187 | button = button_get_w_tmo(HZ/5); |
186 | char buffer[32]; | 188 | |
187 | |||
188 | if(mpeg_has_changed_track()) | 189 | if(mpeg_has_changed_track()) |
189 | { | 190 | { |
190 | lcd_stop_scroll(); | 191 | lcd_stop_scroll(); |
@@ -192,267 +193,265 @@ int wps_show(void) | |||
192 | draw_screen(id3); | 193 | draw_screen(id3); |
193 | } | 194 | } |
194 | 195 | ||
195 | if (mpeg_is_playing() && id3) | 196 | switch(button) |
196 | { | 197 | { |
197 | #ifdef HAVE_LCD_BITMAP | 198 | case BUTTON_ON: |
198 | snprintf(buffer,sizeof(buffer), "Time: %d:%02d / %d:%02d", | 199 | if (keys_locked) |
199 | id3->elapsed / 60000, | 200 | { |
200 | id3->elapsed % 60000 / 1000, | 201 | display_keylock_text(keys_locked); |
201 | id3->length / 60000, | 202 | draw_screen(id3); |
202 | id3->length % 60000 / 1000 ); | 203 | break; |
203 | 204 | } | |
204 | lcd_puts(0, 6, buffer); | ||
205 | |||
206 | lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5, | ||
207 | id3->elapsed*100/id3->length, | ||
208 | BAR_RIGHT); | ||
209 | |||
210 | lcd_update(); | ||
211 | #else | ||
212 | /* Display time with the filename scroll only because | ||
213 | the screen has room. */ | ||
214 | if (global_settings.wps_display == PLAY_DISPLAY_FILENAME_SCROLL) | ||
215 | { | ||
216 | snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d", | ||
217 | id3->elapsed / 60000, | ||
218 | id3->elapsed % 60000 / 1000, | ||
219 | id3->length / 60000, | ||
220 | id3->length % 60000 / 1000 ); | ||
221 | |||
222 | lcd_puts(0, 1, buffer); | ||
223 | lcd_update(); | ||
224 | } | ||
225 | #endif | ||
226 | } | ||
227 | |||
228 | status_draw(); | ||
229 | |||
230 | #ifdef HAVE_LCD_BITMAP | ||
231 | /* draw battery indicator line */ | ||
232 | lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1); | ||
233 | lcd_drawline(0,LCD_HEIGHT-1,battery_level() * (LCD_WIDTH-1) / 100, LCD_HEIGHT-1); | ||
234 | #endif | ||
235 | |||
236 | for ( i=0;i<5;i++ ) { | ||
237 | int button = button_get(false); | ||
238 | |||
239 | switch ( button ) | ||
240 | { | ||
241 | case BUTTON_ON: | ||
242 | if (keys_locked) | ||
243 | { | ||
244 | display_keylock_text(keys_locked); | ||
245 | draw_screen(id3); | ||
246 | break; | ||
247 | } | ||
248 | 205 | ||
249 | #ifdef HAVE_LCD_CHARCELLS | 206 | #ifdef HAVE_LCD_CHARCELLS |
250 | lcd_icon(ICON_RECORD, false); | 207 | lcd_icon(ICON_RECORD, false); |
251 | #endif | 208 | #endif |
252 | button_set_release(old_release_mask); | 209 | button_set_release(old_release_mask); |
253 | return 0; | 210 | return 0; |
254 | 211 | ||
255 | #ifdef HAVE_RECORDER_KEYPAD | 212 | #ifdef HAVE_RECORDER_KEYPAD |
256 | case BUTTON_PLAY: | 213 | case BUTTON_PLAY: |
257 | #else | 214 | #else |
258 | case BUTTON_UP: | 215 | case BUTTON_UP: |
259 | #endif | 216 | #endif |
260 | if (keys_locked) | 217 | if (keys_locked) |
261 | { | 218 | { |
262 | display_keylock_text(keys_locked); | 219 | display_keylock_text(keys_locked); |
263 | draw_screen(id3); | 220 | draw_screen(id3); |
264 | break; | ||
265 | } | ||
266 | |||
267 | if ( mpeg_is_playing() ) | ||
268 | { | ||
269 | mpeg_pause(); | ||
270 | status_set_playmode(STATUS_PAUSE); | ||
271 | } | ||
272 | else | ||
273 | { | ||
274 | mpeg_resume(); | ||
275 | status_set_playmode(STATUS_PLAY); | ||
276 | } | ||
277 | break; | 221 | break; |
222 | } | ||
278 | 223 | ||
279 | #ifdef HAVE_RECORDER_KEYPAD | 224 | if ( mpeg_is_playing() ) |
280 | case BUTTON_UP: | 225 | { |
281 | case BUTTON_UP | BUTTON_REPEAT: | 226 | mpeg_pause(); |
282 | if (keys_locked) | 227 | status_set_playmode(STATUS_PAUSE); |
283 | { | 228 | } |
284 | display_keylock_text(keys_locked); | 229 | else |
285 | draw_screen(id3); | 230 | { |
286 | break; | 231 | mpeg_resume(); |
287 | } | 232 | status_set_playmode(STATUS_PLAY); |
233 | } | ||
234 | break; | ||
288 | 235 | ||
289 | global_settings.volume++; | 236 | #ifdef HAVE_RECORDER_KEYPAD |
290 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) | 237 | case BUTTON_UP: |
291 | global_settings.volume = mpeg_sound_max(SOUND_VOLUME); | 238 | case BUTTON_UP | BUTTON_REPEAT: |
292 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 239 | if (keys_locked) |
240 | { | ||
241 | display_keylock_text(keys_locked); | ||
242 | draw_screen(id3); | ||
293 | break; | 243 | break; |
244 | } | ||
294 | 245 | ||
295 | case BUTTON_DOWN: | 246 | global_settings.volume++; |
296 | case BUTTON_DOWN | BUTTON_REPEAT: | 247 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) |
297 | if (keys_locked) | 248 | global_settings.volume = mpeg_sound_max(SOUND_VOLUME); |
298 | { | 249 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
299 | display_keylock_text(keys_locked); | 250 | break; |
300 | draw_screen(id3); | ||
301 | break; | ||
302 | } | ||
303 | 251 | ||
304 | global_settings.volume--; | 252 | case BUTTON_DOWN: |
305 | if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) | 253 | case BUTTON_DOWN | BUTTON_REPEAT: |
306 | global_settings.volume = mpeg_sound_min(SOUND_VOLUME); | 254 | if (keys_locked) |
307 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 255 | { |
256 | display_keylock_text(keys_locked); | ||
257 | draw_screen(id3); | ||
308 | break; | 258 | break; |
309 | #endif | 259 | } |
310 | 260 | ||
311 | case BUTTON_LEFT: | 261 | global_settings.volume--; |
312 | if (keys_locked) | 262 | if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) |
313 | { | 263 | global_settings.volume = mpeg_sound_min(SOUND_VOLUME); |
314 | display_keylock_text(keys_locked); | 264 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
315 | draw_screen(id3); | 265 | break; |
316 | break; | 266 | #endif |
317 | } | ||
318 | 267 | ||
319 | mpeg_prev(); | 268 | case BUTTON_LEFT: |
269 | if (keys_locked) | ||
270 | { | ||
271 | display_keylock_text(keys_locked); | ||
272 | draw_screen(id3); | ||
320 | break; | 273 | break; |
274 | } | ||
321 | 275 | ||
322 | case BUTTON_RIGHT: | 276 | mpeg_prev(); |
323 | if (keys_locked) | 277 | break; |
324 | { | 278 | |
325 | display_keylock_text(keys_locked); | 279 | case BUTTON_RIGHT: |
326 | draw_screen(id3); | 280 | if (keys_locked) |
327 | break; | 281 | { |
328 | } | 282 | display_keylock_text(keys_locked); |
329 | mpeg_next(); | 283 | draw_screen(id3); |
330 | break; | 284 | break; |
285 | } | ||
286 | mpeg_next(); | ||
287 | break; | ||
331 | 288 | ||
332 | #ifdef HAVE_PLAYER_KEYPAD | 289 | #ifdef HAVE_PLAYER_KEYPAD |
333 | case BUTTON_MENU | BUTTON_LEFT: | 290 | case BUTTON_MENU | BUTTON_LEFT: |
334 | case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT: | 291 | case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT: |
335 | dont_go_to_menu = true; | 292 | dont_go_to_menu = true; |
336 | global_settings.volume--; | 293 | global_settings.volume--; |
337 | if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) | 294 | if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) |
338 | global_settings.volume = mpeg_sound_min(SOUND_VOLUME); | 295 | global_settings.volume = mpeg_sound_min(SOUND_VOLUME); |
339 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 296 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
340 | break; | 297 | break; |
341 | 298 | ||
342 | case BUTTON_MENU | BUTTON_RIGHT: | 299 | case BUTTON_MENU | BUTTON_RIGHT: |
343 | case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT: | 300 | case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT: |
344 | dont_go_to_menu = true; | 301 | dont_go_to_menu = true; |
345 | global_settings.volume++; | 302 | global_settings.volume++; |
346 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) | 303 | if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) |
347 | global_settings.volume = mpeg_sound_max(SOUND_VOLUME); | 304 | global_settings.volume = mpeg_sound_max(SOUND_VOLUME); |
348 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | 305 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
349 | break; | 306 | break; |
350 | 307 | ||
351 | case BUTTON_MENU: | 308 | case BUTTON_MENU: |
352 | lcd_icon(ICON_PARAM, true); | 309 | lcd_icon(ICON_PARAM, true); |
353 | menu_button_is_down = true; | 310 | menu_button_is_down = true; |
354 | break; | 311 | break; |
355 | 312 | ||
356 | case BUTTON_STOP | BUTTON_REL: | 313 | case BUTTON_STOP | BUTTON_REL: |
357 | /* The STOP key has been release while the MENU key | 314 | /* The STOP key has been release while the MENU key |
358 | was held */ | 315 | was held */ |
359 | if(menu_button_is_down) | 316 | if(menu_button_is_down) |
360 | pending_keylock = !pending_keylock; | 317 | pending_keylock = !pending_keylock; |
361 | break; | 318 | break; |
362 | #else | 319 | #else |
363 | case BUTTON_F1: | 320 | case BUTTON_F1: |
364 | menu_button_is_down = true; | 321 | menu_button_is_down = true; |
365 | break; | 322 | break; |
366 | 323 | ||
367 | case BUTTON_DOWN | BUTTON_REL: | 324 | case BUTTON_DOWN | BUTTON_REL: |
368 | /* The DOWN key has been release while the F1 key | 325 | /* The DOWN key has been release while the F1 key |
369 | was held */ | 326 | was held */ |
370 | if(menu_button_is_down) | 327 | if(menu_button_is_down) |
371 | { | 328 | { |
372 | pending_keylock = !pending_keylock; | 329 | pending_keylock = !pending_keylock; |
373 | debugf("pending: %d\n", pending_keylock); | 330 | debugf("pending: %d\n", pending_keylock); |
374 | } | 331 | } |
375 | break; | 332 | break; |
376 | #endif | 333 | #endif |
377 | 334 | ||
378 | #ifdef HAVE_RECORDER_KEYPAD | 335 | #ifdef HAVE_RECORDER_KEYPAD |
379 | case BUTTON_F1 | BUTTON_DOWN: | 336 | case BUTTON_F1 | BUTTON_DOWN: |
380 | #else | 337 | #else |
381 | case BUTTON_MENU | BUTTON_STOP: | 338 | case BUTTON_MENU | BUTTON_STOP: |
382 | #endif | 339 | #endif |
383 | if(keys_locked != pending_keylock) | 340 | if(keys_locked != pending_keylock) |
384 | { | 341 | { |
385 | keys_locked = pending_keylock; | 342 | keys_locked = pending_keylock; |
386 | 343 | ||
387 | #ifdef HAVE_LCD_CHARCELLS | 344 | #ifdef HAVE_LCD_CHARCELLS |
388 | if(keys_locked) | 345 | if(keys_locked) |
389 | lcd_icon(ICON_RECORD, true); | 346 | lcd_icon(ICON_RECORD, true); |
390 | else | 347 | else |
391 | lcd_icon(ICON_RECORD, false); | 348 | lcd_icon(ICON_RECORD, false); |
392 | #endif | 349 | #endif |
393 | display_keylock_text(keys_locked); | 350 | display_keylock_text(keys_locked); |
394 | draw_screen(id3); | 351 | draw_screen(id3); |
395 | } | 352 | } |
396 | 353 | ||
397 | dont_go_to_menu = true; | 354 | dont_go_to_menu = true; |
398 | break; | 355 | break; |
399 | 356 | ||
400 | #ifdef HAVE_RECORDER_KEYPAD | 357 | #ifdef HAVE_RECORDER_KEYPAD |
401 | case BUTTON_F1 | BUTTON_REL: | 358 | case BUTTON_F1 | BUTTON_REL: |
402 | #else | 359 | #else |
403 | case BUTTON_MENU | BUTTON_REL: | 360 | case BUTTON_MENU | BUTTON_REL: |
404 | #endif | 361 | #endif |
405 | #ifdef HAVE_LCD_CHARCELLS | 362 | #ifdef HAVE_LCD_CHARCELLS |
406 | lcd_icon(ICON_PARAM, false); | 363 | lcd_icon(ICON_PARAM, false); |
407 | #endif | 364 | #endif |
408 | if(!keys_locked && !dont_go_to_menu && menu_button_is_down) | 365 | if(!keys_locked && !dont_go_to_menu && menu_button_is_down) |
409 | { | 366 | { |
410 | lcd_stop_scroll(); | 367 | lcd_stop_scroll(); |
411 | button_set_release(old_release_mask); | 368 | button_set_release(old_release_mask); |
412 | main_menu(); | 369 | main_menu(); |
413 | old_release_mask = button_set_release(RELEASE_MASK); | 370 | old_release_mask = button_set_release(RELEASE_MASK); |
414 | id3 = mpeg_current_track(); | 371 | id3 = mpeg_current_track(); |
415 | draw_screen(id3); | 372 | draw_screen(id3); |
416 | } | 373 | } |
417 | else | 374 | else |
418 | { | 375 | { |
419 | dont_go_to_menu = false; | 376 | dont_go_to_menu = false; |
420 | } | 377 | } |
421 | menu_button_is_down = false; | 378 | menu_button_is_down = false; |
422 | break; | 379 | break; |
423 | 380 | ||
424 | #ifdef HAVE_RECORDER_KEYPAD | 381 | #ifdef HAVE_RECORDER_KEYPAD |
425 | case BUTTON_OFF: | 382 | case BUTTON_OFF: |
426 | #else | 383 | #else |
427 | case BUTTON_STOP: | 384 | case BUTTON_STOP: |
428 | #endif | 385 | #endif |
429 | if (keys_locked) | 386 | if (keys_locked) |
430 | { | 387 | { |
431 | display_keylock_text(keys_locked); | 388 | display_keylock_text(keys_locked); |
432 | draw_screen(id3); | 389 | draw_screen(id3); |
433 | break; | 390 | break; |
434 | } | 391 | } |
435 | 392 | ||
436 | mpeg_stop(); | 393 | mpeg_stop(); |
437 | status_set_playmode(STATUS_STOP); | 394 | status_set_playmode(STATUS_STOP); |
438 | button_set_release(old_release_mask); | 395 | button_set_release(old_release_mask); |
439 | return 0; | 396 | return 0; |
440 | 397 | ||
441 | #ifndef SIMULATOR | 398 | #ifndef SIMULATOR |
442 | case SYS_USB_CONNECTED: | 399 | case SYS_USB_CONNECTED: |
443 | /* Tell the USB thread that we are safe */ | 400 | /* Tell the USB thread that we are safe */ |
444 | DEBUGF("wps got SYS_USB_CONNECTED\n"); | 401 | DEBUGF("wps got SYS_USB_CONNECTED\n"); |
445 | usb_acknowledge(SYS_USB_CONNECTED_ACK); | 402 | usb_acknowledge(SYS_USB_CONNECTED_ACK); |
446 | 403 | ||
447 | /* Wait until the USB cable is extracted again */ | 404 | /* Wait until the USB cable is extracted again */ |
448 | usb_wait_for_disconnect(&button_queue); | 405 | usb_wait_for_disconnect(&button_queue); |
449 | 406 | ||
450 | /* Signal to our caller that we have been in USB mode */ | 407 | /* Signal to our caller that we have been in USB mode */ |
451 | return SYS_USB_CONNECTED; | 408 | return SYS_USB_CONNECTED; |
452 | break; | 409 | break; |
453 | #endif | 410 | #endif |
454 | } | 411 | case BUTTON_NONE: /* Timeout */ |
455 | sleep(HZ/10); | 412 | if (mpeg_is_playing() && id3) |
413 | { | ||
414 | #ifdef HAVE_LCD_BITMAP | ||
415 | snprintf(buffer,sizeof(buffer), | ||
416 | "Time: %d:%02d / %d:%02d", | ||
417 | id3->elapsed / 60000, | ||
418 | id3->elapsed % 60000 / 1000, | ||
419 | id3->length / 60000, | ||
420 | id3->length % 60000 / 1000 ); | ||
421 | |||
422 | lcd_puts(0, 6, buffer); | ||
423 | |||
424 | lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5, | ||
425 | id3->elapsed*100/id3->length, | ||
426 | BAR_RIGHT); | ||
427 | |||
428 | lcd_update(); | ||
429 | #else | ||
430 | /* Display time with the filename scroll only because | ||
431 | the screen has room. */ | ||
432 | if (global_settings.wps_display == | ||
433 | PLAY_DISPLAY_FILENAME_SCROLL) | ||
434 | { | ||
435 | snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d", | ||
436 | id3->elapsed / 60000, | ||
437 | id3->elapsed % 60000 / 1000, | ||
438 | id3->length / 60000, | ||
439 | id3->length % 60000 / 1000 ); | ||
440 | |||
441 | lcd_puts(0, 1, buffer); | ||
442 | lcd_update(); | ||
443 | } | ||
444 | #endif | ||
445 | } | ||
446 | |||
447 | status_draw(); | ||
448 | #ifdef HAVE_LCD_BITMAP | ||
449 | /* draw battery indicator line */ | ||
450 | lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1); | ||
451 | lcd_drawline(0,LCD_HEIGHT-1,battery_level() * | ||
452 | (LCD_WIDTH-1) / 100, LCD_HEIGHT-1); | ||
453 | #endif | ||
454 | break; | ||
456 | } | 455 | } |
457 | } | 456 | } |
458 | } | 457 | } |