Parcourir la source

Expand on More RAM concept, address minor bugs

Scott Lahteine il y a 10 ans
Parent
révision
87fc00c182
1 fichiers modifiés avec 11 ajouts et 6 suppressions
  1. 11
    6
      Marlin/cardreader.cpp

+ 11
- 6
Marlin/cardreader.cpp Voir le fichier

@@ -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
 {

Chargement…
Annuler
Enregistrer