Browse Source

Fix Fan Speed menu items (#18400)

Jason Smith 5 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
       thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
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
     #endif
225
     #endif
222
 
226
 
223
     #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
227
     #define SNFAN(N) (ENABLED(SINGLENOZZLE_STANDBY_FAN) && !HAS_FAN##N && EXTRUDERS > N)
236
       #endif
240
       #endif
237
     #endif
241
     #endif
238
     #if HAS_FAN1
242
     #if HAS_FAN1
239
-      fan_edit_items(1);
243
+      FAN_EDIT_ITEMS(1);
240
     #elif SNFAN(1)
244
     #elif SNFAN(1)
241
       singlenozzle_item(1);
245
       singlenozzle_item(1);
242
     #endif
246
     #endif
243
     #if HAS_FAN2
247
     #if HAS_FAN2
244
-      fan_edit_items(2);
248
+      FAN_EDIT_ITEMS(2);
245
     #elif SNFAN(2)
249
     #elif SNFAN(2)
246
       singlenozzle_item(1);
250
       singlenozzle_item(1);
247
     #endif
251
     #endif
248
     #if HAS_FAN3
252
     #if HAS_FAN3
249
-      fan_edit_items(3);
253
+      FAN_EDIT_ITEMS(3);
250
     #elif SNFAN(3)
254
     #elif SNFAN(3)
251
       singlenozzle_item(1);
255
       singlenozzle_item(1);
252
     #endif
256
     #endif
253
     #if HAS_FAN4
257
     #if HAS_FAN4
254
-      fan_edit_items(4);
258
+      FAN_EDIT_ITEMS(4);
255
     #elif SNFAN(4)
259
     #elif SNFAN(4)
256
       singlenozzle_item(1);
260
       singlenozzle_item(1);
257
     #endif
261
     #endif
258
     #if HAS_FAN5
262
     #if HAS_FAN5
259
-      fan_edit_items(5);
263
+      FAN_EDIT_ITEMS(5);
260
     #elif SNFAN(5)
264
     #elif SNFAN(5)
261
       singlenozzle_item(1);
265
       singlenozzle_item(1);
262
     #endif
266
     #endif
263
     #if HAS_FAN6
267
     #if HAS_FAN6
264
-      fan_edit_items(6);
268
+      FAN_EDIT_ITEMS(6);
265
     #elif SNFAN(6)
269
     #elif SNFAN(6)
266
       singlenozzle_item(1);
270
       singlenozzle_item(1);
267
     #endif
271
     #endif
268
     #if HAS_FAN7
272
     #if HAS_FAN7
269
-      fan_edit_items(7);
273
+      FAN_EDIT_ITEMS(7);
270
     #elif SNFAN(7)
274
     #elif SNFAN(7)
271
       singlenozzle_item(1);
275
       singlenozzle_item(1);
272
     #endif
276
     #endif

Loading…
Cancel
Save