summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/playback.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/apps/playback.c b/apps/playback.c
index 3d7ba1a30a..1dabbc34a1 100644
--- a/apps/playback.c
+++ b/apps/playback.c
@@ -703,6 +703,8 @@ bool loadcodec(const char *trackname, bool start_play)
703 size = filesize(fd); 703 size = filesize(fd);
704 if ((off_t)fill_bytesleft < size + conf_watermark) { 704 if ((off_t)fill_bytesleft < size + conf_watermark) {
705 logf("Not enough space"); 705 logf("Not enough space");
706 /* Set codectype back to zero to indicate no codec was loaded. */
707 tracks[track_widx].id3.codectype = 0;
706 fill_bytesleft = 0; 708 fill_bytesleft = 0;
707 close(fd); 709 close(fd);
708 return false; 710 return false;
@@ -833,6 +835,9 @@ bool audio_load_track(int offset, bool start_play, int peek_offset)
833 close(fd); 835 close(fd);
834 /* Stop buffer filling if codec load failed. */ 836 /* Stop buffer filling if codec load failed. */
835 fill_bytesleft = 0; 837 fill_bytesleft = 0;
838 /* Set filesize to zero to indicate no file was loaded. */
839 tracks[track_widx].filesize = 0;
840 tracks[track_widx].filerem = 0;
836 return false; 841 return false;
837 } 842 }
838 // tracks[track_widx].filebuf = &codecbuf[buf_widx]; 843 // tracks[track_widx].filebuf = &codecbuf[buf_widx];
@@ -1070,10 +1075,12 @@ void initialize_buffer_fill(void)
1070 cur_idx = 0; 1075 cur_idx = 0;
1071 } 1076 }
1072 1077
1073 track_count = i; 1078 track_count = i + 1;
1074 if (tracks[track_widx].filesize != 0) 1079 if (tracks[track_widx].filesize == 0) {
1075 track_count++; 1080 if (--track_widx < 0)
1076 1081 track_widx = MAX_TRACK - 1;
1082 }
1083
1077 /* Mark all buffered entries null (not metadata for next track). */ 1084 /* Mark all buffered entries null (not metadata for next track). */
1078 audio_clear_track_entries(true); 1085 audio_clear_track_entries(true);
1079} 1086}
@@ -1491,8 +1498,8 @@ void codec_thread(void)
1491 case CODEC_LOAD: 1498 case CODEC_LOAD:
1492 if (status != CODEC_OK) { 1499 if (status != CODEC_OK) {
1493 logf("Codec failure"); 1500 logf("Codec failure");
1494 splash(HZ*2, true, "Codec failure");
1495 audio_stop_playback(); 1501 audio_stop_playback();
1502 splash(HZ*2, true, "Codec failure");
1496 } else { 1503 } else {
1497 logf("Codec finished"); 1504 logf("Codec finished");
1498 } 1505 }