Hi, I am trying to setup a button matrix with a call to lv_buttonmatrix_set_ctrl_map(). The map itself is this:
static const lv_buttonmatrix_ctrl_t ctrl_map[] PROGMEM = {
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE | LV_BUTTONMATRIX_CTRL_CHECKED,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
};
However, I am getting a compiler error for an invalid conversion from int to lv_buttonmatrix_ctrl_t. That’s most likely because the final value is not a member of the enum. So, how do I set this correctly?
The documentation says that I can simply OR the enums together. I’ve tried doing this with ctrl_map[8] |= LV_BUTTONMATRIX_CTRL_CHECKED but that also does not work.
Thank you.
Same thing happens when I use
lv_buttonmatrix_set_button_ctrl(matrix, 8, LV_BUTTONMATRIX_CTRL_CHECKABLE | LV_BUTTONMATRIX_CTRL_CHECKED);
yet the documentation states:
void lv_buttonmatrix_set_button_ctrl(lv_obj_t *obj, uint32_t btn_id, lv_buttonmatrix_ctrl_t ctrl)
Set the attributes of a button of the button matrix
Parameters:
- obj – pointer to button matrix object
- btn_id – 0 based index of the button to modify. (Not counting new lines)
- ctrl – OR-ed attributes. E.g.
LV_BUTTONMATRIX_CTRL_NO_REPEAT | LV_BUTTONMATRIX_CTRL_CHECKABLE
I am using Arduino’s toolchain and compiler for Windows if that makes a difference.
Since it’s been 9 days without a reply, I figured out my own problem:
static const lv_buttonmatrix_ctrl_t ctrl_map[] PROGMEM = {
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
LV_BUTTONMATRIX_CTRL_CHECKABLE,
static_cast<lv_buttonmatrix_ctrl_t>(LV_BUTTONMATRIX_CTRL_CHECKABLE | LV_BUTTONMATRIX_CTRL_CHECKED),
LV_BUTTONMATRIX_CTRL_CHECKABLE,
};