--- menu.c Wed Aug 28 21:44:24 2002 +++ menu.c.chad Wed Aug 28 21:44:09 2002 @@ -33,6 +33,12 @@ #include "ajf.h" #endif + + +extern bool restore; +extern bool paused; +extern bool display_keylock_text; + struct menu { int top; int cursor; @@ -253,22 +259,51 @@ #ifdef HAVE_RECORDER_KEYPAD case BUTTON_RIGHT: +#else + case BUTTON_PLAY #endif - case BUTTON_PLAY: /* Erase current display state */ lcd_scroll_pause(); /* pause is better than stop when are gonna clear the screen anyway */ lcd_clear_display(); - + /* if a child returns that the contents is changed, we must remember this, even if we perhaps invoke other children too before returning back */ if(MENU_DISK_CHANGED == menus[m].items[menus[m].cursor].function()) result = MENU_DISK_CHANGED; - + /* Return to previous display state */ menu_draw(m); + break; + +#ifdef HAVE_RECORDER_KEYPAD + + case BUTTON_PLAY: +#endif + /*if (keys_locked) who cares we won't be in menu if locked*/ + + if ( !paused ) + { + mpeg_pause(); + paused = true; + status_set_playmode(STATUS_PAUSE); + status_draw(); + if (global_settings.resume) { + settings_save(); +#ifndef HAVE_RTC + ata_flush(); +#endif + } + } + else + { + mpeg_resume(); + paused = false; + status_set_playmode(STATUS_PLAY); + status_draw(); + } break; #ifdef HAVE_RECORDER_KEYPAD