diff options
Diffstat (limited to 'apps/playback.c')
-rw-r--r-- | apps/playback.c | 17 |
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 | } |