|
@@ -79,32 +79,35 @@ void Temperature::lcd_preheat(const int16_t e, const int8_t indh, const int8_t i
|
79
|
79
|
#if HAS_TEMP_HOTEND || HAS_HEATED_BED
|
80
|
80
|
|
81
|
81
|
#if HAS_TEMP_HOTEND && HAS_HEATED_BED
|
82
|
|
- #define _PREHEAT_ITEMS(M,E) do{ \
|
|
82
|
+
|
|
83
|
+ // Indexed "Preheat ABC" and "Heat Bed" items
|
|
84
|
+ #define PREHEAT_ITEMS(M,E) do{ \
|
83
|
85
|
ACTION_ITEM_N_P(E, msg_preheat_h[M], []{ _preheat_both(M, MenuItemBase::itemIndex); }); \
|
84
|
86
|
ACTION_ITEM_N_P(E, msg_preheat_end_e[M], []{ _preheat_end(M, MenuItemBase::itemIndex); }); \
|
85
|
87
|
}while(0)
|
86
|
88
|
|
87
|
|
- #if HAS_MULTI_HOTEND
|
88
|
|
- #define PREHEAT_ITEMS(M,E) _PREHEAT_ITEMS(M,E)
|
89
|
|
- #endif
|
90
|
|
-
|
91
|
89
|
#elif HAS_MULTI_HOTEND
|
92
|
90
|
|
|
91
|
+ // No heated bed, so just indexed "Preheat ABC" items
|
93
|
92
|
#define PREHEAT_ITEMS(M,E) ACTION_ITEM_N_P(E, msg_preheat_h[M], []{ _preheat_end(M, MenuItemBase::itemIndex); })
|
94
|
93
|
|
95
|
94
|
#endif
|
96
|
95
|
|
97
|
96
|
void menu_preheat_m(const uint8_t m) {
|
|
97
|
+
|
98
|
98
|
#if HOTENDS == 1
|
99
|
|
- PGM_P msg_preheat[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1), GET_TEXT(MSG_PREHEAT_2), GET_TEXT(MSG_PREHEAT_3), GET_TEXT(MSG_PREHEAT_4), GET_TEXT(MSG_PREHEAT_5));
|
100
|
|
- PGM_P msg_preheat_end[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END), GET_TEXT(MSG_PREHEAT_2_END), GET_TEXT(MSG_PREHEAT_3_END), GET_TEXT(MSG_PREHEAT_4_END), GET_TEXT(MSG_PREHEAT_5_END));
|
|
99
|
+ PGM_P msg_preheat[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1), GET_TEXT(MSG_PREHEAT_2), GET_TEXT(MSG_PREHEAT_3), GET_TEXT(MSG_PREHEAT_4), GET_TEXT(MSG_PREHEAT_5));
|
|
100
|
+ PGM_P msg_preheat_end[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END), GET_TEXT(MSG_PREHEAT_2_END), GET_TEXT(MSG_PREHEAT_3_END), GET_TEXT(MSG_PREHEAT_4_END), GET_TEXT(MSG_PREHEAT_5_END));
|
101
|
101
|
#elif HAS_MULTI_HOTEND
|
102
|
|
- PGM_P msg_preheat_all[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_ALL), GET_TEXT(MSG_PREHEAT_2_ALL), GET_TEXT(MSG_PREHEAT_3_ALL), GET_TEXT(MSG_PREHEAT_4_ALL), GET_TEXT(MSG_PREHEAT_5_ALL));
|
|
102
|
+ PGM_P msg_preheat_all[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_ALL), GET_TEXT(MSG_PREHEAT_2_ALL), GET_TEXT(MSG_PREHEAT_3_ALL), GET_TEXT(MSG_PREHEAT_4_ALL), GET_TEXT(MSG_PREHEAT_5_ALL));
|
|
103
|
+ #endif
|
|
104
|
+
|
|
105
|
+ #if HAS_TEMP_HOTEND && HAS_HEATED_BED && HAS_MULTI_HOTEND
|
|
106
|
+ PGM_P msg_preheat_end_e[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END_E), GET_TEXT(MSG_PREHEAT_2_END_E), GET_TEXT(MSG_PREHEAT_3_END_E), GET_TEXT(MSG_PREHEAT_4_END_E), GET_TEXT(MSG_PREHEAT_5_END_E));
|
103
|
107
|
#endif
|
104
|
|
- PGM_P msg_preheat_end_e[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_END_E), GET_TEXT(MSG_PREHEAT_2_END_E), GET_TEXT(MSG_PREHEAT_3_END_E), GET_TEXT(MSG_PREHEAT_4_END_E), GET_TEXT(MSG_PREHEAT_5_END_E));
|
105
|
108
|
|
106
|
109
|
#if HAS_MULTI_HOTEND
|
107
|
|
- PGM_P msg_preheat_h[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_H), GET_TEXT(MSG_PREHEAT_2_H), GET_TEXT(MSG_PREHEAT_3_H), GET_TEXT(MSG_PREHEAT_4_H), GET_TEXT(MSG_PREHEAT_5_H));
|
|
110
|
+ PGM_P msg_preheat_h[] = ARRAY_N(PREHEAT_COUNT, GET_TEXT(MSG_PREHEAT_1_H), GET_TEXT(MSG_PREHEAT_2_H), GET_TEXT(MSG_PREHEAT_3_H), GET_TEXT(MSG_PREHEAT_4_H), GET_TEXT(MSG_PREHEAT_5_H));
|
108
|
111
|
#endif
|
109
|
112
|
|
110
|
113
|
MenuItemBase::itemIndex = m;
|
|
@@ -123,11 +126,7 @@ void Temperature::lcd_preheat(const int16_t e, const int8_t indh, const int8_t i
|
123
|
126
|
|
124
|
127
|
#elif HAS_MULTI_HOTEND
|
125
|
128
|
|
126
|
|
- #if HAS_HEATED_BED
|
127
|
|
- _PREHEAT_ITEMS(MenuItemBase::itemIndex,0);
|
128
|
|
- #endif
|
129
|
|
-
|
130
|
|
- LOOP_S_L_N(n, 1, HOTENDS) PREHEAT_ITEMS(MenuItemBase::itemIndex,n);
|
|
129
|
+ LOOP_S_L_N(n, 0, HOTENDS) PREHEAT_ITEMS(MenuItemBase::itemIndex, n);
|
131
|
130
|
ACTION_ITEM_P(msg_preheat_all[m], []() {
|
132
|
131
|
TERN_(HAS_HEATED_BED, _preheat_bed(MenuItemBase::itemIndex));
|
133
|
132
|
HOTEND_LOOP() thermalManager.setTargetHotend(ui.material_preset[MenuItemBase::itemIndex].hotend_temp, e);
|