From c3bba8716a395f34d36446a654a4499dc7378fba Mon Sep 17 00:00:00 2001 From: kraus Date: Sun, 3 Apr 2022 19:36:21 +0200 Subject: [PATCH] 2.32.14 --- ChangeLog | 2 +- csrc/mui_u8g2.c | 24 +++++------ csrc/mui_u8g2.h | 23 +++++----- .../u8g2_page_buffer/MUIBlink/MUIBlink.ino | 2 +- .../u8g2_page_buffer/MUIDemo/MUIDemo.ino | 16 +++---- .../MUIInput2BtnBounce2.ino | 2 +- .../MUIInput3BtnBounce2.ino | 2 +- .../MUIInput3BtnWithU8g2.ino | 2 +- .../MUIInputSimpleRotary.ino | 4 +- .../MUIInputVersatileRotaryEncoder.ino | 2 +- sys/sdl/mui/main.c | 14 +++--- sys/sdl/mui_all/main.c | 40 +++++++++--------- sys/sdl/mui_blink/main.c | 2 +- sys/sdl/mui_ref/main.c | 36 ++++++++-------- tools/png2bin/png2bin | Bin 24224 -> 0 bytes tools/release/print_release.sh | 2 +- 16 files changed, 85 insertions(+), 88 deletions(-) delete mode 100755 tools/png2bin/png2bin diff --git a/ChangeLog b/ChangeLog index 9e022de1..28b07c33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -283,6 +283,6 @@ https://github.com/olikraus/u8g2 ChangeLog * Added support for UC1609 (issue 1565) * Added support for GU800 series of Vacuum Fluorescent Displays (VFD, issue 1604) * Changed SPI Mode for Sharp displays (ls013..., issue 1771) - * Added many more fonts + * Added many more fonts (issues 1794, 1775, 1706, 1769) * Fixed several bugs and compiler errors \ No newline at end of file diff --git a/csrc/mui_u8g2.c b/csrc/mui_u8g2.c index 01821a1c..44a7bebd 100644 --- a/csrc/mui_u8g2.c +++ b/csrc/mui_u8g2.c @@ -83,7 +83,7 @@ mui _input_uint8_invers_select_u8g2 --> mui_u8g2_u8_value_0_9_wm_mse_pi mui _single_line_option_invers_select_u8g2 --> mui_u8g2_u8_opt_line_wa_mse_pi mui _select_options_parent_invers_select_u8g2 --> mui_u8g2_u8_opt_parent_wa_mse_pi - mui _select_options_child_invers_select_u8g2 --> mui_u8g2_u8_opt_child_wm_mse_pi + mui _select_options_child_invers_select_u8g2 --> mui_u8g2_u8_opt_child_wm_pi mui _checkbox_invers_select_u8g2 --> mui_u8g2_u8_chkbox_wm_pi mui _radio_invers_select_u8g2 --> mui_u8g2_u8_radio_wm_pi @@ -1612,7 +1612,7 @@ uint8_t mui_u8g2_u8_radio_wm_pi(mui_t *ui, uint8_t msg) } -uint8_t mui_u8g2_u8_opt_parent_wm_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u8_opt_parent_wm_pi(mui_t *ui, uint8_t msg) { uint8_t *value = (uint8_t *)muif_get_data(ui->uif); switch(msg) @@ -1695,7 +1695,7 @@ uint8_t mui_u8g2_u8_opt_child_mse_common(mui_t *ui, uint8_t msg) } -uint8_t mui_u8g2_u8_opt_radio_child_wm_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u8_opt_radio_child_wm_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); uint8_t *value = (uint8_t *)muif_get_data(ui->uif); @@ -1740,7 +1740,7 @@ uint8_t mui_u8g2_u8_opt_radio_child_wm_mse_pi(mui_t *ui, uint8_t msg) } -uint8_t mui_u8g2_u8_opt_radio_child_w1_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u8_opt_radio_child_w1_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); uint8_t *value = (uint8_t *)muif_get_data(ui->uif); @@ -1786,7 +1786,7 @@ uint8_t mui_u8g2_u8_opt_radio_child_w1_mse_pi(mui_t *ui, uint8_t msg) } -uint8_t mui_u8g2_u8_opt_child_wm_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u8_opt_child_wm_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); //uint8_t *value = (uint8_t *)muif_get_data(ui->uif); @@ -1833,7 +1833,7 @@ uint8_t mui_u8g2_u8_opt_child_wm_mse_pi(mui_t *ui, uint8_t msg) mui_u8g2_goto_parent --> mui_u8g2_goto_data - Used together with mui_u8g2_goto_form_w1_mse_pi + Used together with mui_u8g2_goto_form_w1_pi */ uint8_t mui_u8g2_goto_data(mui_t *ui, uint8_t msg) @@ -1865,9 +1865,9 @@ uint8_t mui_u8g2_goto_data(mui_t *ui, uint8_t msg) /* -mui_u8g2_goto_child_w1_mse_pi --> mui_u8g2_goto_form_w1_mse_pi +mui_u8g2_goto_child_w1_mse_pi --> mui_u8g2_goto_form_w1_pi */ -uint8_t mui_u8g2_goto_form_w1_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_goto_form_w1_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); uint8_t arg = ui->arg; // remember the arg value, because it might be overwritten @@ -1890,7 +1890,7 @@ uint8_t mui_u8g2_goto_form_w1_mse_pi(mui_t *ui, uint8_t msg) return 0; } -uint8_t mui_u8g2_goto_form_w1_mse_pf(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_goto_form_w1_pf(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); uint8_t arg = ui->arg; // remember the arg value, because it might be overwritten @@ -2020,7 +2020,7 @@ uint8_t mui_u8g2_u16_list_line_wa_mud_pi(mui_t *ui, uint8_t msg) FDS: MUI_XYA, arg=form id data: mui_u8g2_list_t * */ -uint8_t mui_u8g2_u16_list_parent_wm_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u16_list_parent_wm_pi(mui_t *ui, uint8_t msg) { //u8g2_t *u8g2 = mui_get_U8g2(ui); mui_u8g2_list_t *list = (mui_u8g2_list_t *)muif_get_data(ui->uif); @@ -2104,7 +2104,7 @@ static uint8_t mui_u8g2_u16_list_child_mse_common(mui_t *ui, uint8_t msg) return 0; } -uint8_t mui_u8g2_u16_list_child_w1_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u16_list_child_w1_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); mui_u8g2_list_t *list = (mui_u8g2_list_t *)muif_get_data(ui->uif); @@ -2144,7 +2144,7 @@ uint8_t mui_u8g2_u16_list_child_w1_mse_pi(mui_t *ui, uint8_t msg) return 0; } -uint8_t mui_u8g2_u16_list_goto_w1_mse_pi(mui_t *ui, uint8_t msg) +uint8_t mui_u8g2_u16_list_goto_w1_pi(mui_t *ui, uint8_t msg) { u8g2_t *u8g2 = mui_get_U8g2(ui); mui_u8g2_list_t *list = (mui_u8g2_list_t *)muif_get_data(ui->uif); diff --git a/csrc/mui_u8g2.h b/csrc/mui_u8g2.h index e70faf3e..9cee209d 100644 --- a/csrc/mui_u8g2.h +++ b/csrc/mui_u8g2.h @@ -161,20 +161,18 @@ uint8_t mui_u8g2_u8_opt_line_wa_mud_pf(mui_t *ui, uint8_t msg); /* GIF, MUIF_VAR /* The text part of the parent defines a '|' separted list of elements, which can be selected by the child. */ /* Argument is a form number where the child element is placed multiple times */ /* The child form does not require the ok button, because the child function will return to the parent with the select element */ -/* TODO: remove "mse" from the fn name */ -uint8_t mui_u8g2_u8_opt_parent_wm_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYAT */ -uint8_t mui_u8g2_u8_opt_radio_child_wm_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYA */ -uint8_t mui_u8g2_u8_opt_radio_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYA */ -uint8_t mui_u8g2_u8_opt_child_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYA */ -/* Note: there is no opt_child_goto muif, because this can be done with mui_u8g2_goto_form_w1_mse_pi */ +uint8_t mui_u8g2_u8_opt_parent_wm_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYAT */ +uint8_t mui_u8g2_u8_opt_radio_child_wm_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYA */ +uint8_t mui_u8g2_u8_opt_radio_child_w1_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_VARIABLE, MUI_XYA */ +uint8_t mui_u8g2_u8_opt_child_wm_pi(mui_t *ui, uint8_t msg); /* MUIF_VARIABLE, MUI_XYA */ +/* Note: there is no opt_child_goto muif, because this can be done with mui_u8g2_goto_form_w1_pi */ /* (scrollable) jump menu */ /* The text part of the parent defines a '|' separted list of elements, which can be selected goto_form functions. */ /* Each '|' separted element must be prefixed with the form number (MUI_x) */ -/* TODO: remove "mse" from the fn name */ uint8_t mui_u8g2_goto_data(mui_t *ui, uint8_t msg); /* REF, MUIF_RO, MUI_DATA (WARNING: Must appear only once per form!!! */ -uint8_t mui_u8g2_goto_form_w1_mse_pi(mui_t *ui, uint8_t msg); /* REF, MUIF_BUTTON, MUI_XYA */ -uint8_t mui_u8g2_goto_form_w1_mse_pf(mui_t *ui, uint8_t msg); /* REF, MUIF_BUTTON, MUI_XYA */ +uint8_t mui_u8g2_goto_form_w1_pi(mui_t *ui, uint8_t msg); /* REF, MUIF_BUTTON, MUI_XYA */ +uint8_t mui_u8g2_goto_form_w1_pf(mui_t *ui, uint8_t msg); /* REF, MUIF_BUTTON, MUI_XYA */ /* character input */ @@ -240,10 +238,9 @@ uint8_t mui_u8g2_u16_list_line_wa_mud_pi(mui_t *ui, uint8_t msg); /* GIF, /* dropdown list / combo box with 16 size and callback functions for MUIF_U8G2_U16_LIST */ -/* TODO: remove "mse" from the fn name */ -uint8_t mui_u8g2_u16_list_parent_wm_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ -uint8_t mui_u8g2_u16_list_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ -uint8_t mui_u8g2_u16_list_goto_w1_mse_pi(mui_t *ui, uint8_t msg); /* REF, MUIF_U8G2_U16_LIST first char of the string denotes the target form */ +uint8_t mui_u8g2_u16_list_parent_wm_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ +uint8_t mui_u8g2_u16_list_child_w1_pi(mui_t *ui, uint8_t msg); /* GIF, MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ +uint8_t mui_u8g2_u16_list_goto_w1_pi(mui_t *ui, uint8_t msg); /* REF, MUIF_U8G2_U16_LIST first char of the string denotes the target form */ #ifdef __cplusplus diff --git a/sys/arduino/u8g2_page_buffer/MUIBlink/MUIBlink.ino b/sys/arduino/u8g2_page_buffer/MUIBlink/MUIBlink.ino index 130d71ff..62db7213 100644 --- a/sys/arduino/u8g2_page_buffer/MUIBlink/MUIBlink.ino +++ b/sys/arduino/u8g2_page_buffer/MUIBlink/MUIBlink.ino @@ -391,7 +391,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), MUIF_U8G2_U8_MIN_MAX("NB", &blink_light, 0, 4, mui_u8g2_u8_min_max_wm_mse_pi), MUIF_U8G2_U8_MIN_MAX("NT", &blink_time, 0, 4, mui_u8g2_u8_min_max_wm_mse_pi), diff --git a/sys/arduino/u8g2_page_buffer/MUIDemo/MUIDemo.ino b/sys/arduino/u8g2_page_buffer/MUIDemo/MUIDemo.ino index 7349e5b7..724c39f7 100644 --- a/sys/arduino/u8g2_page_buffer/MUIDemo/MUIDemo.ino +++ b/sys/arduino/u8g2_page_buffer/MUIDemo/MUIDemo.ino @@ -459,7 +459,7 @@ muif_t muif_list[] = { /* main menu */ MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), /* Goto Form Button where the width is equal to the size of the text, spaces can be used to extend the size */ @@ -485,11 +485,11 @@ muif_t muif_list[] = { MUIF_VARIABLE("CB",&checkbox_input,mui_u8g2_u8_chkbox_wm_pi), /* the following two fields belong together and implement a single selection combo box to select a color */ - MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_pi), /* radio button style */ MUIF_VARIABLE("RS",&direction_input,mui_u8g2_u8_radio_wm_pi), @@ -497,10 +497,10 @@ muif_t muif_list[] = { MUIF_U8G2_U16_LIST("L1", &list_selection, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mse_pi), MUIF_U8G2_U16_LIST("L2", &list_selection2, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mud_pi), - MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_mse_pi), - MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_mse_pi), + MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_pi), + MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_pi), - MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_mse_pi), + MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_pi), /* MUI_GOTO uses the fixed ".G" id and is intended for goto buttons. This is a full display width style button */ MUIF_GOTO(mui_u8g2_btn_goto_w1_pi), diff --git a/sys/arduino/u8g2_page_buffer/MUIInput2BtnBounce2/MUIInput2BtnBounce2.ino b/sys/arduino/u8g2_page_buffer/MUIInput2BtnBounce2/MUIInput2BtnBounce2.ino index 3fc02f83..52dbc5f2 100644 --- a/sys/arduino/u8g2_page_buffer/MUIInput2BtnBounce2/MUIInput2BtnBounce2.ino +++ b/sys/arduino/u8g2_page_buffer/MUIInput2BtnBounce2/MUIInput2BtnBounce2.ino @@ -380,7 +380,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), /* this example will use three buttons, so use "mse" functions here */ MUIF_U8G2_U8_MIN_MAX("NV", &num_value, 0, 99, mui_u8g2_u8_min_max_wm_mse_pi), diff --git a/sys/arduino/u8g2_page_buffer/MUIInput3BtnBounce2/MUIInput3BtnBounce2.ino b/sys/arduino/u8g2_page_buffer/MUIInput3BtnBounce2/MUIInput3BtnBounce2.ino index ec82c9a8..b24f15bd 100644 --- a/sys/arduino/u8g2_page_buffer/MUIInput3BtnBounce2/MUIInput3BtnBounce2.ino +++ b/sys/arduino/u8g2_page_buffer/MUIInput3BtnBounce2/MUIInput3BtnBounce2.ino @@ -382,7 +382,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), /* this example will use three buttons, so use "mud" functions here */ MUIF_U8G2_U8_MIN_MAX("NV", &num_value, 0, 99, mui_u8g2_u8_min_max_wm_mud_pi), diff --git a/sys/arduino/u8g2_page_buffer/MUIInput3BtnWithU8g2/MUIInput3BtnWithU8g2.ino b/sys/arduino/u8g2_page_buffer/MUIInput3BtnWithU8g2/MUIInput3BtnWithU8g2.ino index 7895c091..211b6bd3 100644 --- a/sys/arduino/u8g2_page_buffer/MUIInput3BtnWithU8g2/MUIInput3BtnWithU8g2.ino +++ b/sys/arduino/u8g2_page_buffer/MUIInput3BtnWithU8g2/MUIInput3BtnWithU8g2.ino @@ -376,7 +376,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), MUIF_U8G2_U8_MIN_MAX("NV", &num_value, 0, 99, mui_u8g2_u8_min_max_wm_mse_pi), MUIF_U8G2_U8_MIN_MAX_STEP("NB", &bar_value, 0, 16, 1, MUI_MMS_2X_BAR, mui_u8g2_u8_bar_wm_mse_pf), diff --git a/sys/arduino/u8g2_page_buffer/MUIInputSimpleRotary/MUIInputSimpleRotary.ino b/sys/arduino/u8g2_page_buffer/MUIInputSimpleRotary/MUIInputSimpleRotary.ino index 6463b002..e853c039 100644 --- a/sys/arduino/u8g2_page_buffer/MUIInputSimpleRotary/MUIInputSimpleRotary.ino +++ b/sys/arduino/u8g2_page_buffer/MUIInputSimpleRotary/MUIInputSimpleRotary.ino @@ -71,7 +71,7 @@ SimpleRotary rotary(2,3,4); //U8G2_SSD1312_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ 8); //U8G2_SSD1312_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ 8); //U8G2_SH1106_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); -//U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); +U8G2_SH1106_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); //U8G2_SH1106_128X64_VCOMH0_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); // same as the NONAME variant, but maximizes setContrast() range //U8G2_SH1106_128X64_WINSTAR_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); // same as the NONAME variant, but uses updated SH1106 init sequence //U8G2_SH1106_128X32_VISIONOX_1_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE); @@ -376,7 +376,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), MUIF_U8G2_U8_MIN_MAX("NV", &num_value, 0, 99, mui_u8g2_u8_min_max_wm_mud_pi), MUIF_U8G2_U8_MIN_MAX_STEP("NB", &bar_value, 0, 16, 1, MUI_MMS_2X_BAR, mui_u8g2_u8_bar_wm_mud_pf), diff --git a/sys/arduino/u8g2_page_buffer/MUIInputVersatileRotaryEncoder/MUIInputVersatileRotaryEncoder.ino b/sys/arduino/u8g2_page_buffer/MUIInputVersatileRotaryEncoder/MUIInputVersatileRotaryEncoder.ino index a3fe33c1..d4d31906 100644 --- a/sys/arduino/u8g2_page_buffer/MUIInputVersatileRotaryEncoder/MUIInputVersatileRotaryEncoder.ino +++ b/sys/arduino/u8g2_page_buffer/MUIInputVersatileRotaryEncoder/MUIInputVersatileRotaryEncoder.ino @@ -381,7 +381,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), MUIF_U8G2_U8_MIN_MAX("NV", &num_value, 0, 99, mui_u8g2_u8_min_max_wm_mud_pi), MUIF_U8G2_U8_MIN_MAX_STEP("NB", &bar_value, 0, 16, 1, MUI_MMS_2X_BAR, mui_u8g2_u8_bar_wm_mud_pf), diff --git a/sys/sdl/mui/main.c b/sys/sdl/mui/main.c index 2c45d26f..0daff9f5 100644 --- a/sys/sdl/mui/main.c +++ b/sys/sdl/mui/main.c @@ -241,15 +241,15 @@ muif_t muif_list[] MUI_PROGMEM = { /* the following two fields belong together and implement a single selection combo box to select a color */ //MUIF("IC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_parent_wa_mse_pi), - MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), + MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_pi), //MUIF("OC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_child_w1_mse_pi), //MUIF("OC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_child_w1_mse_pi), //MUIF("OC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_child_w1_mse_pi), //MUIF("OC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_child_w1_mse_pi), - MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_pi), /* radio button style */ //MUIF("RS",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&direction_input,mui_u8g2_u8_radio_wm_pi), @@ -258,10 +258,10 @@ muif_t muif_list[] MUI_PROGMEM = { MUIF_U8G2_U16_LIST("L1", &list_selection, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mse_pi), MUIF_U8G2_U16_LIST("L2", &list_selection2, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mud_pi), - MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_mse_pi), - MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_mse_pi), + MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_pi), + MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_pi), - MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_mse_pi), + MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_pi), /* MUI_GOTO uses the fixed ".G" id and is intended for goto buttons. This is a full display width style button */ MUIF_GOTO(mui_u8g2_btn_goto_w1_pi), diff --git a/sys/sdl/mui_all/main.c b/sys/sdl/mui_all/main.c index a48431a5..f5583021 100644 --- a/sys/sdl/mui_all/main.c +++ b/sys/sdl/mui_all/main.c @@ -283,7 +283,7 @@ muif_t muif_list[] MUI_PROGMEM = { MUIF_LABEL(mui_u8g2_draw_text), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), /* Form 10 */ MUIF_GOTO(mui_u8g2_btn_goto_wm_fi), @@ -308,11 +308,11 @@ muif_t muif_list[] MUI_PROGMEM = { /* Form 50: Parent/Child Option */ - MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("ca",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("ca",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("cf",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("cf",&food_input,mui_u8g2_u8_opt_child_wm_pi), /* Form 60: Char Input */ MUIF_VARIABLE("T0", text_input+0, mui_u8g2_u8_char_wm_mud_pi), @@ -324,8 +324,8 @@ muif_t muif_list[] MUI_PROGMEM = { MUIF_U8G2_U16_LIST("A1", &list_selection_1, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_line_wa_mse_pi), MUIF_U8G2_U16_LIST("A2", &list_selection_2, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_line_wa_mud_pi), - MUIF_U8G2_U16_LIST("AP", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_parent_wm_mse_pi), - MUIF_U8G2_U16_LIST("AC", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_child_w1_mse_pi), + MUIF_U8G2_U16_LIST("AP", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_parent_wm_pi), + MUIF_U8G2_U16_LIST("AC", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_child_w1_pi), }; @@ -708,8 +708,8 @@ MUI_GOTO(64, 59, 70, " Ok ") -//uint8_t mui_u8g2_u16_list_parent_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ -//uint8_t mui_u8g2_u16_list_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ +//uint8_t mui_u8g2_u16_list_parent_wm_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ +//uint8_t mui_u8g2_u16_list_child_w1_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ MUI_FORM(80) @@ -751,11 +751,11 @@ MUI_XYA("AC", 5, 60, 2) /* - MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("c1",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("c1",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("ca",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("ca",&food_input,mui_u8g2_u8_opt_child_wm_pi), MUI_LABEL(5,24, "Color:") @@ -819,11 +819,11 @@ muif_t muif_list_old[] MUI_PROGMEM = { /* the following two fields belong together and implement a single selection combo box to select a color */ //MUIF("IC",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&color_input,mui_u8g2_u8_opt_parent_wa_mse_pi), - MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("IC",&color_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("OC",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("ID",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("OD",&food_input,mui_u8g2_u8_opt_child_wm_pi), /* radio button style */ //MUIF("RS",MUIF_CFLAG_IS_CURSOR_SELECTABLE,&direction_input,mui_u8g2_u8_radio_wm_pi), @@ -832,10 +832,10 @@ muif_t muif_list_old[] MUI_PROGMEM = { MUIF_U8G2_U16_LIST("L1", &list_selection, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mse_pi), MUIF_U8G2_U16_LIST("L2", &list_selection2, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_line_wa_mud_pi), - MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_mse_pi), - MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_mse_pi), + MUIF_U8G2_U16_LIST("LP", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_parent_wm_pi), + MUIF_U8G2_U16_LIST("LC", &list_selection3, NULL, list_get_str, list_get_cnt, mui_u8g2_u16_list_child_w1_pi), - MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_mse_pi), + MUIF_U8G2_U16_LIST("LG", &list_selection4, NULL, menu_get_str, menu_get_cnt, mui_u8g2_u16_list_goto_w1_pi), /* MUI_GOTO uses the fixed ".G" id and is intended for goto buttons. This is a full display width style button */ MUIF_GOTO(mui_u8g2_btn_goto_w1_pi), diff --git a/sys/sdl/mui_blink/main.c b/sys/sdl/mui_blink/main.c index 68c9eebd..54e07344 100644 --- a/sys/sdl/mui_blink/main.c +++ b/sys/sdl/mui_blink/main.c @@ -79,7 +79,7 @@ muif_t muif_list[] = { MUIF_RO("HR", mui_hrule), MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), MUIF_U8G2_U8_MIN_MAX("NB", &blink_light, 0, 4, mui_u8g2_u8_min_max_wm_mse_pi), MUIF_U8G2_U8_MIN_MAX("NT", &blink_time, 0, 4, mui_u8g2_u8_min_max_wm_mse_pi), diff --git a/sys/sdl/mui_ref/main.c b/sys/sdl/mui_ref/main.c index 0b1ca490..99651c51 100644 --- a/sys/sdl/mui_ref/main.c +++ b/sys/sdl/mui_ref/main.c @@ -271,7 +271,7 @@ muif_t muif_list[] MUI_PROGMEM = { MUIF_U8G2_LABEL(), MUIF_RO("GP",mui_u8g2_goto_data), - MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_mse_pi), + MUIF_BUTTON("GC", mui_u8g2_goto_form_w1_pi), /* Form 10 */ MUIF_GOTO(mui_u8g2_btn_goto_wm_fi), @@ -302,11 +302,11 @@ muif_t muif_list[] MUI_PROGMEM = { /* Form 50: Parent/Child Option */ - MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("ca",&color_input,mui_u8g2_u8_opt_radio_child_w1_mse_pi), + MUIF_VARIABLE("P1",&color_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("ca",&color_input,mui_u8g2_u8_opt_radio_child_w1_pi), - MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_mse_pi), - MUIF_VARIABLE("cf",&food_input,mui_u8g2_u8_opt_child_wm_mse_pi), + MUIF_VARIABLE("P2",&food_input,mui_u8g2_u8_opt_parent_wm_pi), + MUIF_VARIABLE("cf",&food_input,mui_u8g2_u8_opt_child_wm_pi), /* Form 60: Char Input */ MUIF_VARIABLE("T0", text_input+0, mui_u8g2_u8_char_wm_mud_pi), @@ -318,8 +318,8 @@ muif_t muif_list[] MUI_PROGMEM = { MUIF_U8G2_U16_LIST("A1", &list_selection_1, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_line_wa_mse_pi), MUIF_U8G2_U16_LIST("A2", &list_selection_2, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_line_wa_mud_pi), - MUIF_U8G2_U16_LIST("AP", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_parent_wm_mse_pi), - MUIF_U8G2_U16_LIST("AC", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_child_w1_mse_pi), + MUIF_U8G2_U16_LIST("AP", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_parent_wm_pi), + MUIF_U8G2_U16_LIST("AC", &list_selection_3, NULL, animals_get_str, animals_get_cnt, mui_u8g2_u16_list_child_w1_pi), /* Form 90: bar */ MUIF_U8G2_U8_MIN_MAX_STEP("B0", &number_input9, 0, 20, 2, MUI_MMS_2X_BAR|MUI_MMS_SHOW_VALUE, mui_u8g2_u8_bar_wm_mse_pi), @@ -615,8 +615,8 @@ MUI_LABEL(5,10, "uint8 ParentChild Select") MUI_XY("HR", 0,13) MUI_STYLE(7) MUI_DATA("GP", - MUI_51 "u8_opt_radio_child_w1_mse_pi|" - MUI_53 "u8_opt_child_wm_mse_pi|" + MUI_51 "u8_opt_radio_child_w1_pi|" + MUI_53 "u8_opt_child_wm_pi|" MUI_1 "Back to Main Menu" ) MUI_XYA("GC", 5, 25, 0) MUI_XYA("GC", 5, 37, 1) @@ -625,7 +625,7 @@ MUI_XYA("GC", 5, 49, 2) MUI_FORM(51) MUI_STYLE(2) -MUI_LABEL(1,5, "..._u8_opt_parent_wm_mse_pi") +MUI_LABEL(1,5, "..._u8_opt_parent_wm_pi") MUI_LABEL(1,12, "MUIF_VARIABLE") MUI_LABEL(1,19, "MUI_XYAT") MUI_LABEL(1,25, "Parent: Show selected option") @@ -638,7 +638,7 @@ MUI_GOTO(64, 59, 50, " Ok ") MUI_FORM(52) MUI_STYLE(2) -MUI_LABEL(1,5, "..._u8_opt_radio_child_w1_mse_pi") +MUI_LABEL(1,5, "..._u8_opt_radio_child_w1_pi") MUI_LABEL(1,12, "MUIF_VARIABLE") MUI_LABEL(1,19, "MUI_XYA") MUI_LABEL(1,25, "Child: Show selectable options") @@ -650,7 +650,7 @@ MUI_XYA("ca", 5, 60, 2) MUI_FORM(53) MUI_STYLE(2) -MUI_LABEL(1,5, "..._u8_opt_parent_wm_mse_pi") +MUI_LABEL(1,5, "..._u8_opt_parent_wm_pi") MUI_LABEL(1,12, "MUIF_VARIABLE") MUI_LABEL(1,19, "MUI_XYAT") MUI_LABEL(1,25, "Parent: Show selected option") @@ -664,7 +664,7 @@ MUI_GOTO(64, 59, 50, " Ok ") MUI_FORM(54) MUI_STYLE(2) -MUI_LABEL(1,5, "..._u8_opt_child_wm_mse_pi") +MUI_LABEL(1,5, "..._u8_opt_child_wm_pi") MUI_LABEL(1,12, "MUIF_VARIABLE") MUI_LABEL(1,19, "MUI_XYA") MUI_LABEL(1,25, "Child: Show selectable options") @@ -757,8 +757,8 @@ MUI_GOTO(64, 59, 70, " Ok ") -//uint8_t mui_u8g2_u16_list_parent_wm_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ -//uint8_t mui_u8g2_u16_list_child_w1_mse_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ +//uint8_t mui_u8g2_u16_list_parent_wm_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=subform */ +//uint8_t mui_u8g2_u16_list_child_w1_pi(mui_t *ui, uint8_t msg); /* MUIF_U8G2_U16_LIST, MUI_XYA, arg=sub element number */ MUI_FORM(80) @@ -767,7 +767,7 @@ MUI_LABEL(5,10, "uint16 ParentChild Select") MUI_XY("HR", 0,13) MUI_STYLE(7) MUI_DATA("GP", - MUI_81 "u16_list_parent_wm_mse_pi|" + MUI_81 "u16_list_parent_wm_pi|" MUI_1 "Back to Main Menu" ) MUI_XYA("GC", 5, 25, 0) MUI_XYA("GC", 5, 37, 1) @@ -776,7 +776,7 @@ MUI_XYA("GC", 5, 49, 2) MUI_FORM(81) MUI_STYLE(2) -MUI_LABEL(1,5, "..._u16_list_parent_wm_mse_pi") +MUI_LABEL(1,5, "..._u16_list_parent_wm_pi") MUI_LABEL(1,12, "MUIF_U8G2_U16_LIST") MUI_LABEL(1,19, "MUI_XYA") MUI_LABEL(1,25, "Parent: Show selected option") @@ -788,7 +788,7 @@ MUI_GOTO(64, 59, 80, " Ok ") MUI_FORM(82) MUI_STYLE(2) -MUI_LABEL(1,5, "...u16_list_child_w1_mse_pi") +MUI_LABEL(1,5, "...u16_list_child_w1_pi") MUI_LABEL(1,12, "MUIF_U8G2_U16_LIST") MUI_LABEL(1,19, "MUI_XYA") MUI_LABEL(1,25, "Child: Show selectable options") diff --git a/tools/png2bin/png2bin b/tools/png2bin/png2bin deleted file mode 100755 index 851d6d60a66f0daba519eba47f82ef9dbeb904dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24224 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

-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