|
@@ -11,7 +11,7 @@
|
11
|
11
|
|
12
|
12
|
CardReader::CardReader()
|
13
|
13
|
{
|
14
|
|
- #if SORT_USES_MORE_RAM
|
|
14
|
+ #if defined(SDCARD_SORT_ALPHA) && SORT_USES_MORE_RAM
|
15
|
15
|
sortnames = NULL;
|
16
|
16
|
sort_count = 0;
|
17
|
17
|
#endif
|
|
@@ -558,6 +558,13 @@ void CardReader::closefile(bool store_location)
|
558
|
558
|
|
559
|
559
|
void CardReader::getfilename(const uint8_t nr)
|
560
|
560
|
{
|
|
561
|
+ #if defined(SDCARD_SORT_ALPHA) && SORT_USES_MORE_RAM
|
|
562
|
+ if (nr < sort_count) {
|
|
563
|
+ strcpy(diveFilename, sortnames[nr]);
|
|
564
|
+ return;
|
|
565
|
+ }
|
|
566
|
+ #endif
|
|
567
|
+
|
561
|
568
|
curDir=&workDir;
|
562
|
569
|
lsAction=LS_GetFilename;
|
563
|
570
|
nrFiles=nr;
|
|
@@ -642,9 +649,7 @@ void CardReader::getfilename_sorted(const uint8_t nr) {
|
642
|
649
|
*/
|
643
|
650
|
void CardReader::presort()
|
644
|
651
|
{
|
645
|
|
- #if SORT_USES_MORE_RAM
|
646
|
|
- flush_presort();
|
647
|
|
- #endif
|
|
652
|
+ flush_presort();
|
648
|
653
|
|
649
|
654
|
uint16_t fileCnt = getnrfilenames();
|
650
|
655
|
if (fileCnt > 0) {
|
|
@@ -652,7 +657,7 @@ void CardReader::presort()
|
652
|
657
|
if (fileCnt > SORT_LIMIT) fileCnt = SORT_LIMIT;
|
653
|
658
|
|
654
|
659
|
#if SORT_USES_MORE_RAM
|
655
|
|
- sortnames = malloc(fileCnt * sizeof(char*));
|
|
660
|
+ sortnames = (char**)malloc(fileCnt * sizeof(char*));
|
656
|
661
|
sort_count = fileCnt;
|
657
|
662
|
#elif SORT_USES_RAM
|
658
|
663
|
char *sortnames[fileCnt];
|
|
@@ -748,7 +753,7 @@ void CardReader::flush_presort() {
|
748
|
753
|
#endif
|
749
|
754
|
}
|
750
|
755
|
|
751
|
|
-#endif
|
|
756
|
+#endif // SDCARD_SORT_ALPHA
|
752
|
757
|
|
753
|
758
|
void CardReader::printingHasFinished()
|
754
|
759
|
{
|