Skip to content

Commit 7467f44

Browse files
rhapsodyvlukasradek
authored andcommitted
πŸ§‘β€πŸ’» General 'MediaFile' type alias (MarlinFirmware#24424)
1 parent e85ec4d commit 7467f44

File tree

3 files changed

+78
-6
lines changed

3 files changed

+78
-6
lines changed

β€ŽMarlin/src/lcd/extui/mks_ui/wifi_module.cpp

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -980,8 +980,80 @@ static void wifi_gcode_exec(uint8_t * const cmd_line) {
980980
send_ok_to_wifi();
981981
}
982982
}
983-
}
984-
break;
983+
break;
984+
985+
case 24:
986+
if (strcmp_P(list_file.file_name[sel_id], PSTR("notValid")) != 0) {
987+
if (uiCfg.print_state == IDLE) {
988+
clear_cur_ui();
989+
reset_print_time();
990+
start_print_time();
991+
preview_gcode_prehandle(list_file.file_name[sel_id]);
992+
uiCfg.print_state = WORKING;
993+
lv_draw_printing();
994+
995+
#if ENABLED(SDSUPPORT)
996+
if (!gcode_preview_over) {
997+
char *cur_name = strrchr(list_file.file_name[sel_id], '/');
998+
999+
MediaFile file;
1000+
MediaFile *curDir;
1001+
card.abortFilePrintNow();
1002+
const char * const fname = card.diveToFile(false, curDir, cur_name);
1003+
if (!fname) return;
1004+
if (file.open(curDir, fname, O_READ)) {
1005+
gCfgItems.curFilesize = file.fileSize();
1006+
file.close();
1007+
update_spi_flash();
1008+
}
1009+
card.openFileRead(cur_name);
1010+
if (card.isFileOpen()) {
1011+
//saved_feedrate_percentage = feedrate_percentage;
1012+
feedrate_percentage = 100;
1013+
#if HAS_EXTRUDERS
1014+
planner.flow_percentage[0] = 100;
1015+
planner.e_factor[0] = planner.flow_percentage[0] * 0.01f;
1016+
#endif
1017+
#if HAS_MULTI_EXTRUDER
1018+
planner.flow_percentage[1] = 100;
1019+
planner.e_factor[1] = planner.flow_percentage[1] * 0.01f;
1020+
#endif
1021+
card.startOrResumeFilePrinting();
1022+
TERN_(POWER_LOSS_RECOVERY, recovery.prepare());
1023+
once_flag = false;
1024+
}
1025+
}
1026+
#endif
1027+
}
1028+
else if (uiCfg.print_state == PAUSED) {
1029+
uiCfg.print_state = RESUMING;
1030+
clear_cur_ui();
1031+
start_print_time();
1032+
1033+
if (gCfgItems.from_flash_pic)
1034+
flash_preview_begin = true;
1035+
else
1036+
default_preview_flg = true;
1037+
lv_draw_printing();
1038+
}
1039+
else if (uiCfg.print_state == REPRINTING) {
1040+
uiCfg.print_state = REPRINTED;
1041+
clear_cur_ui();
1042+
start_print_time();
1043+
if (gCfgItems.from_flash_pic)
1044+
flash_preview_begin = true;
1045+
else
1046+
default_preview_flg = true;
1047+
lv_draw_printing();
1048+
}
1049+
}
1050+
SEND_OK_TO_WIFI;
1051+
break;
1052+
1053+
case 25:
1054+
// Pause print file
1055+
if (uiCfg.print_state == WORKING) {
1056+
stop_print_time();
9851057

9861058
case 24:
9871059
if (strcmp_P(list_file.file_name[sel_id], PSTR("notValid")) != 0) {

β€ŽMarlin/src/sd/cardreader.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ bool CardReader::is_visible_entity(const dir_t &p OPTARG(CUSTOM_FIRMWARE_UPLOAD,
228228
//
229229
// Get the number of (compliant) items in the folder
230230
//
231-
int16_t CardReader::countVisibleItems(MediaFile dir) {
231+
int CardReader::countItems(MediaFile dir) {
232232
dir_t p;
233233
int16_t c = 0;
234234
dir.rewind();
@@ -239,7 +239,7 @@ int16_t CardReader::countVisibleItems(MediaFile dir) {
239239
//
240240
// Get file/folder info for an item by index
241241
//
242-
void CardReader::selectByIndex(MediaFile dir, const int16_t index) {
242+
void CardReader::selectByIndex(MediaFile dir, const uint8_t index) {
243243
dir_t p;
244244
for (int16_t cnt = 0; dir.readDir(&p, longFilename) > 0;) {
245245
if (is_visible_entity(p)) {

β€ŽMarlin/src/sd/cardreader.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,8 +335,8 @@ class CardReader {
335335
// Directory items
336336
//
337337
static bool is_visible_entity(const dir_t &p OPTARG(CUSTOM_FIRMWARE_UPLOAD, const bool onlyBin=false));
338-
static int16_t countVisibleItems(MediaFile dir);
339-
static void selectByIndex(MediaFile dir, const int16_t index);
338+
static int countItems(MediaFile dir);
339+
static void selectByIndex(MediaFile dir, const uint8_t index);
340340
static void selectByName(MediaFile dir, const char * const match);
341341
static void printListing(
342342
MediaFile parent, const char * const prepend, const uint8_t lsflags

0 commit comments

Comments
Β (0)