summaryrefslogtreecommitdiff
path: root/streamer.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-03-07 17:26:50 +0100
committerGravatar waker <wakeroid@gmail.com>2011-03-07 18:09:54 +0100
commit9d44a584679d41e69efb1f0a28ca32cef50bf7f4 (patch)
tree734d6cc7cff99df61bc2c0d1cc3c2573297244aa /streamer.c
parent76d2929786213e6148dbb568e1877ee21438dfa6 (diff)
fixed playback of short files at the end of playlist
Diffstat (limited to 'streamer.c')
-rw-r--r--streamer.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/streamer.c b/streamer.c
index a089f1af..380cd30c 100644
--- a/streamer.c
+++ b/streamer.c
@@ -151,6 +151,7 @@ streamer_start_playback (playItem_t *from, playItem_t *it) {
playing_track = it;
if (playing_track) {
pl_item_ref (playing_track);
+ printf ("played=1 [1]\n");
playing_track->played = 1;
playing_track->started_timestamp = time (NULL);
trace ("sending songstarted to plugins [2] current playtrack: %s\n", playing_track->fname);
@@ -350,9 +351,11 @@ streamer_move_to_nextsong (int reason) {
}
}
if (!it) {
+ streamer_buffering = 0;
+ plug_trigger_event_trackinfochanged (streaming_track);
playItem_t *temp;
plt_reshuffle (streamer_playlist, &temp, NULL);
- streamer_set_nextsong (-2, 1);
+ streamer_set_nextsong (-2, -2);
pl_global_unlock ();
return -1;
}
@@ -373,8 +376,10 @@ streamer_move_to_nextsong (int reason) {
it = plt->head[PL_MAIN];
}
else {
+ streamer_buffering = 0;
+ plug_trigger_event_trackinfochanged (streaming_track);
badsong = -1;
- streamer_set_nextsong (-2, 1);
+ streamer_set_nextsong (-2, -2);
pl_global_unlock ();
return 0;
}
@@ -1044,7 +1049,6 @@ streamer_thread (void *ctx) {
}
}
mutex_unlock (decodemutex);
- printf ("fileinfo after init: %p\n", fileinfo);
if (!dec || !fileinfo) {
if (streaming_track) {
@@ -1584,7 +1588,7 @@ streamer_read_async (char *bytes, int size) {
// in case of decoder error, or EOF while buffering - switch to next song instantly
if (bytesread < 0 || (bytes_until_next_song >= 0 && streamer_buffering && bytesread == 0) || bytes_until_next_song < 0) {
- trace ("finished streaming song, queueing next\n");
+ trace ("finished streaming song, queueing next (%d %d %d %d)\n", bytesread, bytes_until_next_song, streamer_buffering, nextsong_pstate);
streamer_next ();
}
}