4646 #define SENDLINE_DBG_PGM_VAL (x,y,z ) sendLine_P(PSTR(x))
4747#endif
4848
49+ // Append ".gcode" to filename, if requested. Used for some DGUS-clone displays with built-in filter.
50+ // Filenames are limited to 26 characters, so the actual name for the FILENAME can be 20 characters at most.
51+ // If a longer string is desired without "extension, use the ALTNAME macro to provide a (longer) alternative.
52+ #define SPECIAL_MENU_FILENAME (A ) A TERN_ (ANYCUBIC_LCD_GCODE_EXT, " .gcode" )
53+ #define SPECIAL_MENU_ALTNAME (A, B ) TERN(ANYCUBIC_LCD_GCODE_EXT, A " .gcode" , B)
54+
4955AnycubicTFTClass AnycubicTFT;
5056
5157char AnycubicTFTClass::TFTcmdbuffer[TFTBUFSIZE][TFT_MAX_CMD_SIZE];
@@ -383,8 +389,8 @@ void AnycubicTFTClass::RenderCurrentFileList() {
383389 if (!isMediaInserted () && !SpecialMenu) {
384390 SENDLINE_DBG_PGM (" J02" , " TFT Serial Debug: No SD Card mounted to render Current File List... J02" );
385391
386- SENDLINE_PGM (" <Special_Menu> " );
387- SENDLINE_PGM (" <Special_Menu> " );
392+ SENDLINE_PGM (" <SPECI~1.GCO " );
393+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Special Menu> " ) );
388394 }
389395 else {
390396 if (CodeSeen (' S' ))
@@ -403,58 +409,58 @@ void AnycubicTFTClass::RenderSpecialMenu(uint16_t selectedNumber) {
403409 switch (selectedNumber) {
404410 #if ENABLED(PROBE_MANUALLY)
405411 case 0 : // First Page
406- SENDLINE_PGM (" <01ZUp0.1> " );
407- SENDLINE_PGM (" <Z Up 0.1>" );
408- SENDLINE_PGM (" <02ZUp0.02> " );
409- SENDLINE_PGM (" <Z Up 0.02>" );
410- SENDLINE_PGM (" <03ZDn0.02> " );
411- SENDLINE_PGM (" <Z Down 0.02>" );
412- SENDLINE_PGM (" <04ZDn0.1> " );
413- SENDLINE_PGM (" <Z Down 0.1>" );
412+ SENDLINE_PGM (" <01ZUP~1.GCO " );
413+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Z Up 0.1>" ) );
414+ SENDLINE_PGM (" <02ZUP~1.GCO " );
415+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Z Up 0.02>" ) );
416+ SENDLINE_PGM (" <03ZDO~1.GCO " );
417+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Z Down 0.02>" ) );
418+ SENDLINE_PGM (" <04ZDO~1.GCO " );
419+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Z Down 0.1>" ) );
414420 break ;
415421
416422 case 4 : // Second Page
417- SENDLINE_PGM (" <05PrehtBed> " );
418- SENDLINE_PGM (" <Preheat bed> " );
419- SENDLINE_PGM (" <06SMeshLvl> " );
420- SENDLINE_PGM (" < Start Mesh Leveling>" );
421- SENDLINE_PGM (" <07MeshNPnt> " );
422- SENDLINE_PGM (" <Next Mesh Point>" );
423- SENDLINE_PGM (" <08HtEndPID> " );
424- SENDLINE_PGM (" <Auto Tune Hotend PID> " );
423+ SENDLINE_PGM (" <05PRE~1.GCO " );
424+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Preheat Bed> " ) );
425+ SENDLINE_PGM (" <06MES~1.GCO " );
426+ SENDLINE_PGM (SPECIAL_MENU_ALTNAME ( " <Mesh Leveling> " , " < Start Mesh Leveling>" ) );
427+ SENDLINE_PGM (" <07NEX~1.GCO " );
428+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Next Mesh Point>" ) );
429+ SENDLINE_PGM (" <08PID~1.GCO " );
430+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <PID Tune Hotend> " ) );
425431 break ;
426432
427433 case 8 : // Third Page
428- SENDLINE_PGM (" <09HtBedPID> " );
429- SENDLINE_PGM (" <Auto Tune Hotbed PID> " );
430- SENDLINE_PGM (" <10FWDeflts> " );
431- SENDLINE_PGM (" <Load FW Defaults>" );
432- SENDLINE_PGM (" <11SvEEPROM> " );
433- SENDLINE_PGM (" <Save EEPROM>" );
434- SENDLINE_PGM (" <Exit> " );
435- SENDLINE_PGM (" <Exit>" );
434+ SENDLINE_PGM (" <09PID~1.GCO " );
435+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <PID Tune Hotbed> " ) );
436+ SENDLINE_PGM (" <10FWD~1.GCO " );
437+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Load FW Defaults>" ) );
438+ SENDLINE_PGM (" <11SAV~1.GCO " );
439+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Save EEPROM>" ) );
440+ SENDLINE_PGM (" <EXIT_~1.GCO " );
441+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Exit>" ) );
436442 break ;
437443 #else
438444 case 0 : // First Page
439- SENDLINE_PGM (" <01PrehtBed> " );
440- SENDLINE_PGM (" <Preheat bed> " );
441- SENDLINE_PGM (" <02ABL> " );
442- SENDLINE_PGM (" <Auto Bed Leveling>" );
443- SENDLINE_PGM (" <03HtEndPID> " );
444- SENDLINE_PGM (" < Auto Tune Hotend PID>" );
445- SENDLINE_PGM (" <04HtBedPID> " );
446- SENDLINE_PGM (" < Auto Tune Hotbed PID>" );
445+ SENDLINE_PGM (" <01PRE~1.GCO " );
446+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Preheat Bed> " ) );
447+ SENDLINE_PGM (" <02ABL~1.GCO " );
448+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Auto Bed Leveling>" ) );
449+ SENDLINE_PGM (" <03PID~1.GCO " );
450+ SENDLINE_PGM (SPECIAL_MENU_ALTNAME ( " <PID Tune Hotend> " , " < Auto Tune Hotend PID>" ) );
451+ SENDLINE_PGM (" <04PID~1.GCO " );
452+ SENDLINE_PGM (SPECIAL_MENU_ALTNAME ( " <PID Tune Hotbed> " , " < Auto Tune Hotbed PID>" ) );
447453 break ;
448454
449455 case 4 : // Second Page
450- SENDLINE_PGM (" <05FWDeflts> " );
451- SENDLINE_PGM (" <Load FW Defaults>" );
452- SENDLINE_PGM (" <06SvEEPROM> " );
453- SENDLINE_PGM (" <Save EEPROM>" );
454- SENDLINE_PGM (" <07SendM108> " );
455- SENDLINE_PGM (" < Send User Confirmation>" );
456- SENDLINE_PGM (" <Exit> " );
457- SENDLINE_PGM (" <Exit>" );
456+ SENDLINE_PGM (" <05FWD~1.GCO " );
457+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Load FW Defaults>" ) );
458+ SENDLINE_PGM (" <06SAV~1.GCO " );
459+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Save EEPROM>" ) );
460+ SENDLINE_PGM (" <06SEN~1.GCO " );
461+ SENDLINE_PGM (SPECIAL_MENU_ALTNAME ( " <User Confirmation> " , " < Send User Confirmation>" ) );
462+ SENDLINE_PGM (" <EXIT_~1.GCO " );
463+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Exit>" ) );
458464 break ;
459465
460466 #endif // PROBE_MANUALLY
@@ -478,8 +484,8 @@ void AnycubicTFTClass::RenderCurrentFolder(uint16_t selectedNumber) {
478484 for (cnt = selectedNumber; cnt <= max_files; cnt++) {
479485 if (cnt == 0 ) { // Special Entry
480486 if (currentFileList.isAtRootDir ()) {
481- SENDLINE_PGM (" <specialmnu> " );
482- SENDLINE_PGM (" <Special Menu>" );
487+ SENDLINE_PGM (" <SPECI~1.GCO " );
488+ SENDLINE_PGM (SPECIAL_MENU_FILENAME ( " <Special Menu>" ) );
483489 }
484490 else {
485491 SENDLINE_PGM (" /.." );
0 commit comments