Browse Source

Menu items for Separate NeoPixel (#19280)

Zachary Annand 4 years ago
parent
commit
5ea7a8373a
No account linked to committer's email address

+ 10
- 0
Marlin/src/feature/leds/leds.cpp View File

183
                             : neo2.Color(incol.r, incol.g, incol.b, incol.w);
183
                             : neo2.Color(incol.r, incol.g, incol.b, incol.w);
184
     neo2.set_brightness(incol.i);
184
     neo2.set_brightness(incol.i);
185
     neo2.set_color(neocolor);
185
     neo2.set_color(neocolor);
186
+  
187
+    #if ENABLED(LED_CONTROL_MENU)
188
+      // Don't update the color when OFF
189
+      lights_on = !incol.is_off();
190
+      if (lights_on) color = incol;
191
+    #endif
186
   }
192
   }
193
+    
194
+  #if ENABLED(LED_CONTROL_MENU)
195
+    void LEDLights2::toggle() { if (lights_on) set_off(); else update(); }
196
+  #endif
187
 
197
 
188
 #endif  // NEOPIXEL2_SEPARATE
198
 #endif  // NEOPIXEL2_SEPARATE
189
 
199
 

+ 1
- 1
Marlin/src/feature/leds/leds.h View File

240
       static inline void set_violet()   { set_color(LEDColorViolet()); }
240
       static inline void set_violet()   { set_color(LEDColorViolet()); }
241
     #endif
241
     #endif
242
 
242
 
243
-    #if ENABLED(LED_CONTROL_MENU)
243
+    #if ENABLED(NEOPIXEL2_SEPARATE)
244
       static LEDColor color; // last non-off color
244
       static LEDColor color; // last non-off color
245
       static bool lights_on; // the last set color was "on"
245
       static bool lights_on; // the last set color was "on"
246
       static void toggle();  // swap "off" with color
246
       static void toggle();  // swap "off" with color

+ 10
- 8
Marlin/src/inc/SanityCheck.h View File

2119
   #if !(_RGB_TEST && PIN_EXISTS(RGB_LED_W))
2119
   #if !(_RGB_TEST && PIN_EXISTS(RGB_LED_W))
2120
     #error "RGBW_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, RGB_LED_B_PIN, and RGB_LED_W_PIN."
2120
     #error "RGBW_LED requires RGB_LED_R_PIN, RGB_LED_G_PIN, RGB_LED_B_PIN, and RGB_LED_W_PIN."
2121
   #endif
2121
   #endif
2122
-#elif ENABLED(NEOPIXEL_LED)
2123
-  #if !(PIN_EXISTS(NEOPIXEL) && NEOPIXEL_PIXELS > 0)
2122
+#endif
2123
+#undef _RGB_TEST
2124
+
2125
+// NeoPixel requirements
2126
+#if ENABLED(NEOPIXEL_LED)
2127
+  #if !PIN_EXISTS(NEOPIXEL) || NEOPIXEL_PIXELS == 0
2124
     #error "NEOPIXEL_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS."
2128
     #error "NEOPIXEL_LED requires NEOPIXEL_PIN and NEOPIXEL_PIXELS."
2125
-  #endif
2126
-  #elif ENABLED(NEOPIXEL2_SEPARATE)
2127
-   #if !(PIN_EXISTS(NEOPIXEL2) && NEOPIXEL2_PIXELS > 0)
2128
-    #error "NEOPIXEL2 requires NEOPIXEL2_PIN and NEOPIXEL2_PIXELS."
2129
+  #elif ENABLED(NEOPIXEL2_SEPARATE) && !(NEOPIXEL2_TYPE && PIN_EXISTS(NEOPIXEL2) && NEOPIXEL2_PIXELS > 0)
2130
+    #error "NEOPIXEL2_SEPARATE requires NEOPIXEL2_PIN, NEOPIXEL2_TYPE and NEOPIXEL2_PIXELS."
2131
+  #elif ENABLED(NEO2_COLOR_PRESETS) && DISABLED(NEOPIXEL2_SEPARATE)
2132
+    #error "NEO2_COLOR_PRESETS requires NEOPIXEL2_SEPARATE to be enabled."
2129
   #endif
2133
   #endif
2130
 #endif
2134
 #endif
2131
 
2135
 
2132
-#undef _RGB_TEST
2133
-
2134
 #if DISABLED(NO_COMPILE_TIME_PWM)
2136
 #if DISABLED(NO_COMPILE_TIME_PWM)
2135
   #define _TEST_PWM(P) PWM_PIN(P)
2137
   #define _TEST_PWM(P) PWM_PIN(P)
2136
 #else
2138
 #else

+ 4
- 0
Marlin/src/lcd/language/language_en.h View File

222
   PROGMEM Language_Str MSG_SET_LEDS_VIOLET                 = _UxGT("Violet");
222
   PROGMEM Language_Str MSG_SET_LEDS_VIOLET                 = _UxGT("Violet");
223
   PROGMEM Language_Str MSG_SET_LEDS_WHITE                  = _UxGT("White");
223
   PROGMEM Language_Str MSG_SET_LEDS_WHITE                  = _UxGT("White");
224
   PROGMEM Language_Str MSG_SET_LEDS_DEFAULT                = _UxGT("Default");
224
   PROGMEM Language_Str MSG_SET_LEDS_DEFAULT                = _UxGT("Default");
225
+  PROGMEM Language_Str MSG_LED_CHANNEL_N                   = _UxGT("Channel =");
226
+  PROGMEM Language_Str MSG_LEDS2                           = _UxGT("Lights #2");
227
+  PROGMEM Language_Str MSG_NEO2_PRESETS                    = _UxGT("Light #2 Presets");
228
+  PROGMEM Language_Str MSG_NEO2_BRIGHTNESS                 = _UxGT("Brightness");
225
   PROGMEM Language_Str MSG_CUSTOM_LEDS                     = _UxGT("Custom Lights");
229
   PROGMEM Language_Str MSG_CUSTOM_LEDS                     = _UxGT("Custom Lights");
226
   PROGMEM Language_Str MSG_INTENSITY_R                     = _UxGT("Red Intensity");
230
   PROGMEM Language_Str MSG_INTENSITY_R                     = _UxGT("Red Intensity");
227
   PROGMEM Language_Str MSG_INTENSITY_G                     = _UxGT("Green Intensity");
231
   PROGMEM Language_Str MSG_INTENSITY_G                     = _UxGT("Green Intensity");

+ 42
- 2
Marlin/src/lcd/menu/menu_led.cpp View File

54
 
54
 
55
   #endif
55
   #endif
56
 
56
 
57
+  #if ENABLED(NEO2_COLOR_PRESETS)
58
+
59
+    void menu_leds2_presets() {
60
+      START_MENU();
61
+      #if LCD_HEIGHT > 2
62
+        STATIC_ITEM(MSG_NEO2_PRESETS, SS_DEFAULT|SS_INVERT);
63
+      #endif
64
+      BACK_ITEM(MSG_LED_CONTROL);
65
+      ACTION_ITEM(MSG_SET_LEDS_WHITE,  leds2.set_white);
66
+      ACTION_ITEM(MSG_SET_LEDS_RED,    leds2.set_red);
67
+      ACTION_ITEM(MSG_SET_LEDS_ORANGE, leds2.set_orange);
68
+      ACTION_ITEM(MSG_SET_LEDS_YELLOW, leds2.set_yellow);
69
+      ACTION_ITEM(MSG_SET_LEDS_GREEN,  leds2.set_green);
70
+      ACTION_ITEM(MSG_SET_LEDS_BLUE,   leds2.set_blue);
71
+      ACTION_ITEM(MSG_SET_LEDS_INDIGO, leds2.set_indigo);
72
+      ACTION_ITEM(MSG_SET_LEDS_VIOLET, leds2.set_violet);
73
+      END_MENU();
74
+    }
75
+
76
+  #endif
77
+
57
   void menu_led_custom() {
78
   void menu_led_custom() {
58
     START_MENU();
79
     START_MENU();
59
     BACK_ITEM(MSG_LED_CONTROL);
80
     BACK_ITEM(MSG_LED_CONTROL);
81
+    #if ENABLED(NEOPIXEL2_SEPARATE)
82
+      STATIC_ITEM_N(MSG_LED_CHANNEL_N, 1, SS_DEFAULT|SS_INVERT);
83
+    #endif
60
     EDIT_ITEM(uint8, MSG_INTENSITY_R, &leds.color.r, 0, 255, leds.update, true);
84
     EDIT_ITEM(uint8, MSG_INTENSITY_R, &leds.color.r, 0, 255, leds.update, true);
61
     EDIT_ITEM(uint8, MSG_INTENSITY_G, &leds.color.g, 0, 255, leds.update, true);
85
     EDIT_ITEM(uint8, MSG_INTENSITY_G, &leds.color.g, 0, 255, leds.update, true);
62
     EDIT_ITEM(uint8, MSG_INTENSITY_B, &leds.color.b, 0, 255, leds.update, true);
86
     EDIT_ITEM(uint8, MSG_INTENSITY_B, &leds.color.b, 0, 255, leds.update, true);
66
         EDIT_ITEM(uint8, MSG_LED_BRIGHTNESS, &leds.color.i, 0, 255, leds.update, true);
90
         EDIT_ITEM(uint8, MSG_LED_BRIGHTNESS, &leds.color.i, 0, 255, leds.update, true);
67
       #endif
91
       #endif
68
     #endif
92
     #endif
93
+    #if ENABLED(NEOPIXEL2_SEPARATE)
94
+      STATIC_ITEM_N(MSG_LED_CHANNEL_N, 2, SS_DEFAULT|SS_INVERT);
95
+      EDIT_ITEM(uint8, MSG_INTENSITY_R, &leds2.color.r, 0, 255, leds2.update, true);
96
+      EDIT_ITEM(uint8, MSG_INTENSITY_G, &leds2.color.g, 0, 255, leds2.update, true);
97
+      EDIT_ITEM(uint8, MSG_INTENSITY_B, &leds2.color.b, 0, 255, leds2.update, true);
98
+      EDIT_ITEM(uint8, MSG_INTENSITY_W, &leds2.color.w, 0, 255, leds2.update, true);
99
+      EDIT_ITEM(uint8, MSG_NEO2_BRIGHTNESS, &leds2.color.i, 0, 255, leds2.update, true);
100
+    #endif
69
     END_MENU();
101
     END_MENU();
70
   }
102
   }
71
 #endif
103
 #endif
89
   BACK_ITEM(MSG_MAIN);
121
   BACK_ITEM(MSG_MAIN);
90
 
122
 
91
   #if ENABLED(LED_CONTROL_MENU)
123
   #if ENABLED(LED_CONTROL_MENU)
92
-    bool led_on = leds.lights_on;
93
-    EDIT_ITEM(bool, MSG_LEDS, &led_on, leds.toggle);
124
+    editable.state = leds.lights_on;
125
+    EDIT_ITEM(bool, MSG_LEDS, &editable.state, leds.toggle);
94
     ACTION_ITEM(MSG_SET_LEDS_DEFAULT, leds.set_default);
126
     ACTION_ITEM(MSG_SET_LEDS_DEFAULT, leds.set_default);
127
+    #if ENABLED(NEOPIXEL2_SEPARATE)
128
+      editable.state = leds2.lights_on;
129
+      EDIT_ITEM(bool, MSG_LEDS2, &editable.state, leds2.toggle);
130
+      ACTION_ITEM(MSG_SET_LEDS_DEFAULT, leds2.set_default);
131
+    #endif
95
     #if ENABLED(LED_COLOR_PRESETS)
132
     #if ENABLED(LED_COLOR_PRESETS)
96
       SUBMENU(MSG_LED_PRESETS, menu_led_presets);
133
       SUBMENU(MSG_LED_PRESETS, menu_led_presets);
97
     #endif
134
     #endif
135
+    #if ENABLED(NEO2_COLOR_PRESETS)
136
+      SUBMENU(MSG_NEO2_PRESETS, menu_leds2_presets);
137
+    #endif
98
     SUBMENU(MSG_CUSTOM_LEDS, menu_led_custom);
138
     SUBMENU(MSG_CUSTOM_LEDS, menu_led_custom);
99
   #endif
139
   #endif
100
 
140
 

Loading…
Cancel
Save