MPEGPlayer: Skip to next file when there is a problem with a video file in all-play mode, otherwise exit as usual. Only consider failures such as engine init issues or no file to view to be a plugin error but not problems with the video files themselves; the user is adequately informed already.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28854 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Sevakis 2010-12-19 03:28:43 +00:00
parent 6b1fcc67c2
commit fd01bf3e4c

View file

@ -1873,8 +1873,7 @@ static int button_loop(void)
enum plugin_status plugin_start(const void* parameter) enum plugin_status plugin_start(const void* parameter)
{ {
static char videofile[MAX_PATH]; static char videofile[MAX_PATH];
int status = PLUGIN_OK; /* assume success */
int status = PLUGIN_ERROR; /* assume failure */
int result; int result;
int err; int err;
bool quit = false; bool quit = false;
@ -1901,7 +1900,9 @@ enum plugin_status plugin_start(const void* parameter)
rb->strcpy(videofile, (const char*) parameter); rb->strcpy(videofile, (const char*) parameter);
if (stream_init() < STREAM_OK) { if (stream_init() < STREAM_OK) {
/* Fatal because this should not fail */
DEBUGF("Could not initialize streams\n"); DEBUGF("Could not initialize streams\n");
status = PLUGIN_ERROR;
} else { } else {
while (!quit) while (!quit)
{ {
@ -1927,10 +1928,11 @@ enum plugin_status plugin_start(const void* parameter)
rb->lcd_update(); rb->lcd_update();
save_settings(); save_settings();
status = PLUGIN_OK;
mpeg_menu_sysevent_handle(); mpeg_menu_sysevent_handle();
} else { } else {
/* Problem with file; display message about it - not
* considered a plugin error */
DEBUGF("Could not open %s\n", videofile); DEBUGF("Could not open %s\n", videofile);
switch (err) switch (err)
{ {
@ -1942,7 +1944,11 @@ enum plugin_status plugin_start(const void* parameter)
} }
rb->splashf(HZ*2, errstring, err); rb->splashf(HZ*2, errstring, err);
status = PLUGIN_ERROR;
if (settings.play_mode != 0) {
/* Try the next file if the play mode is not single play */
next_action = VIDEO_NEXT;
}
} }
/* return value of button_loop says, what's next */ /* return value of button_loop says, what's next */