SD Card Alpha Sorting
First iteration of alphabetical sorting for SD cards, both slow+efficient and fast+rammy. Option for folders to sort first, last, or not at all.
This commit is contained in:
parent
cf749dbeda
commit
8196b36ad9
2 changed files with 22 additions and 3 deletions
|
@ -54,7 +54,7 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
|
|||
dir_t p;
|
||||
uint8_t cnt=0;
|
||||
|
||||
while (parent.readDir(p, longFilename) > 0)
|
||||
while (parent.readDir(p, diveFilename) > 0)
|
||||
{
|
||||
if( DIR_IS_SUBDIR(&p) && lsAction!=LS_Count && lsAction!=LS_GetFilename) // hence LS_SerialPrint
|
||||
{
|
||||
|
@ -91,8 +91,8 @@ void CardReader::lsDive(const char *prepend,SdFile parent)
|
|||
{
|
||||
if (p.name[0] == DIR_NAME_FREE) break;
|
||||
if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.'|| p.name[0] == '_') continue;
|
||||
if (longFilename[0] != '\0' &&
|
||||
(longFilename[0] == '.' || longFilename[0] == '_')) continue;
|
||||
if (diveFilename[0] != '\0' &&
|
||||
(diveFilename[0] == '.' || diveFilename[0] == '_')) continue;
|
||||
if ( p.name[0] == '.')
|
||||
{
|
||||
if ( p.name[1] != '.')
|
||||
|
|
|
@ -46,7 +46,11 @@ public:
|
|||
#ifdef SDCARD_SORT_ALPHA
|
||||
void presort();
|
||||
void flush_presort();
|
||||
<<<<<<< HEAD
|
||||
void getfilename_sorted(const uint16_t nr);
|
||||
=======
|
||||
void getfilename_sorted(const uint8_t nr);
|
||||
>>>>>>> SD Card Alpha Sorting
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -60,22 +64,37 @@ public:
|
|||
public:
|
||||
bool saving;
|
||||
bool logging;
|
||||
<<<<<<< HEAD
|
||||
bool sdprinting;
|
||||
bool cardOK;
|
||||
char filename[FILENAME_LENGTH];
|
||||
char longFilename[LONG_FILENAME_LENGTH];
|
||||
=======
|
||||
bool sdprinting ;
|
||||
bool cardOK;
|
||||
char filename[FILENAME_LENGTH];
|
||||
char diveFilename[LONG_FILENAME_LENGTH];
|
||||
>>>>>>> SD Card Alpha Sorting
|
||||
bool filenameIsDir;
|
||||
int lastnr; //last number of the autostart;
|
||||
private:
|
||||
SdFile root,*curDir,workDir,workDirParents[MAX_DIR_DEPTH];
|
||||
uint16_t workDirDepth;
|
||||
#ifdef SDCARD_SORT_ALPHA
|
||||
<<<<<<< HEAD
|
||||
uint16_t sort_count;
|
||||
uint8_t *sort_order;
|
||||
#if SORT_USES_MORE_RAM
|
||||
char **sortshort;
|
||||
char **sortnames;
|
||||
uint8_t *isDir;
|
||||
=======
|
||||
#if SORT_USES_MORE_RAM
|
||||
uint16_t sort_count;
|
||||
char **sortnames;
|
||||
#else
|
||||
uint8_t sort_order[SORT_LIMIT];
|
||||
>>>>>>> SD Card Alpha Sorting
|
||||
#endif
|
||||
#endif
|
||||
Sd2Card card;
|
||||
|
|
Reference in a new issue