Browse Source

Conditionalize functions that rely on SDSUPPORT

Scott Lahteine 9 years ago
parent
commit
e27dd5c22d
3 changed files with 98 additions and 81 deletions
  1. 20
    16
      Marlin/dogm_lcd_implementation.h
  2. 54
    45
      Marlin/ultralcd.cpp
  3. 24
    20
      Marlin/ultralcd_implementation_hitachi_HD44780.h

+ 20
- 16
Marlin/dogm_lcd_implementation.h View File

504
   lcd_print(value);
504
   lcd_print(value);
505
 }
505
 }
506
 
506
 
507
-static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir) {
508
-  char c;
509
-  uint8_t n = LCD_WIDTH - 1;
507
+#if ENABLED(SDSUPPORT)
510
 
508
 
511
-  if (longFilename[0]) {
512
-    filename = longFilename;
513
-    longFilename[n] = '\0';
514
-  }
509
+  static void _drawmenu_sd(bool isSelected, uint8_t row, const char* pstr, const char* filename, char * const longFilename, bool isDir) {
510
+    char c;
511
+    uint8_t n = LCD_WIDTH - 1;
515
 
512
 
516
-  lcd_implementation_mark_as_selected(row, isSelected);
513
+    if (longFilename[0]) {
514
+      filename = longFilename;
515
+      longFilename[n] = '\0';
516
+    }
517
 
517
 
518
-  if (isDir) lcd_print(LCD_STR_FOLDER[0]);
519
-  while ((c = *filename)) {
520
-    n -= lcd_print(c);
521
-    filename++;
518
+    lcd_implementation_mark_as_selected(row, isSelected);
519
+
520
+    if (isDir) lcd_print(LCD_STR_FOLDER[0]);
521
+    while ((c = *filename)) {
522
+      n -= lcd_print(c);
523
+      filename++;
524
+    }
525
+    while (n--) lcd_print(' ');
522
   }
526
   }
523
-  while (n--) lcd_print(' ');
524
-}
525
 
527
 
526
-#define lcd_implementation_drawmenu_sdfile(sel, row, pstr, filename, longFilename) _drawmenu_sd(sel, row, pstr, filename, longFilename, false)
527
-#define lcd_implementation_drawmenu_sddirectory(sel, row, pstr, filename, longFilename) _drawmenu_sd(sel, row, pstr, filename, longFilename, true)
528
+  #define lcd_implementation_drawmenu_sdfile(sel, row, pstr, filename, longFilename) _drawmenu_sd(sel, row, pstr, filename, longFilename, false)
529
+  #define lcd_implementation_drawmenu_sddirectory(sel, row, pstr, filename, longFilename) _drawmenu_sd(sel, row, pstr, filename, longFilename, true)
530
+
531
+#endif //SDSUPPORT
528
 
532
 
529
 #define lcd_implementation_drawmenu_back(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
533
 #define lcd_implementation_drawmenu_back(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
530
 #define lcd_implementation_drawmenu_submenu(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
534
 #define lcd_implementation_drawmenu_submenu(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])

+ 54
- 45
Marlin/ultralcd.cpp View File

55
   static void lcd_control_temperature_preheat_abs_settings_menu();
55
   static void lcd_control_temperature_preheat_abs_settings_menu();
56
   static void lcd_control_motion_menu();
56
   static void lcd_control_motion_menu();
57
   static void lcd_control_volumetric_menu();
57
   static void lcd_control_volumetric_menu();
58
+
58
   #if ENABLED(HAS_LCD_CONTRAST)
59
   #if ENABLED(HAS_LCD_CONTRAST)
59
     static void lcd_set_contrast();
60
     static void lcd_set_contrast();
60
   #endif
61
   #endif
62
+
61
   #if ENABLED(FWRETRACT)
63
   #if ENABLED(FWRETRACT)
62
     static void lcd_control_retract_menu();
64
     static void lcd_control_retract_menu();
63
   #endif
65
   #endif
64
-  static void lcd_sdcard_menu();
65
 
66
 
66
   #if ENABLED(DELTA_CALIBRATION_MENU)
67
   #if ENABLED(DELTA_CALIBRATION_MENU)
67
     static void lcd_delta_calibrate_menu();
68
     static void lcd_delta_calibrate_menu();
79
   static void menu_action_submenu(menuFunc_t data);
80
   static void menu_action_submenu(menuFunc_t data);
80
   static void menu_action_gcode(const char* pgcode);
81
   static void menu_action_gcode(const char* pgcode);
81
   static void menu_action_function(menuFunc_t data);
82
   static void menu_action_function(menuFunc_t data);
82
-  static void menu_action_sdfile(const char* filename, char* longFilename);
83
-  static void menu_action_sddirectory(const char* filename, char* longFilename);
84
   static void menu_action_setting_edit_bool(const char* pstr, bool* ptr);
83
   static void menu_action_setting_edit_bool(const char* pstr, bool* ptr);
85
   static void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue);
84
   static void menu_action_setting_edit_int3(const char* pstr, int* ptr, int minValue, int maxValue);
86
   static void menu_action_setting_edit_float3(const char* pstr, float* ptr, float minValue, float maxValue);
85
   static void menu_action_setting_edit_float3(const char* pstr, float* ptr, float minValue, float maxValue);
100
   static void menu_action_setting_edit_callback_float52(const char* pstr, float* ptr, float minValue, float maxValue, menuFunc_t callbackFunc);
99
   static void menu_action_setting_edit_callback_float52(const char* pstr, float* ptr, float minValue, float maxValue, menuFunc_t callbackFunc);
101
   static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue, menuFunc_t callbackFunc);
100
   static void menu_action_setting_edit_callback_long5(const char* pstr, unsigned long* ptr, unsigned long minValue, unsigned long maxValue, menuFunc_t callbackFunc);
102
 
101
 
102
+  #if ENABLED(SDSUPPORT)
103
+    static void lcd_sdcard_menu();
104
+    static void menu_action_sdfile(const char* filename, char* longFilename);
105
+    static void menu_action_sddirectory(const char* filename, char* longFilename);
106
+  #endif
107
+
103
   #define ENCODER_FEEDRATE_DEADZONE 10
108
   #define ENCODER_FEEDRATE_DEADZONE 10
104
 
109
 
105
   #if DISABLED(LCD_I2C_VIKI)
110
   #if DISABLED(LCD_I2C_VIKI)
578
   fanSpeed = fan;
583
   fanSpeed = fan;
579
   lcd_return_to_status();
584
   lcd_return_to_status();
580
 }
585
 }
581
-void lcd_preheat_pla0() { _lcd_preheat(0, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
582
-void lcd_preheat_abs0() { _lcd_preheat(0, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
586
+
587
+#if TEMP_SENSOR_0 != 0
588
+  void lcd_preheat_pla0() { _lcd_preheat(0, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
589
+  void lcd_preheat_abs0() { _lcd_preheat(0, absPreheatHotendTemp, absPreheatHPBTemp, absPreheatFanSpeed); }
590
+#endif
583
 
591
 
584
 #if EXTRUDERS > 1
592
 #if EXTRUDERS > 1
585
   void lcd_preheat_pla1() { _lcd_preheat(1, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
593
   void lcd_preheat_pla1() { _lcd_preheat(1, plaPreheatHotendTemp, plaPreheatHPBTemp, plaPreheatFanSpeed); }
613
   void lcd_preheat_abs_bedonly() { _lcd_preheat(0, 0, absPreheatHPBTemp, absPreheatFanSpeed); }
621
   void lcd_preheat_abs_bedonly() { _lcd_preheat(0, 0, absPreheatHPBTemp, absPreheatFanSpeed); }
614
 #endif
622
 #endif
615
 
623
 
616
-static void lcd_preheat_pla_menu() {
617
-  START_MENU();
618
-  MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
619
-  #if EXTRUDERS == 1
620
-    MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);
621
-  #else
622
-    MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H1, lcd_preheat_pla0);
623
-    #if EXTRUDERS > 1
624
+#if TEMP_SENSOR_0 != 0 && (TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_BED != 0)
625
+
626
+  static void lcd_preheat_pla_menu() {
627
+    START_MENU();
628
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
629
+    #if EXTRUDERS == 1
630
+      MENU_ITEM(function, MSG_PREHEAT_PLA, lcd_preheat_pla0);
631
+    #else
632
+      MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H1, lcd_preheat_pla0);
624
       MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H2, lcd_preheat_pla1);
633
       MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H2, lcd_preheat_pla1);
625
       #if EXTRUDERS > 2
634
       #if EXTRUDERS > 2
626
         MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H3, lcd_preheat_pla2);
635
         MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H3, lcd_preheat_pla2);
628
           MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H4, lcd_preheat_pla3);
637
           MENU_ITEM(function, MSG_PREHEAT_PLA_N MSG_H4, lcd_preheat_pla3);
629
         #endif
638
         #endif
630
       #endif
639
       #endif
640
+      MENU_ITEM(function, MSG_PREHEAT_PLA_ALL, lcd_preheat_pla0123);
631
     #endif
641
     #endif
632
-    MENU_ITEM(function, MSG_PREHEAT_PLA_ALL, lcd_preheat_pla0123);
633
-  #endif
634
-  #if TEMP_SENSOR_BED != 0
635
-    MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly);
636
-  #endif
637
-  END_MENU();
638
-}
642
+    #if TEMP_SENSOR_BED != 0
643
+      MENU_ITEM(function, MSG_PREHEAT_PLA_BEDONLY, lcd_preheat_pla_bedonly);
644
+    #endif
645
+    END_MENU();
646
+  }
639
 
647
 
640
-static void lcd_preheat_abs_menu() {
641
-  START_MENU();
642
-  MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
643
-  #if EXTRUDERS == 1
644
-    MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);
645
-  #else
646
-    MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H1, lcd_preheat_abs0);
647
-    #if EXTRUDERS > 1
648
+  static void lcd_preheat_abs_menu() {
649
+    START_MENU();
650
+    MENU_ITEM(back, MSG_PREPARE, lcd_prepare_menu);
651
+    #if EXTRUDERS == 1
652
+      MENU_ITEM(function, MSG_PREHEAT_ABS, lcd_preheat_abs0);
653
+    #else
654
+      MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H1, lcd_preheat_abs0);
648
       MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H2, lcd_preheat_abs1);
655
       MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H2, lcd_preheat_abs1);
649
       #if EXTRUDERS > 2
656
       #if EXTRUDERS > 2
650
         MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H3, lcd_preheat_abs2);
657
         MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H3, lcd_preheat_abs2);
652
           MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H4, lcd_preheat_abs3);
659
           MENU_ITEM(function, MSG_PREHEAT_ABS_N MSG_H4, lcd_preheat_abs3);
653
         #endif
660
         #endif
654
       #endif
661
       #endif
662
+      MENU_ITEM(function, MSG_PREHEAT_ABS_ALL, lcd_preheat_abs0123);
655
     #endif
663
     #endif
656
-    MENU_ITEM(function, MSG_PREHEAT_ABS_ALL, lcd_preheat_abs0123);
657
-  #endif
658
-  #if TEMP_SENSOR_BED != 0
659
-    MENU_ITEM(function, MSG_PREHEAT_ABS_BEDONLY, lcd_preheat_abs_bedonly);
660
-  #endif
661
-  END_MENU();
662
-}
664
+    #if TEMP_SENSOR_BED != 0
665
+      MENU_ITEM(function, MSG_PREHEAT_ABS_BEDONLY, lcd_preheat_abs_bedonly);
666
+    #endif
667
+    END_MENU();
668
+  }
669
+
670
+#endif // TEMP_SENSOR_0 && (TEMP_SENSOR_1 || TEMP_SENSOR_2 || TEMP_SENSOR_3 || TEMP_SENSOR_BED)
663
 
671
 
664
 void lcd_cooldown() {
672
 void lcd_cooldown() {
665
   disable_all_heaters();
673
   disable_all_heaters();
1441
 static void menu_action_submenu(menuFunc_t func) { lcd_goto_menu(func); }
1449
 static void menu_action_submenu(menuFunc_t func) { lcd_goto_menu(func); }
1442
 static void menu_action_gcode(const char* pgcode) { enqueuecommands_P(pgcode); }
1450
 static void menu_action_gcode(const char* pgcode) { enqueuecommands_P(pgcode); }
1443
 static void menu_action_function(menuFunc_t func) { (*func)(); }
1451
 static void menu_action_function(menuFunc_t func) { (*func)(); }
1444
-static void menu_action_sdfile(const char* filename, char* longFilename) {
1445
-  char cmd[30];
1446
-  char* c;
1447
-  sprintf_P(cmd, PSTR("M23 %s"), filename);
1448
-  for(c = &cmd[4]; *c; c++) *c = tolower(*c);
1449
-  enqueuecommand(cmd);
1450
-  enqueuecommands_P(PSTR("M24"));
1451
-  lcd_return_to_status();
1452
-}
1453
 
1452
 
1454
 #if ENABLED(SDSUPPORT)
1453
 #if ENABLED(SDSUPPORT)
1455
 
1454
 
1455
+  static void menu_action_sdfile(const char* filename, char* longFilename) {
1456
+    char cmd[30];
1457
+    char* c;
1458
+    sprintf_P(cmd, PSTR("M23 %s"), filename);
1459
+    for(c = &cmd[4]; *c; c++) *c = tolower(*c);
1460
+    enqueuecommand(cmd);
1461
+    enqueuecommands_P(PSTR("M24"));
1462
+    lcd_return_to_status();
1463
+  }
1464
+
1456
   static void menu_action_sddirectory(const char* filename, char* longFilename) {
1465
   static void menu_action_sddirectory(const char* filename, char* longFilename) {
1457
     card.chdir(filename);
1466
     card.chdir(filename);
1458
     encoderPosition = 0;
1467
     encoderPosition = 0;
1459
   }
1468
   }
1460
 
1469
 
1461
-#endif
1470
+#endif //SDSUPPORT
1462
 
1471
 
1463
 static void menu_action_setting_edit_bool(const char* pstr, bool* ptr) { *ptr = !(*ptr); }
1472
 static void menu_action_setting_edit_bool(const char* pstr, bool* ptr) { *ptr = !(*ptr); }
1464
 static void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, menuFunc_t callback) {
1473
 static void menu_action_setting_edit_callback_bool(const char* pstr, bool* ptr, menuFunc_t callback) {

+ 24
- 20
Marlin/ultralcd_implementation_hitachi_HD44780.h View File

794
   lcd_print(value);
794
   lcd_print(value);
795
 }
795
 }
796
 
796
 
797
-static void lcd_implementation_drawmenu_sd(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename, uint8_t concat, char post_char) {
798
-  char c;
799
-  uint8_t n = LCD_WIDTH - concat;
800
-  lcd.setCursor(0, row);
801
-  lcd.print(sel ? '>' : ' ');
802
-  if (longFilename[0]) {
803
-    filename = longFilename;
804
-    longFilename[n] = '\0';
797
+#if ENABLED(SDSUPPORT)
798
+
799
+  static void lcd_implementation_drawmenu_sd(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename, uint8_t concat, char post_char) {
800
+    char c;
801
+    uint8_t n = LCD_WIDTH - concat;
802
+    lcd.setCursor(0, row);
803
+    lcd.print(sel ? '>' : ' ');
804
+    if (longFilename[0]) {
805
+      filename = longFilename;
806
+      longFilename[n] = '\0';
807
+    }
808
+    while ((c = *filename) && n > 0) {
809
+      n -= lcd_print(c);
810
+      filename++;
811
+    }
812
+    while (n--) lcd.print(' ');
813
+    lcd.print(post_char);
805
   }
814
   }
806
-  while ((c = *filename) && n > 0) {
807
-    n -= lcd_print(c);
808
-    filename++;
815
+
816
+  static void lcd_implementation_drawmenu_sdfile(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
817
+    lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 2, ' ');
809
   }
818
   }
810
-  while (n--) lcd.print(' ');
811
-  lcd.print(post_char);
812
-}
813
 
819
 
814
-static void lcd_implementation_drawmenu_sdfile(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
815
-  lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 2, ' ');
816
-}
820
+  static void lcd_implementation_drawmenu_sddirectory(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
821
+    lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 2, LCD_STR_FOLDER[0]);
822
+  }
817
 
823
 
818
-static void lcd_implementation_drawmenu_sddirectory(bool sel, uint8_t row, const char* pstr, const char* filename, char* longFilename) {
819
-  lcd_implementation_drawmenu_sd(sel, row, pstr, filename, longFilename, 2, LCD_STR_FOLDER[0]);
820
-}
824
+#endif //SDSUPPORT
821
 
825
 
822
 #define lcd_implementation_drawmenu_back(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
826
 #define lcd_implementation_drawmenu_back(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, LCD_STR_UPLEVEL[0], LCD_STR_UPLEVEL[0])
823
 #define lcd_implementation_drawmenu_submenu(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])
827
 #define lcd_implementation_drawmenu_submenu(sel, row, pstr, data) lcd_implementation_drawmenu_generic(sel, row, pstr, '>', LCD_STR_ARROW_RIGHT[0])

Loading…
Cancel
Save