Apply TERN to compact code (#17619)
This commit is contained in:
@ -407,16 +407,12 @@ void CardReader::manage_media() {
|
||||
ui.media_changed(old_stat, stat); // Update the UI
|
||||
|
||||
if (stat) {
|
||||
#if ENABLED(SDCARD_EEPROM_EMULATION)
|
||||
settings.first_load();
|
||||
#endif
|
||||
if (old_stat == 2) { // First mount?
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
recovery.check();
|
||||
#else
|
||||
beginautostart(); // Look for autostart files soon
|
||||
#endif
|
||||
}
|
||||
TERN_(SDCARD_EEPROM_EMULATION, settings.first_load());
|
||||
if (old_stat == 2) // First mount?
|
||||
TERN(POWER_LOSS_RECOVERY,
|
||||
recovery.check(), // Check for PLR file. (If not there it will beginautostart)
|
||||
beginautostart() // Look for auto0.g on the next loop
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -438,25 +434,15 @@ void CardReader::openAndPrintFile(const char *name) {
|
||||
void CardReader::startFileprint() {
|
||||
if (isMounted()) {
|
||||
flag.sdprinting = true;
|
||||
#if SD_RESORT
|
||||
flush_presort();
|
||||
#endif
|
||||
TERN_(SD_RESORT, flush_presort());
|
||||
}
|
||||
}
|
||||
|
||||
void CardReader::endFilePrint(
|
||||
#if SD_RESORT
|
||||
const bool re_sort/*=false*/
|
||||
#endif
|
||||
) {
|
||||
#if ENABLED(ADVANCED_PAUSE_FEATURE)
|
||||
did_pause_print = 0;
|
||||
#endif
|
||||
void CardReader::endFilePrint(TERN_(SD_RESORT, const bool re_sort/*=false*/)) {
|
||||
TERN_(ADVANCED_PAUSE_FEATURE, did_pause_print = 0);
|
||||
flag.sdprinting = flag.abort_sd_printing = false;
|
||||
if (isFileOpen()) file.close();
|
||||
#if SD_RESORT
|
||||
if (re_sort) presort();
|
||||
#endif
|
||||
TERN_(SD_RESORT, if (re_sort) presort());
|
||||
}
|
||||
|
||||
void CardReader::openLogFile(char * const path) {
|
||||
@ -590,9 +576,7 @@ void CardReader::openFileWrite(char * const path) {
|
||||
if (file.open(curDir, fname, O_CREAT | O_APPEND | O_WRITE | O_TRUNC)) {
|
||||
flag.saving = true;
|
||||
selectFileByName(fname);
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
emergency_parser.disable();
|
||||
#endif
|
||||
TERN_(EMERGENCY_PARSER, emergency_parser.disable());
|
||||
echo_write_to_file(fname);
|
||||
ui.set_status(fname);
|
||||
}
|
||||
@ -615,9 +599,7 @@ void CardReader::removeFile(const char * const name) {
|
||||
if (file.remove(curDir, fname)) {
|
||||
SERIAL_ECHOLNPAIR("File deleted:", fname);
|
||||
sdpos = 0;
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
presort();
|
||||
#endif
|
||||
TERN_(SDCARD_SORT_ALPHA, presort());
|
||||
}
|
||||
else
|
||||
SERIAL_ECHOLNPAIR("Deletion failed, File: ", fname, ".");
|
||||
@ -664,15 +646,10 @@ void CardReader::checkautostart() {
|
||||
if (autostart_index < 0 || flag.sdprinting) return;
|
||||
|
||||
if (!isMounted()) mount();
|
||||
#if ENABLED(SDCARD_EEPROM_EMULATION)
|
||||
else settings.first_load();
|
||||
#endif
|
||||
TERN_(SDCARD_EEPROM_EMULATION, else settings.first_load());
|
||||
|
||||
if (isMounted()
|
||||
#if ENABLED(POWER_LOSS_RECOVERY)
|
||||
&& !recovery.valid() // Don't run auto#.g when a resume file exists
|
||||
#endif
|
||||
) {
|
||||
// Don't run auto#.g when a PLR file exists
|
||||
if (isMounted() && TERN1(POWER_LOSS_RECOVERY, !recovery.valid())) {
|
||||
char autoname[8];
|
||||
sprintf_P(autoname, PSTR("auto%c.g"), autostart_index + '0');
|
||||
dir_t p;
|
||||
@ -699,9 +676,7 @@ void CardReader::closefile(const bool store_location) {
|
||||
file.close();
|
||||
flag.saving = flag.logging = false;
|
||||
sdpos = 0;
|
||||
#if ENABLED(EMERGENCY_PARSER)
|
||||
emergency_parser.enable();
|
||||
#endif
|
||||
TERN_(EMERGENCY_PARSER, emergency_parser.enable());
|
||||
|
||||
if (store_location) {
|
||||
//future: store printer state, filename and position for continuing a stopped print
|
||||
@ -824,9 +799,7 @@ void CardReader::cd(const char * relpath) {
|
||||
flag.workDirIsRoot = false;
|
||||
if (workDirDepth < MAX_DIR_DEPTH)
|
||||
workDirParents[workDirDepth++] = workDir;
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
presort();
|
||||
#endif
|
||||
TERN_(SDCARD_SORT_ALPHA, presort());
|
||||
}
|
||||
else {
|
||||
SERIAL_ECHO_START();
|
||||
@ -837,9 +810,7 @@ void CardReader::cd(const char * relpath) {
|
||||
int8_t CardReader::cdup() {
|
||||
if (workDirDepth > 0) { // At least 1 dir has been saved
|
||||
workDir = --workDirDepth ? workDirParents[workDirDepth - 1] : root; // Use parent, or root if none
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
presort();
|
||||
#endif
|
||||
TERN_(SDCARD_SORT_ALPHA, presort());
|
||||
}
|
||||
if (!workDirDepth) flag.workDirIsRoot = true;
|
||||
return workDirDepth;
|
||||
@ -848,9 +819,7 @@ int8_t CardReader::cdup() {
|
||||
void CardReader::cdroot() {
|
||||
workDir = root;
|
||||
flag.workDirIsRoot = true;
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
presort();
|
||||
#endif
|
||||
TERN_(SDCARD_SORT_ALPHA, presort());
|
||||
}
|
||||
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
@ -859,12 +828,8 @@ void CardReader::cdroot() {
|
||||
* Get the name of a file in the working directory by sort-index
|
||||
*/
|
||||
void CardReader::getfilename_sorted(const uint16_t nr) {
|
||||
selectFileByIndex(
|
||||
#if ENABLED(SDSORT_GCODE)
|
||||
sort_alpha &&
|
||||
#endif
|
||||
(nr < sort_count) ? sort_order[nr] : nr
|
||||
);
|
||||
selectFileByIndex(TERN1(SDSORT_GCODE, sort_alpha) && (nr < sort_count)
|
||||
? sort_order[nr] : nr);
|
||||
}
|
||||
|
||||
#if ENABLED(SDSORT_USES_RAM)
|
||||
@ -910,9 +875,7 @@ void CardReader::cdroot() {
|
||||
flush_presort();
|
||||
|
||||
// Sorting may be turned off
|
||||
#if ENABLED(SDSORT_GCODE)
|
||||
if (!sort_alpha) return;
|
||||
#endif
|
||||
if (TERN0(SDSORT_GCODE, !sort_alpha)) return;
|
||||
|
||||
// If there are files, sort up to the limit
|
||||
uint16_t fileCnt = countFilesInWorkDir();
|
||||
@ -923,9 +886,7 @@ void CardReader::cdroot() {
|
||||
NOMORE(fileCnt, uint16_t(SDSORT_LIMIT));
|
||||
|
||||
// Sort order is always needed. May be static or dynamic.
|
||||
#if ENABLED(SDSORT_DYNAMIC_RAM)
|
||||
sort_order = new uint8_t[fileCnt];
|
||||
#endif
|
||||
TERN_(SDSORT_DYNAMIC_RAM, sort_order = new uint8_t[fileCnt]);
|
||||
|
||||
// Use RAM to store the entire directory during pre-sort.
|
||||
// SDSORT_LIMIT should be set to prevent over-allocation.
|
||||
@ -963,11 +924,7 @@ void CardReader::cdroot() {
|
||||
|
||||
// Init sort order.
|
||||
for (uint16_t i = 0; i < fileCnt; i++) {
|
||||
sort_order[i] = (
|
||||
#if ENABLED(SDCARD_RATHERRECENTFIRST)
|
||||
fileCnt - 1 -
|
||||
#endif
|
||||
i);
|
||||
sort_order[i] = TERN(SDCARD_RATHERRECENTFIRST, fileCnt - 1 - i, i);
|
||||
// If using RAM then read all filenames now.
|
||||
#if ENABLED(SDSORT_USES_RAM)
|
||||
selectFileByIndex(i);
|
||||
@ -991,9 +948,7 @@ void CardReader::cdroot() {
|
||||
#if DISABLED(SDSORT_USES_RAM)
|
||||
selectFileByIndex(o1); // Pre-fetch the first entry and save it
|
||||
strcpy(name1, longest_filename()); // so the loop only needs one fetch
|
||||
#if HAS_FOLDER_SORTING
|
||||
bool dir1 = flag.filenameIsDir;
|
||||
#endif
|
||||
TERN_(HAS_FOLDER_SORTING, bool dir1 = flag.filenameIsDir);
|
||||
#endif
|
||||
|
||||
for (uint16_t j = 0; j < i; ++j) {
|
||||
@ -1045,9 +1000,7 @@ void CardReader::cdroot() {
|
||||
// The next o1 is the current o2. No new fetch needed.
|
||||
o1 = o2;
|
||||
#if DISABLED(SDSORT_USES_RAM)
|
||||
#if HAS_FOLDER_SORTING
|
||||
dir1 = dir2;
|
||||
#endif
|
||||
TERN_(HAS_FOLDER_SORTING, dir1 = dir2);
|
||||
strcpy(name1, name2);
|
||||
#endif
|
||||
}
|
||||
@ -1058,9 +1011,7 @@ void CardReader::cdroot() {
|
||||
#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
|
||||
TERN_(HAS_FOLDER_SORTING, free(isDir));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
@ -1127,9 +1078,7 @@ void CardReader::fileHasFinished() {
|
||||
else {
|
||||
endFilePrint();
|
||||
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
presort();
|
||||
#endif
|
||||
TERN_(SDCARD_SORT_ALPHA, presort());
|
||||
|
||||
marlin_state = MF_SD_COMPLETE;
|
||||
}
|
||||
|
@ -25,7 +25,9 @@
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
|
||||
#define SD_RESORT BOTH(SDCARD_SORT_ALPHA, SDSORT_DYNAMIC_RAM)
|
||||
#if BOTH(SDCARD_SORT_ALPHA, SDSORT_DYNAMIC_RAM)
|
||||
#define SD_RESORT 1
|
||||
#endif
|
||||
|
||||
#define MAX_DIR_DEPTH 10 // Maximum folder depth
|
||||
#define MAXDIRNAMELENGTH 8 // DOS folder name size
|
||||
@ -113,11 +115,7 @@ public:
|
||||
static void getAbsFilename(char *dst);
|
||||
static void printFilename();
|
||||
static void startFileprint();
|
||||
static void endFilePrint(
|
||||
#if SD_RESORT
|
||||
const bool re_sort=false
|
||||
#endif
|
||||
);
|
||||
static void endFilePrint(TERN_(SD_RESORT, const bool re_sort=false));
|
||||
static void report_status();
|
||||
static inline void pauseSDPrint() { flag.sdprinting = false; }
|
||||
static inline bool isPaused() { return isFileOpen() && !flag.sdprinting; }
|
||||
|
Reference in New Issue
Block a user