Do SD sort order in CardReader
This commit is contained in:
parent
fc98383659
commit
967c1d8534
|
@ -1039,13 +1039,7 @@ namespace ExtUI {
|
|||
bool FileList::seek(const uint16_t pos, const bool skip_range_check) {
|
||||
#if ENABLED(SDSUPPORT)
|
||||
if (!skip_range_check && (pos + 1) > count()) return false;
|
||||
const uint16_t nr =
|
||||
#if ENABLED(SDCARD_RATHERRECENTFIRST) && DISABLED(SDCARD_SORT_ALPHA)
|
||||
count() - 1 -
|
||||
#endif
|
||||
pos;
|
||||
|
||||
card.getfilename_sorted(nr);
|
||||
card.getfilename_sorted(SD_ORDER(pos, count()));
|
||||
return card.filename[0] != '\0';
|
||||
#else
|
||||
UNUSED(pos);
|
||||
|
|
|
@ -140,14 +140,7 @@ void menu_media() {
|
|||
|
||||
if (ui.should_draw()) for (uint16_t i = 0; i < fileCnt; i++) {
|
||||
if (_menuLineNr == _thisItemNr) {
|
||||
const uint16_t nr =
|
||||
#if ENABLED(SDCARD_RATHERRECENTFIRST) && DISABLED(SDCARD_SORT_ALPHA)
|
||||
fileCnt - 1 -
|
||||
#endif
|
||||
i;
|
||||
|
||||
card.getfilename_sorted(nr);
|
||||
|
||||
card.getfilename_sorted(SD_ORDER(i, fileCnt));
|
||||
if (card.flag.filenameIsDir)
|
||||
MENU_ITEM(sdfolder, MSG_MEDIA_MENU, card);
|
||||
else
|
||||
|
|
|
@ -924,7 +924,7 @@ void CardReader::cdroot() {
|
|||
|
||||
// Init sort order.
|
||||
for (uint16_t i = 0; i < fileCnt; i++) {
|
||||
sort_order[i] = TERN(SDCARD_RATHERRECENTFIRST, fileCnt - 1 - i, i);
|
||||
sort_order[i] = SD_ORDER(i, fileCnt);
|
||||
// If using RAM then read all filenames now.
|
||||
#if ENABLED(SDSORT_USES_RAM)
|
||||
selectFileByIndex(i);
|
||||
|
|
|
@ -29,6 +29,8 @@
|
|||
#define SD_RESORT 1
|
||||
#endif
|
||||
|
||||
#define SD_ORDER(N,C) (TERN(SDCARD_RATHERRECENTFIRST, C - 1 - (N), N))
|
||||
|
||||
#define MAX_DIR_DEPTH 10 // Maximum folder depth
|
||||
#define MAXDIRNAMELENGTH 8 // DOS folder name size
|
||||
#define MAXPATHNAMELENGTH (1 + (MAXDIRNAMELENGTH + 1) * (MAX_DIR_DEPTH) + 1 + FILENAME_LENGTH) // "/" + N * ("ADIRNAME/") + "filename.ext"
|
||||
|
|
Loading…
Reference in a new issue