void CardReader::checkautostart(bool force) { if (!force && (!autostart_stilltocheck || next_autostart_ms < millis())) return; autostart_stilltocheck = false; if (!cardOK) { initsd(); if (!cardOK) return; // fail } char autoname[30]; sprintf_P(autoname, PSTR("auto%i.g"), autostart_index); for (int8_t i = 0; i < (int8_t)strlen(autoname); i++) autoname[i] = tolower(autoname[i]); dir_t p; root.rewind(); bool found = false; while (root.readDir(p, NULL) > 0) { for (int8_t i = 0; i < (int8_t)strlen((char*)p.name); i++) p.name[i] = tolower(p.name[i]); if (p.name[9] != '~' && strncmp((char*)p.name, autoname, 5) == 0) { char cmd[30]; sprintf_P(cmd, PSTR("M23 %s"), autoname); enqueuecommand(cmd); enqueuecommands_P(PSTR("M24")); found = true; } } if (!found) autostart_index = -1; else autostart_index++; }
static void menu_action_sdfile(const char* filename) { char cmd[30]; char* c; sprintf_P(cmd, PSTR("M23 %s"), filename); for(c = &cmd[4]; *c; c++) *c = tolower(*c); enqueuecommand(cmd); enqueuecommands_P(PSTR("M24")); setpageInfo(); }