diff --git a/source/main.c b/source/main.c index a0cc50b..c9bbc30 100644 --- a/source/main.c +++ b/source/main.c @@ -301,6 +301,7 @@ int main(int argc, char **argv) struct playbackInfo_t playbackInfo = { 0 }; volatile int error = 0; struct dirList_t dirList = { 0 }; + int doneEndOfTrack = 0; gfxInitDefault(); consoleInit(GFX_TOP, &topScreenLog); @@ -541,6 +542,8 @@ int main(int argc, char **argv) consoleClear(); changeFile(dirList.files[fileNum - dirList.dirNum - 1], &playbackInfo); + error = 0; + doneEndOfTrack = 0; continue; } } @@ -548,12 +551,33 @@ int main(int argc, char **argv) if (kDown & KEY_ZR && fileNum < fileMax) { fileNum += 1; changeFile(dirList.files[fileNum - dirList.dirNum - 1], &playbackInfo); + error = 0; + doneEndOfTrack = 0; continue; } if (kDown & KEY_ZL && fileNum > 0) { fileNum -= 1; changeFile(dirList.files[fileNum - dirList.dirNum - 1], &playbackInfo); + error = 0; + doneEndOfTrack = 0; + continue; + } + + consoleSelect(&topScreenInfo); + printf("\033[2;0He %d d %d", error, doneEndOfTrack); + + // play next song automatically + if (error != -1 && doneEndOfTrack == 2) doneEndOfTrack = 0; + if (error == -1 && doneEndOfTrack == 0) doneEndOfTrack = 1; + if (doneEndOfTrack == 1) { + doneEndOfTrack = 2; + if (fileNum >= fileMax) continue; + consoleSelect(&topScreenInfo); + printf("playing next"); + fileNum += 1; + changeFile(dirList.files[fileNum - dirList.dirNum - 1], &playbackInfo); + error = 0; continue; }