From 921484de874d33f6cde0aae3857f5e6c644ded71 Mon Sep 17 00:00:00 2001 From: Linus Nielsen Feltzing Date: Wed, 7 Aug 2002 07:23:45 +0000 Subject: Now uses button_get_w_tmo() git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1577 a1c6a512-1295-4272-9138-f99709370657 --- apps/wps.c | 425 ++++++++++++++++++++++++++++++------------------------------- 1 file changed, 212 insertions(+), 213 deletions(-) (limited to 'apps') 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) bool menu_button_is_down = false; bool pending_keylock = true; /* Keylock will go ON next time */ int old_release_mask; + int button; + char buffer[32]; old_release_mask = button_set_release(RELEASE_MASK); @@ -182,9 +184,8 @@ int wps_show(void) while ( 1 ) { - int i; - char buffer[32]; - + button = button_get_w_tmo(HZ/5); + if(mpeg_has_changed_track()) { lcd_stop_scroll(); @@ -192,267 +193,265 @@ int wps_show(void) draw_screen(id3); } - if (mpeg_is_playing() && id3) + switch(button) { -#ifdef HAVE_LCD_BITMAP - snprintf(buffer,sizeof(buffer), "Time: %d:%02d / %d:%02d", - id3->elapsed / 60000, - id3->elapsed % 60000 / 1000, - id3->length / 60000, - id3->length % 60000 / 1000 ); - - lcd_puts(0, 6, buffer); - - lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5, - id3->elapsed*100/id3->length, - BAR_RIGHT); - - lcd_update(); -#else - /* Display time with the filename scroll only because - the screen has room. */ - if (global_settings.wps_display == PLAY_DISPLAY_FILENAME_SCROLL) - { - snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d", - id3->elapsed / 60000, - id3->elapsed % 60000 / 1000, - id3->length / 60000, - id3->length % 60000 / 1000 ); - - lcd_puts(0, 1, buffer); - lcd_update(); - } -#endif - } - - status_draw(); - -#ifdef HAVE_LCD_BITMAP - /* draw battery indicator line */ - lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1); - lcd_drawline(0,LCD_HEIGHT-1,battery_level() * (LCD_WIDTH-1) / 100, LCD_HEIGHT-1); -#endif - - for ( i=0;i<5;i++ ) { - int button = button_get(false); - - switch ( button ) - { - case BUTTON_ON: - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } + case BUTTON_ON: + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); + break; + } #ifdef HAVE_LCD_CHARCELLS - lcd_icon(ICON_RECORD, false); + lcd_icon(ICON_RECORD, false); #endif - button_set_release(old_release_mask); - return 0; - + button_set_release(old_release_mask); + return 0; + #ifdef HAVE_RECORDER_KEYPAD - case BUTTON_PLAY: + case BUTTON_PLAY: #else - case BUTTON_UP: + case BUTTON_UP: #endif - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } - - if ( mpeg_is_playing() ) - { - mpeg_pause(); - status_set_playmode(STATUS_PAUSE); - } - else - { - mpeg_resume(); - status_set_playmode(STATUS_PLAY); - } + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); break; + } -#ifdef HAVE_RECORDER_KEYPAD - case BUTTON_UP: - case BUTTON_UP | BUTTON_REPEAT: - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } + if ( mpeg_is_playing() ) + { + mpeg_pause(); + status_set_playmode(STATUS_PAUSE); + } + else + { + mpeg_resume(); + status_set_playmode(STATUS_PLAY); + } + break; - global_settings.volume++; - if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) - global_settings.volume = mpeg_sound_max(SOUND_VOLUME); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); +#ifdef HAVE_RECORDER_KEYPAD + case BUTTON_UP: + case BUTTON_UP | BUTTON_REPEAT: + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); break; + } - case BUTTON_DOWN: - case BUTTON_DOWN | BUTTON_REPEAT: - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } + global_settings.volume++; + if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_max(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); + break; - global_settings.volume--; - if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) - global_settings.volume = mpeg_sound_min(SOUND_VOLUME); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); + case BUTTON_DOWN: + case BUTTON_DOWN | BUTTON_REPEAT: + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); break; -#endif + } - case BUTTON_LEFT: - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } + global_settings.volume--; + if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_min(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); + break; +#endif - mpeg_prev(); + case BUTTON_LEFT: + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); break; + } - case BUTTON_RIGHT: - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } - mpeg_next(); + mpeg_prev(); + break; + + case BUTTON_RIGHT: + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); break; + } + mpeg_next(); + break; #ifdef HAVE_PLAYER_KEYPAD - case BUTTON_MENU | BUTTON_LEFT: - case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT: - dont_go_to_menu = true; - global_settings.volume--; - if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) - global_settings.volume = mpeg_sound_min(SOUND_VOLUME); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - break; + case BUTTON_MENU | BUTTON_LEFT: + case BUTTON_MENU | BUTTON_LEFT | BUTTON_REPEAT: + dont_go_to_menu = true; + global_settings.volume--; + if(global_settings.volume < mpeg_sound_min(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_min(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); + break; - case BUTTON_MENU | BUTTON_RIGHT: - case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT: - dont_go_to_menu = true; - global_settings.volume++; - if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) - global_settings.volume = mpeg_sound_max(SOUND_VOLUME); - mpeg_sound_set(SOUND_VOLUME, global_settings.volume); - break; + case BUTTON_MENU | BUTTON_RIGHT: + case BUTTON_MENU | BUTTON_RIGHT | BUTTON_REPEAT: + dont_go_to_menu = true; + global_settings.volume++; + if(global_settings.volume > mpeg_sound_max(SOUND_VOLUME)) + global_settings.volume = mpeg_sound_max(SOUND_VOLUME); + mpeg_sound_set(SOUND_VOLUME, global_settings.volume); + break; - case BUTTON_MENU: - lcd_icon(ICON_PARAM, true); - menu_button_is_down = true; - break; + case BUTTON_MENU: + lcd_icon(ICON_PARAM, true); + menu_button_is_down = true; + break; - case BUTTON_STOP | BUTTON_REL: - /* The STOP key has been release while the MENU key - was held */ - if(menu_button_is_down) - pending_keylock = !pending_keylock; - break; + case BUTTON_STOP | BUTTON_REL: + /* The STOP key has been release while the MENU key + was held */ + if(menu_button_is_down) + pending_keylock = !pending_keylock; + break; #else - case BUTTON_F1: - menu_button_is_down = true; - break; + case BUTTON_F1: + menu_button_is_down = true; + break; - case BUTTON_DOWN | BUTTON_REL: - /* The DOWN key has been release while the F1 key - was held */ - if(menu_button_is_down) - { - pending_keylock = !pending_keylock; - debugf("pending: %d\n", pending_keylock); - } - break; + case BUTTON_DOWN | BUTTON_REL: + /* The DOWN key has been release while the F1 key + was held */ + if(menu_button_is_down) + { + pending_keylock = !pending_keylock; + debugf("pending: %d\n", pending_keylock); + } + break; #endif #ifdef HAVE_RECORDER_KEYPAD - case BUTTON_F1 | BUTTON_DOWN: + case BUTTON_F1 | BUTTON_DOWN: #else - case BUTTON_MENU | BUTTON_STOP: + case BUTTON_MENU | BUTTON_STOP: #endif - if(keys_locked != pending_keylock) - { - keys_locked = pending_keylock; + if(keys_locked != pending_keylock) + { + keys_locked = pending_keylock; #ifdef HAVE_LCD_CHARCELLS - if(keys_locked) - lcd_icon(ICON_RECORD, true); - else - lcd_icon(ICON_RECORD, false); + if(keys_locked) + lcd_icon(ICON_RECORD, true); + else + lcd_icon(ICON_RECORD, false); #endif - display_keylock_text(keys_locked); - draw_screen(id3); - } + display_keylock_text(keys_locked); + draw_screen(id3); + } - dont_go_to_menu = true; - break; + dont_go_to_menu = true; + break; #ifdef HAVE_RECORDER_KEYPAD - case BUTTON_F1 | BUTTON_REL: + case BUTTON_F1 | BUTTON_REL: #else - case BUTTON_MENU | BUTTON_REL: + case BUTTON_MENU | BUTTON_REL: #endif #ifdef HAVE_LCD_CHARCELLS - lcd_icon(ICON_PARAM, false); + lcd_icon(ICON_PARAM, false); #endif - if(!keys_locked && !dont_go_to_menu && menu_button_is_down) - { - lcd_stop_scroll(); - button_set_release(old_release_mask); - main_menu(); - old_release_mask = button_set_release(RELEASE_MASK); - id3 = mpeg_current_track(); - draw_screen(id3); - } - else - { - dont_go_to_menu = false; - } - menu_button_is_down = false; - break; + if(!keys_locked && !dont_go_to_menu && menu_button_is_down) + { + lcd_stop_scroll(); + button_set_release(old_release_mask); + main_menu(); + old_release_mask = button_set_release(RELEASE_MASK); + id3 = mpeg_current_track(); + draw_screen(id3); + } + else + { + dont_go_to_menu = false; + } + menu_button_is_down = false; + break; #ifdef HAVE_RECORDER_KEYPAD - case BUTTON_OFF: + case BUTTON_OFF: #else - case BUTTON_STOP: + case BUTTON_STOP: #endif - if (keys_locked) - { - display_keylock_text(keys_locked); - draw_screen(id3); - break; - } + if (keys_locked) + { + display_keylock_text(keys_locked); + draw_screen(id3); + break; + } - mpeg_stop(); - status_set_playmode(STATUS_STOP); - button_set_release(old_release_mask); - return 0; + mpeg_stop(); + status_set_playmode(STATUS_STOP); + button_set_release(old_release_mask); + return 0; #ifndef SIMULATOR - case SYS_USB_CONNECTED: - /* Tell the USB thread that we are safe */ - DEBUGF("wps got SYS_USB_CONNECTED\n"); - usb_acknowledge(SYS_USB_CONNECTED_ACK); + case SYS_USB_CONNECTED: + /* Tell the USB thread that we are safe */ + DEBUGF("wps got SYS_USB_CONNECTED\n"); + usb_acknowledge(SYS_USB_CONNECTED_ACK); - /* Wait until the USB cable is extracted again */ - usb_wait_for_disconnect(&button_queue); + /* Wait until the USB cable is extracted again */ + usb_wait_for_disconnect(&button_queue); - /* Signal to our caller that we have been in USB mode */ - return SYS_USB_CONNECTED; - break; + /* Signal to our caller that we have been in USB mode */ + return SYS_USB_CONNECTED; + break; #endif - } - sleep(HZ/10); + case BUTTON_NONE: /* Timeout */ + if (mpeg_is_playing() && id3) + { +#ifdef HAVE_LCD_BITMAP + snprintf(buffer,sizeof(buffer), + "Time: %d:%02d / %d:%02d", + id3->elapsed / 60000, + id3->elapsed % 60000 / 1000, + id3->length / 60000, + id3->length % 60000 / 1000 ); + + lcd_puts(0, 6, buffer); + + lcd_slidebar(1, LCD_HEIGHT-7, LCD_WIDTH-2, 5, + id3->elapsed*100/id3->length, + BAR_RIGHT); + + lcd_update(); +#else + /* Display time with the filename scroll only because + the screen has room. */ + if (global_settings.wps_display == + PLAY_DISPLAY_FILENAME_SCROLL) + { + snprintf(buffer,sizeof(buffer), "%d:%02d/%d:%02d", + id3->elapsed / 60000, + id3->elapsed % 60000 / 1000, + id3->length / 60000, + id3->length % 60000 / 1000 ); + + lcd_puts(0, 1, buffer); + lcd_update(); + } +#endif + } + + status_draw(); +#ifdef HAVE_LCD_BITMAP + /* draw battery indicator line */ + lcd_clearline(0,LCD_HEIGHT-1,LCD_WIDTH-1, LCD_HEIGHT-1); + lcd_drawline(0,LCD_HEIGHT-1,battery_level() * + (LCD_WIDTH-1) / 100, LCD_HEIGHT-1); +#endif + break; } } } -- cgit v1.2.3