Browse Source

Fix Fan Speed menu items (#18400)

Jason Smith 4 years ago
parent
commit
5a96695ead
No account linked to committer's email address
1 changed files with 19 additions and 15 deletions
  1. 19
    15
      Marlin/src/lcd/menu/menu_temperature.cpp

+ 19
- 15
Marlin/src/lcd/menu/menu_temperature.cpp View File

@@ -210,14 +210,18 @@ void menu_temperature() {
210 210
       thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
211 211
     };
212 212
 
213
-    #if HAS_FAN1 || HAS_FAN2 || HAS_FAN3 || HAS_FAN4 || HAS_FAN5 || HAS_FAN6 || HAS_FAN7
214
-      auto fan_edit_items = [&](const uint8_t f) {
215
-        editable.uint8 = thermalManager.fan_speed[f];
216
-        EDIT_ITEM_FAST_N(percent, f, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update);
217
-        #if ENABLED(EXTRA_FAN_SPEED)
218
-          EDIT_ITEM_FAST_N(percent, f, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[f], 3, 255);
219
-        #endif
220
-      };
213
+    #if ENABLED(EXTRA_FAN_SPEED)
214
+      #define EDIT_EXTRA_FAN_SPEED(V...) EDIT_ITEM_FAST_N(V)
215
+    #else
216
+      #define EDIT_EXTRA_FAN_SPEED(...)
217
+    #endif
218
+
219
+    #if FAN_COUNT > 1
220
+      #define FAN_EDIT_ITEMS(F) do{ \
221
+        editable.uint8 = thermalManager.fan_speed[F]; \
222
+        EDIT_ITEM_FAST_N(percent, F, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update); \
223
+        EDIT_EXTRA_FAN_SPEED(percent, F, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[F], 3, 255); \
224
+      }while(0)
221 225
     #endif
222 226
 
223 227
     #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
@@ -236,37 +240,37 @@ void menu_temperature() {
236 240
       #endif
237 241
     #endif
238 242
     #if HAS_FAN1
239
-      fan_edit_items(1);
243
+      FAN_EDIT_ITEMS(1);
240 244
     #elif SNFAN(1)
241 245
       singlenozzle_item(1);
242 246
     #endif
243 247
     #if HAS_FAN2
244
-      fan_edit_items(2);
248
+      FAN_EDIT_ITEMS(2);
245 249
     #elif SNFAN(2)
246 250
       singlenozzle_item(1);
247 251
     #endif
248 252
     #if HAS_FAN3
249
-      fan_edit_items(3);
253
+      FAN_EDIT_ITEMS(3);
250 254
     #elif SNFAN(3)
251 255
       singlenozzle_item(1);
252 256
     #endif
253 257
     #if HAS_FAN4
254
-      fan_edit_items(4);
258
+      FAN_EDIT_ITEMS(4);
255 259
     #elif SNFAN(4)
256 260
       singlenozzle_item(1);
257 261
     #endif
258 262
     #if HAS_FAN5
259
-      fan_edit_items(5);
263
+      FAN_EDIT_ITEMS(5);
260 264
     #elif SNFAN(5)
261 265
       singlenozzle_item(1);
262 266
     #endif
263 267
     #if HAS_FAN6
264
-      fan_edit_items(6);
268
+      FAN_EDIT_ITEMS(6);
265 269
     #elif SNFAN(6)
266 270
       singlenozzle_item(1);
267 271
     #endif
268 272
     #if HAS_FAN7
269
-      fan_edit_items(7);
273
+      FAN_EDIT_ITEMS(7);
270 274
     #elif SNFAN(7)
271 275
       singlenozzle_item(1);
272 276
     #endif

Loading…
Cancel
Save