Add root flag to CardReader (#15275)

This commit is contained in:
Robby Candra
2019-09-17 05:49:55 +07:00
committed by Scott Lahteine
parent eb1a368277
commit 98233b1de0
4 changed files with 11 additions and 18 deletions

View File

@@ -629,7 +629,7 @@ void CardReader::getfilename(uint16_t nr, const char * const match/*=nullptr*/)
lsDive(nullptr, workDir, match);
}
uint16_t CardReader::getnrfilenames() {
uint16_t CardReader::countFilesInWorkDir() {
lsAction = LS_Count;
nrFiles = 0;
workDir.rewind();
@@ -707,6 +707,7 @@ void CardReader::chdir(const char * relpath) {
if (newDir.open(parent, relpath, O_READ)) {
workDir = newDir;
flag.workDirIsRoot = false;
if (workDirDepth < MAX_DIR_DEPTH)
workDirParents[workDirDepth++] = workDir;
#if ENABLED(SDCARD_SORT_ALPHA)
@@ -726,14 +727,13 @@ int8_t CardReader::updir() {
presort();
#endif
}
if (!workDirDepth) flag.workDirIsRoot = true;
return workDirDepth;
}
void CardReader::setroot() {
/*if (!workDir.openRoot(&volume)) {
SERIAL_ECHOLNPGM(MSG_SD_WORKDIR_FAIL);
}*/
workDir = root;
flag.workDirIsRoot = true;
#if ENABLED(SDCARD_SORT_ALPHA)
presort();
#endif
@@ -801,7 +801,7 @@ void CardReader::setroot() {
#endif
// If there are files, sort up to the limit
uint16_t fileCnt = getnrfilenames();
uint16_t fileCnt = countFilesInWorkDir();
if (fileCnt > 0) {
// Never sort more than the max allowed
@@ -981,7 +981,7 @@ uint16_t CardReader::get_num_Files() {
#if ENABLED(SDCARD_SORT_ALPHA) && SDSORT_USES_RAM && SDSORT_CACHE_NAMES
nrFiles // no need to access the SD card for filenames
#else
getnrfilenames()
countFilesInWorkDir()
#endif
;
}