Dynamic allocation for SDCARD_SORT_ALPHA
This commit is contained in:
parent
a561bd5e3a
commit
47f9883b0f
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -213,8 +213,12 @@
|
|||||||
#error "SDSORT_LIMIT must be 256 or smaller."
|
#error "SDSORT_LIMIT must be 256 or smaller."
|
||||||
#elif SDSORT_LIMIT < 10
|
#elif SDSORT_LIMIT < 10
|
||||||
#error "SDSORT_LIMIT should be greater than 9 to be useful."
|
#error "SDSORT_LIMIT should be greater than 9 to be useful."
|
||||||
#elif DISABLED(SDSORT_USES_RAM) && ENABLED(SDSORT_CACHE_NAMES)
|
#elif DISABLED(SDSORT_USES_RAM)
|
||||||
#error "SDSORT_CACHE_NAMES requires SDSORT_USES_RAM (which reads the directory into RAM)."
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
#error "SDSORT_DYNAMIC_RAM requires SDSORT_USES_RAM (which reads the directory into RAM)."
|
||||||
|
#elif ENABLED(SDSORT_CACHE_NAMES)
|
||||||
|
#error "SDSORT_CACHE_NAMES requires SDSORT_USES_RAM (which reads the directory into RAM)."
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -676,16 +676,30 @@ void CardReader::updir() {
|
|||||||
// If you use folders to organize, 20 may be enough
|
// If you use folders to organize, 20 may be enough
|
||||||
if (fileCnt > SDSORT_LIMIT) fileCnt = SDSORT_LIMIT;
|
if (fileCnt > SDSORT_LIMIT) fileCnt = SDSORT_LIMIT;
|
||||||
|
|
||||||
|
// Sort order is always needed. May be static or dynamic.
|
||||||
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
sort_order = new uint8_t[fileCnt];
|
||||||
|
#endif
|
||||||
|
|
||||||
// Use RAM to store the entire directory during pre-sort.
|
// Use RAM to store the entire directory during pre-sort.
|
||||||
// SDSORT_LIMIT should be set to prevent over-allocation.
|
// SDSORT_LIMIT should be set to prevent over-allocation.
|
||||||
#if ENABLED(SDSORT_USES_RAM)
|
#if ENABLED(SDSORT_USES_RAM)
|
||||||
|
|
||||||
#if ENABLED(SDSORT_USES_STACK)
|
// If using dynamic ram for names, allocate on the heap.
|
||||||
#if DISABLED(SDSORT_CACHE_NAMES)
|
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||||
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
sortshort = new char*[fileCnt];
|
||||||
|
sortnames = new char*[fileCnt];
|
||||||
#endif
|
#endif
|
||||||
// Folder sorting needs 1 bit per entry for flags.
|
#elif ENABLED(SDSORT_USES_STACK)
|
||||||
#if HAS_FOLDER_SORTING
|
char sortnames[fileCnt][LONG_FILENAME_LENGTH];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Folder sorting needs 1 bit per entry for flags.
|
||||||
|
#if HAS_FOLDER_SORTING
|
||||||
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
isDir = new uint8_t[(fileCnt + 7) >> 3];
|
||||||
|
#elif ENABLED(SDSORT_USES_STACK)
|
||||||
uint8_t isDir[(fileCnt + 7) >> 3];
|
uint8_t isDir[(fileCnt + 7) >> 3];
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
@ -707,9 +721,20 @@ void CardReader::updir() {
|
|||||||
// If using RAM then read all filenames now.
|
// If using RAM then read all filenames now.
|
||||||
#if ENABLED(SDSORT_USES_RAM)
|
#if ENABLED(SDSORT_USES_RAM)
|
||||||
getfilename(i);
|
getfilename(i);
|
||||||
strcpy(sortnames[i], LONGEST_FILENAME);
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
#if ENABLED(SDSORT_CACHE_NAMES)
|
// Use dynamic method to copy long filename
|
||||||
strcpy(sortshort[i], filename);
|
sortnames[i] = strdup(LONGEST_FILENAME);
|
||||||
|
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||||
|
// When caching also store the short name, since
|
||||||
|
// we're replacing the getfilename() behavior.
|
||||||
|
sortshort[i] = strdup(filename);
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
// Copy filenames into the static array
|
||||||
|
strcpy(sortnames[i], LONGEST_FILENAME);
|
||||||
|
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||||
|
strcpy(sortshort[i], filename);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
// char out[30];
|
// char out[30];
|
||||||
// sprintf_P(out, PSTR("---- %i %s %s"), i, filenameIsDir ? "D" : " ", sortnames[i]);
|
// sprintf_P(out, PSTR("---- %i %s %s"), i, filenameIsDir ? "D" : " ", sortnames[i]);
|
||||||
@ -780,13 +805,30 @@ void CardReader::updir() {
|
|||||||
}
|
}
|
||||||
if (!didSwap) break;
|
if (!didSwap) break;
|
||||||
}
|
}
|
||||||
|
// Using RAM but not keeping names around
|
||||||
|
#if ENABLED(SDSORT_USES_RAM) && DISABLED(SDSORT_CACHE_NAMES)
|
||||||
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
for (uint16_t i = 0; i < fileCnt; ++i) free(sortnames[i]);
|
||||||
|
#if HAS_FOLDER_SORTING
|
||||||
|
free(isDir);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
sort_order[0] = 0;
|
sort_order[0] = 0;
|
||||||
#if ENABLED(SDSORT_USES_RAM) && ENABLED(SDSORT_CACHE_NAMES)
|
#if ENABLED(SDSORT_USES_RAM) && ENABLED(SDSORT_CACHE_NAMES)
|
||||||
getfilename(0);
|
getfilename(0);
|
||||||
strcpy(sortnames[0], LONGEST_FILENAME);
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
strcpy(sortshort[0], filename);
|
sortnames = new char*[1];
|
||||||
|
sortnames[0] = strdup(LONGEST_FILENAME); // malloc
|
||||||
|
sortshort = new char*[1];
|
||||||
|
sortshort[0] = strdup(filename); // malloc
|
||||||
|
isDir = new uint8_t[1];
|
||||||
|
#else
|
||||||
|
strcpy(sortnames[0], LONGEST_FILENAME);
|
||||||
|
strcpy(sortshort[0], filename);
|
||||||
|
#endif
|
||||||
isDir[0] = filenameIsDir ? 0x01 : 0x00;
|
isDir[0] = filenameIsDir ? 0x01 : 0x00;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -796,7 +838,20 @@ void CardReader::updir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void CardReader::flush_presort() {
|
void CardReader::flush_presort() {
|
||||||
sort_count = 0;
|
if (sort_count > 0) {
|
||||||
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
delete sort_order;
|
||||||
|
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||||
|
for (uint8_t i = 0; i < sort_count; ++i) {
|
||||||
|
free(sortshort[i]); // strdup
|
||||||
|
free(sortnames[i]); // strdup
|
||||||
|
}
|
||||||
|
delete sortshort;
|
||||||
|
delete sortnames;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
sort_count = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // SDCARD_SORT_ALPHA
|
#endif // SDCARD_SORT_ALPHA
|
||||||
|
@ -104,22 +104,35 @@ private:
|
|||||||
//bool sort_reverse; // Flag to enable / disable reverse sorting
|
//bool sort_reverse; // Flag to enable / disable reverse sorting
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
uint8_t sort_order[SDSORT_LIMIT];
|
// By default the sort index is static
|
||||||
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
uint8_t *sort_order;
|
||||||
|
#else
|
||||||
|
uint8_t sort_order[SDSORT_LIMIT];
|
||||||
|
#endif
|
||||||
|
|
||||||
// Cache filenames to speed up SD menus.
|
// Cache filenames to speed up SD menus.
|
||||||
#if ENABLED(SDSORT_USES_RAM)
|
#if ENABLED(SDSORT_USES_RAM)
|
||||||
|
|
||||||
// If using dynamic ram for names, allocate on the heap.
|
// If using dynamic ram for names, allocate on the heap.
|
||||||
#if ENABLED(SDSORT_CACHE_NAMES)
|
#if ENABLED(SDSORT_CACHE_NAMES)
|
||||||
char sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
char **sortshort, **sortnames;
|
||||||
|
#else
|
||||||
|
char sortshort[SDSORT_LIMIT][FILENAME_LENGTH];
|
||||||
|
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
||||||
|
#endif
|
||||||
#elif DISABLED(SDSORT_USES_STACK)
|
#elif DISABLED(SDSORT_USES_STACK)
|
||||||
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
char sortnames[SDSORT_LIMIT][FILENAME_LENGTH];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Folder sorting uses an isDir array when caching items.
|
// Folder sorting uses an isDir array when caching items.
|
||||||
#if HAS_FOLDER_SORTING && (ENABLED(SDSORT_CACHE_NAMES) || DISABLED(SDSORT_USES_STACK))
|
#if HAS_FOLDER_SORTING
|
||||||
uint8_t isDir[(SDSORT_LIMIT+7)>>3];
|
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||||
|
uint8_t *isDir;
|
||||||
|
#elif ENABLED(SDSORT_CACHE_NAMES) || DISABLED(SDSORT_USES_STACK)
|
||||||
|
uint8_t isDir[(SDSORT_LIMIT+7)>>3];
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // SDSORT_USES_RAM
|
#endif // SDSORT_USES_RAM
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -476,6 +476,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -487,6 +488,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -471,6 +471,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -482,6 +483,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -465,6 +465,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -476,6 +477,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -465,6 +465,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -476,6 +477,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -470,6 +470,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -481,6 +482,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -465,6 +465,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -476,6 +477,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
@ -463,6 +463,7 @@
|
|||||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||||
|
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||||
*/
|
*/
|
||||||
//#define SDCARD_SORT_ALPHA
|
//#define SDCARD_SORT_ALPHA
|
||||||
|
|
||||||
@ -474,6 +475,7 @@
|
|||||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||||
|
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Show a progress bar on HD44780 LCDs for SD printing
|
// Show a progress bar on HD44780 LCDs for SD printing
|
||||||
|
Loading…
Reference in New Issue
Block a user