diff --git a/src/model_menus.cpp b/src/model_menus.cpp index 6499f5a3d..ed4c37cac 100644 --- a/src/model_menus.cpp +++ b/src/model_menus.cpp @@ -1762,22 +1762,24 @@ void menuProcFunctionSwitches(uint8_t event) break; case 2: if (sd->swtch) { - int16_t val_displayed; - int8_t val_min; - int8_t val_max; + int16_t val_displayed = sd->param; + int16_t val_min = 0; + int16_t val_max = 255; if (sd->func == FUNC_PLAY_SOUND) { - val_displayed = sd->param; - -#ifdef AUDIO - val_min = 0; +#if defined(AUDIO) val_max = AU_FRSKY_LAST-AU_FRSKY_FIRST-1; lcd_putsnAtt(15*FW, y, STR_FUNCSOUNDS+LEN_FUNCSOUNDS*val_displayed, LEN_FUNCSOUNDS, attr); #else break; #endif } +#if defined(SOMO) + else if (sd->func == FUNC_PLAY_SOMO) { + lcd_outdezAtt(21*FW, y, val_displayed, attr); + } +#endif else if (sd->func <= FUNC_SAFETY_CH16) { - val_displayed = (int8_t)sd->param; + val_displayed = (int16_t)(int8_t)sd->param; val_min = -125; val_max = 125; lcd_outdezAtt(21*FW, y, val_displayed, attr); @@ -1787,7 +1789,7 @@ void menuProcFunctionSwitches(uint8_t event) } if (active) { - CHECK_INCDEC_MODELVAR(event, sd->param, val_min, val_max); + sd->param = checkIncDec(event, val_displayed, val_min, val_max, EE_MODEL); } } else if (attr) { diff --git a/src/myeeprom.h b/src/myeeprom.h index 50d058520..3f47bd842 100644 --- a/src/myeeprom.h +++ b/src/myeeprom.h @@ -176,6 +176,7 @@ enum Functions { FUNC_INSTANT_TRIM, FUNC_TRIMS_2_OFS, FUNC_PLAY_SOUND, + FUNC_PLAY_SOMO, #ifdef LOGS FUNC_LOGS, #endif diff --git a/src/open9x.cpp b/src/open9x.cpp index 07349b62f..0952c166a 100644 --- a/src/open9x.cpp +++ b/src/open9x.cpp @@ -1084,7 +1084,7 @@ void evalFunctions() if (sd->func < FUNC_TRAINER) { safetyCh[sd->func] = (int8_t)sd->param; } - if (sd->func == FUNC_PLAY_SOUND/* && (~active_functions & mask)*/) { + if (sd->func == FUNC_PLAY_SOUND) { #if defined(AUDIO) audioDefevent(AU_FRSKY_FIRST+sd->param); #else @@ -1093,6 +1093,11 @@ void evalFunctions() } #endif } +#if defined(SOMO) + if (sd->func == FUNC_PLAY_SOMO && (~active_functions & mask)) { + somoPushPrompt(sd->param); + } +#endif active_functions |= mask; } else {