Add SCROLL_LONG_FILENAMES advanced option

Based on #7637 by @marcio-ao
This commit is contained in:
Scott Lahteine 2017-10-18 20:26:19 -05:00
parent 259cf1b0b2
commit 91c5c2538a
35 changed files with 267 additions and 117 deletions

View file

@ -1142,7 +1142,7 @@ int8_t SdBaseFile::readDir(dir_t* dir, char* longFilename) {
vfat_t* VFAT = (vfat_t*)dir;
// Sanity-check the VFAT entry. The first cluster is always set to zero. And the sequence number should be higher than 0
if (VFAT->firstClusterLow == 0 && (VFAT->sequenceNumber & 0x1F) > 0 && (VFAT->sequenceNumber & 0x1F) <= MAX_VFAT_ENTRIES) {
// TODO: Store the filename checksum to verify if a none-long filename aware system modified the file table.
// TODO: Store the filename checksum to verify if a long-filename-unaware system modified the file table.
n = ((VFAT->sequenceNumber & 0x1F) - 1) * (FILENAME_LENGTH);
for (uint8_t i = 0; i < FILENAME_LENGTH; i++)
longFilename[n + i] = (i < 5) ? VFAT->name1[i] : (i < 11) ? VFAT->name2[i - 5] : VFAT->name3[i - 11];