From a830d5b6b79fc7db649c7f2990b59d00597c296c Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 9 Feb 2021 20:31:02 +0200 Subject: [PATCH] getfilename_next --- Firmware/cardreader.cpp | 15 ++++++++++++++- Firmware/cardreader.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Firmware/cardreader.cpp b/Firmware/cardreader.cpp index 0d61b5f49..23669ca97 100644 --- a/Firmware/cardreader.cpp +++ b/Firmware/cardreader.cpp @@ -665,6 +665,15 @@ void CardReader::getfilename_simple(uint32_t position, const char * const match/ lsDive("", *curDir, match); } +void CardReader::getfilename_next(uint32_t position, const char * const match/*=NULL*/) +{ + curDir = &workDir; + lsAction = LS_GetFilename; + nrFiles = 1; + curDir->seekSet(position); + lsDive("", *curDir, match); +} + uint16_t CardReader::getnrfilenames() { curDir=&workDir; @@ -792,7 +801,10 @@ void CardReader::presort() { for (uint16_t i = 0; i < fileCnt; i++) { if (!IS_SD_INSERTED) return; manage_heater(); - getfilename(i); + if (i == 0) + getfilename(0); + else + getfilename_next(position); sort_order[i] = i; sort_positions[i] = position; #if HAS_FOLDER_SORTING @@ -966,6 +978,7 @@ void CardReader::presort() { } else { sort_order[0] = 0; + getfilename(0); sort_positions[0] = position; } diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index 9b5c5196d..84462f6a8 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -31,6 +31,7 @@ public: void getfilename(uint16_t nr, const char* const match=NULL); void getfilename_simple(uint32_t position, const char * const match = NULL); + void getfilename_next(uint32_t position, const char * const match = NULL); uint16_t getnrfilenames(); void getAbsFilename(char *t);