summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:23:45 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2002-08-07 07:23:45 +0000
commit921484de874d33f6cde0aae3857f5e6c644ded71 (patch)
tree18ba71eb67c7c2af7a1233b3f5fc33d220444aed
parent3c67c0a5121454277f52a60368d713bfc7547cf7 (diff)
downloadrockbox-921484de874d33f6cde0aae3857f5e6c644ded71.zip
rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.tar.gz
rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.tar.bz2
rockbox-921484de874d33f6cde0aae3857f5e6c644ded71.tar.xz
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.c425
1 files changed, 212 insertions, 213 deletions
diff --git a/apps/wps.c b/apps/wps.c
index 506cba7..c3398e2 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;
}
}
}