I have an issue with this and unsure what to do.
void _lcd_set_led_color() {
const char *_colors[10] = {
MSG_LCD_RED, // 0 -- color_number
MSG_LCD_GREEN, // 1
MSG_LCD_BLUE, // 2
MSG_LCD_AQUA, // 3
MSG_LCD_YELLOW, // 4
MSG_LCD_PURPLE, // 5
MSG_LCD_PINK, // 6
MSG_LCD_AMBER, // 7
MSG_LCD_BLACKLIGHT, // 8
MSG_LCD_WATERMELON // 9
};
START_MENU();
MENU_ITEM(back, MSG_LED_LIGHTING, lcd_main_menu);
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
MENU_ITEM(submenu, MSG_LCD_RGB_EDIT, _lcd_set_rgb_color);
MENU_ITEM(function, MSG_LCD_COLOR_RESET, _lcd_set_led_color_reset);
END_MENU();
}
This compiles and works just fine with the Re-ARM, I do see the linter errors are exactly the same as AVR.
The compiler errors in the Arduino IDE for the Mega2560:
sketch\ultralcd.cpp: In function 'void _lcd_set_led_color()':
ultralcd.cpp:305: error: initializer fails to determine size of '__c'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:253:30: note: in definition of macro '_MENU_ITEM_PART_2'
menu_action_ ## TYPE(__VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
ultralcd.cpp:305: error: array must be initialized with a brace-enclosed initializer
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:253:30: note: in definition of macro '_MENU_ITEM_PART_2'
menu_action_ ## TYPE(__VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
In file included from C:\Users\JASON\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.6.19\cores\arduino/Arduino.h:28:0,
from sketch\src/HAL/HAL_AVR/HAL_AVR.h:38,
from sketch\src/HAL/HAL.h:81,
from sketch\MarlinConfig.h:27,
from sketch\Marlin.h:31,
from sketch\ultralcd.h:26,
from sketch\ultralcd.cpp:23:
ultralcd.cpp:257: error: initializer fails to determine size of '__c'
lcd_implementation_drawmenu_ ## TYPE(encoderLine == _thisItemNr, _lcdLineNr, PSTR(LABEL), ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:264:7: note: in expansion of macro '_MENU_ITEM_PART_2'
_MENU_ITEM_PART_2(TYPE, LABEL, ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
ultralcd.cpp:257: error: array must be initialized with a brace-enclosed initializer
lcd_implementation_drawmenu_ ## TYPE(encoderLine == _thisItemNr, _lcdLineNr, PSTR(LABEL), ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:264:7: note: in expansion of macro '_MENU_ITEM_PART_2'
_MENU_ITEM_PART_2(TYPE, LABEL, ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
ultralcd.cpp:305: error: initializer fails to determine size of '__c'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:264:7: note: in expansion of macro '_MENU_ITEM_PART_2'
_MENU_ITEM_PART_2(TYPE, LABEL, ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
ultralcd.cpp:305: error: array must be initialized with a brace-enclosed initializer
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:264:7: note: in expansion of macro '_MENU_ITEM_PART_2'
_MENU_ITEM_PART_2(TYPE, LABEL, ## __VA_ARGS__); \
^
sketch\ultralcd.cpp:305:53: note: in expansion of macro 'MENU_ITEM'
#define MENU_ITEM_EDIT_CALLBACK(type, label, ...) MENU_ITEM(setting_edit_callback_ ## type, label, PSTR(label), ## __VA_ARGS__)
^
sketch\ultralcd.cpp:3068:7: note: in expansion of macro 'MENU_ITEM_EDIT_CALLBACK'
MENU_ITEM_EDIT_CALLBACK(int3, _colors[color_number], &color_number, 0, 9, _color_select);
^
exit status 1
initializer fails to determine size of '__c'