summaryrefslogtreecommitdiff
path: root/apps/plugins/mpegplayer/mpegplayer.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/mpegplayer/mpegplayer.c')
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 41f6b2e868..c6e1f4dded 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -386,6 +386,7 @@ enum video_action
386 VIDEO_STOP = 0, 386 VIDEO_STOP = 0,
387 VIDEO_PREV, 387 VIDEO_PREV,
388 VIDEO_NEXT, 388 VIDEO_NEXT,
389 VIDEO_ACTION_MANUAL = 0x8000, /* Flag that says user did it */
389}; 390};
390 391
391/* OSD status - same order as icon array */ 392/* OSD status - same order as icon array */
@@ -2139,7 +2140,7 @@ static int button_loop(void)
2139 /* Release within 3 seconds of start: skip to previous 2140 /* Release within 3 seconds of start: skip to previous
2140 * file */ 2141 * file */
2141 osd_stop(); 2142 osd_stop();
2142 next_action = VIDEO_PREV; 2143 next_action = VIDEO_PREV | VIDEO_ACTION_MANUAL;
2143 } 2144 }
2144 } 2145 }
2145 else if ((button & ~BUTTON_REPEAT) == old_button) { 2146 else if ((button & ~BUTTON_REPEAT) == old_button) {
@@ -2169,7 +2170,7 @@ static int button_loop(void)
2169 if ((old_button | BUTTON_REL) == button) { 2170 if ((old_button | BUTTON_REL) == button) {
2170 /* If button has been released: skip to next file */ 2171 /* If button has been released: skip to next file */
2171 osd_stop(); 2172 osd_stop();
2172 next_action = VIDEO_NEXT; 2173 next_action = VIDEO_NEXT | VIDEO_ACTION_MANUAL;
2173 } 2174 }
2174 else if ((button & ~BUTTON_REPEAT) == old_button) { 2175 else if ((button & ~BUTTON_REPEAT) == old_button) {
2175 button = osd_seek_btn(old_button); 2176 button = osd_seek_btn(old_button);
@@ -2251,11 +2252,10 @@ enum plugin_status plugin_start(const void* parameter)
2251 2252
2252 while (!quit) 2253 while (!quit)
2253 { 2254 {
2254 int result;
2255
2256 init_settings(videofile); 2255 init_settings(videofile);
2257 2256
2258 result = stream_open(videofile); 2257 int result = stream_open(videofile);
2258 bool manual_skip = false;
2259 2259
2260 if (result >= STREAM_OK) { 2260 if (result >= STREAM_OK) {
2261 /* start menu */ 2261 /* start menu */
@@ -2267,6 +2267,8 @@ enum plugin_status plugin_start(const void* parameter)
2267 if (result != MPEG_START_QUIT) { 2267 if (result != MPEG_START_QUIT) {
2268 /* Enter button loop and process UI */ 2268 /* Enter button loop and process UI */
2269 next_action = button_loop(); 2269 next_action = button_loop();
2270 manual_skip = next_action & VIDEO_ACTION_MANUAL;
2271 next_action &= ~VIDEO_ACTION_MANUAL;
2270 } 2272 }
2271 2273
2272 stream_close(); 2274 stream_close();
@@ -2341,6 +2343,13 @@ enum plugin_status plugin_start(const void* parameter)
2341 sizeof(videofile)); 2343 sizeof(videofile));
2342 /* quit after finished the last videofile */ 2344 /* quit after finished the last videofile */
2343 quit = !get_videofile_says; 2345 quit = !get_videofile_says;
2346
2347 if (manual_skip)
2348 {
2349 rb->system_sound_play(get_videofile_says ?
2350 SOUND_TRACK_SKIP : SOUND_TRACK_NO_MORE);
2351 }
2352
2344 break; 2353 break;
2345 } 2354 }
2346 case VIDEO_PREV: 2355 case VIDEO_PREV:
@@ -2348,6 +2357,13 @@ enum plugin_status plugin_start(const void* parameter)
2348 get_videofile_says = get_videofile(VIDEO_PREV, videofile, 2357 get_videofile_says = get_videofile(VIDEO_PREV, videofile,
2349 sizeof(videofile)); 2358 sizeof(videofile));
2350 /* if there is no previous file, play the same videofile */ 2359 /* if there is no previous file, play the same videofile */
2360
2361 if (manual_skip)
2362 {
2363 rb->system_sound_play(get_videofile_says ?
2364 SOUND_TRACK_SKIP : SOUND_TRACK_NO_MORE);
2365 }
2366
2351 break; 2367 break;
2352 } 2368 }
2353 case VIDEO_STOP: 2369 case VIDEO_STOP: