mirror of
https://github.com/sanni/cartreader.git
synced 2024-11-27 15:04:15 +01:00
Cart_Reader.ino: Simplify fileBrowser pagination.
Also, this resolves a warning about `count` being potentially used uninitialised: when landing in the "Too many files" codepath. With this simplification, the limit on the number of files is removed. It is unclear whether that was intentional (maybe this was gating other issues ?)?
This commit is contained in:
parent
dc9ee3b01e
commit
dc391541b4
@ -2972,6 +2972,7 @@ void fileBrowser(const __FlashStringHelper* browserTitle) {
|
|||||||
char fileNames[7][FILENAME_LENGTH];
|
char fileNames[7][FILENAME_LENGTH];
|
||||||
int currFile;
|
int currFile;
|
||||||
FsFile myDir;
|
FsFile myDir;
|
||||||
|
div_t page_layout;
|
||||||
|
|
||||||
filebrowse = 1;
|
filebrowse = 1;
|
||||||
|
|
||||||
@ -3000,32 +3001,15 @@ browserstart:
|
|||||||
|
|
||||||
// Count files in directory
|
// Count files in directory
|
||||||
while (myFile.openNext(&myDir, O_READ)) {
|
while (myFile.openNext(&myDir, O_READ)) {
|
||||||
// Ignore if hidden
|
if (!myFile.isHidden() && (myFile.isDir() || myFile.isFile())) {
|
||||||
if (myFile.isHidden()) {
|
|
||||||
}
|
|
||||||
// Indicate a directory.
|
|
||||||
else if (myFile.isDir()) {
|
|
||||||
currFile++;
|
|
||||||
}
|
|
||||||
// It's just a file
|
|
||||||
else if (myFile.isFile()) {
|
|
||||||
currFile++;
|
currFile++;
|
||||||
}
|
}
|
||||||
myFile.close();
|
myFile.close();
|
||||||
}
|
}
|
||||||
myDir.close();
|
myDir.close();
|
||||||
|
|
||||||
// "Calculate number of needed pages"
|
page_layout = div(currFile, 7);
|
||||||
if (currFile < 8)
|
numPages = page_layout.quot + 1;
|
||||||
numPages = 1;
|
|
||||||
else if (currFile < 15)
|
|
||||||
numPages = 2;
|
|
||||||
else if (currFile < 22)
|
|
||||||
numPages = 3;
|
|
||||||
else if (currFile < 29)
|
|
||||||
numPages = 4;
|
|
||||||
else if (currFile < 36)
|
|
||||||
numPages = 5;
|
|
||||||
|
|
||||||
// Fill the array "answers" with 7 options to choose from in the file browser
|
// Fill the array "answers" with 7 options to choose from in the file browser
|
||||||
char answers[7][20];
|
char answers[7][20];
|
||||||
@ -3033,31 +3017,7 @@ browserstart:
|
|||||||
page:
|
page:
|
||||||
|
|
||||||
// If there are less than 7 entries, set count to that number so no empty options appear
|
// If there are less than 7 entries, set count to that number so no empty options appear
|
||||||
byte count;
|
byte count = currPage == numPages ? page_layout.rem : 7;
|
||||||
if (currFile < 8)
|
|
||||||
count = currFile;
|
|
||||||
else if (currPage == 1)
|
|
||||||
count = 7;
|
|
||||||
else if (currFile < 15)
|
|
||||||
count = currFile - 7;
|
|
||||||
else if (currPage == 2)
|
|
||||||
count = 7;
|
|
||||||
else if (currFile < 22)
|
|
||||||
count = currFile - 14;
|
|
||||||
else if (currPage == 3)
|
|
||||||
count = 7;
|
|
||||||
else if (currFile < 29)
|
|
||||||
count = currFile - 21;
|
|
||||||
else {
|
|
||||||
display_Clear();
|
|
||||||
println_Msg(F("Too many files"));
|
|
||||||
display_Update();
|
|
||||||
println_Msg(F(""));
|
|
||||||
// Prints string out of the common strings array either with or without newline
|
|
||||||
print_STR(press_button_STR, 1);
|
|
||||||
display_Update();
|
|
||||||
wait();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Open filepath directory
|
// Open filepath directory
|
||||||
if (!myDir.open(filePath)) {
|
if (!myDir.open(filePath)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user