diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 11a5500c3..a7ca15232 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -317,13 +317,12 @@ void onModelSelectMenu(const char *result) else if (result == STR_DELETE_MODEL) { POPUP_CONFIRMATION(STR_DELETEMODEL); #if defined(CPUARM) - s_warning_info = modelHeaders[sub].name; + SET_WARNING_INFO(modelHeaders[sub].name, sizeof(g_model.header.name), ZCHAR); #else char * name = reusableBuffer.modelsel.mainname; eeLoadModelName(sub, name); - s_warning_info = name; + SET_WARNING_INFO(name, sizeof(g_model.header.name), ZCHAR); #endif - s_warning_info_len = sizeof(g_model.header.name); } #if defined(SDCARD) else { @@ -391,13 +390,12 @@ void menuModelSelect(uint8_t event) if (s_copyMode && s_copyTgtOfs == 0 && g_eeGeneral.currModel != sub && eeModelExists(sub)) { POPUP_CONFIRMATION(STR_DELETEMODEL); #if defined(CPUARM) - s_warning_info = modelHeaders[sub].name; + SET_WARNING_INFO(modelHeaders[sub].name, sizeof(g_model.header.name), ZCHAR); #else char * name = reusableBuffer.modelsel.mainname; eeLoadModelName(sub, name); - s_warning_info = name; + SET_WARNING_INFO(name, sizeof(g_model.header.name), ZCHAR); #endif - s_warning_info_len = sizeof(g_model.header.name); killEvents(event); break; } diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 22e93fdf9..9f2c7903e 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -1046,11 +1046,11 @@ void pushMenu(MenuFuncP newMenu) const pm_char * s_warning = NULL; const pm_char * s_warning_info; uint8_t s_warning_info_len; -// uint8_t s_warning_info_att not needed now uint8_t s_warning_type; uint8_t s_warning_result = 0; #if defined(CPUARM) +uint8_t s_warning_info_flags = ZCHAR; int16_t s_warning_input_value; int16_t s_warning_input_min; int16_t s_warning_input_max; @@ -1081,7 +1081,7 @@ void displayWarning(uint8_t event) s_warning_result = false; displayBox(); if (s_warning_info) - lcd_putsnAtt(16, WARNING_LINE_Y+FH, s_warning_info, s_warning_info_len, ZCHAR); + lcd_putsnAtt(16, WARNING_LINE_Y+FH, s_warning_info, s_warning_info_len, WARNING_INFO_FLAGS); lcd_puts(16, WARNING_LINE_Y+2*FH, s_warning_type == WARNING_TYPE_ASTERISK ? STR_EXIT : STR_POPUPS); switch (event) { #if defined(ROTARY_ENCODER_NAVIGATION) diff --git a/radio/src/gui/menus.h b/radio/src/gui/menus.h index e65b5ad3a..a66a72822 100644 --- a/radio/src/gui/menus.h +++ b/radio/src/gui/menus.h @@ -356,7 +356,7 @@ extern uint8_t s_warning_type; #define WARNING_LINE_X 16 #define WARNING_LINE_Y 3*FH #if LCD_W >= 212 - #define WARNING_LINE_LEN 30 + #define WARNING_LINE_LEN 32 #else #define WARNING_LINE_LEN 20 #endif @@ -370,17 +370,22 @@ void displayWarning(uint8_t event); extern int16_t s_warning_input_value; extern int16_t s_warning_input_min; extern int16_t s_warning_input_max; + extern uint8_t s_warning_info_flags; #endif #if defined(CPUARM) #define DISPLAY_WARNING (*popupFunc) - #define POPUP_WARNING(s) (s_warning = s, popupFunc = displayWarning) - #define POPUP_CONFIRMATION(s) (s_warning = s, s_warning_type = WARNING_TYPE_CONFIRM, popupFunc = displayWarning) + #define POPUP_WARNING(s) (s_warning = s, s_warning_info = 0, popupFunc = displayWarning) + #define POPUP_CONFIRMATION(s) (s_warning = s, s_warning_type = WARNING_TYPE_CONFIRM, s_warning_info = 0, popupFunc = displayWarning) #define POPUP_INPUT(s, func, start, min, max) (s_warning = s, s_warning_type = WARNING_TYPE_INPUT, popupFunc = func, s_warning_input_value = start, s_warning_input_min = min, s_warning_input_max = max) + #define WARNING_INFO_FLAGS s_warning_info_flags + #define SET_WARNING_INFO(info, len, flags) (s_warning_info = info, s_warning_info_len = len, s_warning_info_flags = flags) #else #define DISPLAY_WARNING displayWarning #define POPUP_WARNING(s) s_warning = s #define POPUP_CONFIRMATION(s) (s_warning = s, s_warning_type = WARNING_TYPE_CONFIRM) + #define WARNING_INFO_FLAGS ZCHAR + #define SET_WARNING_INFO(info, len, flags) (s_warning_info = info, s_warning_info_len = len) #endif #if defined(SDCARD) || (defined(ROTARY_ENCODER_NAVIGATION) && !defined(CPUM64)) diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index e974a9b46..127c636ab 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -200,13 +200,6 @@ static int luaKillEvents(lua_State *L) return 0; } -static int luaRaise(lua_State *L) -{ - const char * message = luaL_checkstring(L, 1); - // throw message; - return 0; -} - static int luaLcdLock(lua_State *L) { lcd_locked = true; @@ -1043,7 +1036,6 @@ void luaInit() lua_register(L, "popupInput", luaPopupInput); lua_register(L, "channelOrder", luaChannelOrder); lua_register(L, "killEvents", luaKillEvents); - lua_register(L, "raise", luaRaise); // Push OpenTX constants lua_registerint(L, "FULLSCALE", RESX); @@ -1177,6 +1169,7 @@ void luaLoadModelScripts() } char lua_warning_str[WARNING_LINE_LEN+1]; +char lua_warning_info[WARNING_LINE_LEN+1]; void luaError(uint8_t error) { @@ -1189,7 +1182,15 @@ void luaError(uint8_t error) #endif strncpy(lua_warning_str, msg, WARNING_LINE_LEN); lua_warning_str[WARNING_LINE_LEN] = '\0'; - msg = lua_warning_str; + POPUP_WARNING(lua_warning_str); + for (int i=0; i