diff --git a/Makefile b/Makefile index adacfa7..9f7ce8a 100644 --- a/Makefile +++ b/Makefile @@ -41,7 +41,7 @@ ENABLE_PWRON_PASSWORD := 0 ENABLE_RESET_AES_KEY := 0 ENABLE_BIG_FREQ := 0 ENABLE_DTMF_LIVE_DECODER := 0 -ENABLE_DTMF_TIMING_SETTINGS := 1 +ENABLE_DTMF_TIMING_SETTINGS := 0 ENABLE_SHOW_FREQ_IN_CHAN := 1 # smaa bolf 580 B ENABLE_SMALL_BOLD := 0 @@ -336,6 +336,9 @@ endif ifeq ($(ENABLE_DTMF_LIVE_DECODER),1) CFLAGS += -DENABLE_DTMF_LIVE_DECODER endif +ifeq ($(ENABLE_DTMF_TIMING_SETTINGS),1) + CFLAGS += -DENABLE_DTMF_TIMING_SETTINGS +endif ifeq ($(ENABLE_SHOW_FREQ_IN_CHAN),1) CFLAGS += -DENABLE_SHOW_FREQ_IN_CHAN endif diff --git a/app/menu.c b/app/menu.c index d657bdd..9a82968 100644 --- a/app/menu.c +++ b/app/menu.c @@ -360,15 +360,13 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = 99; break; -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, - -// g_eeprom.config.setting.dtmf.first_code_persist_time = (g_eeprom.config.setting.dtmf.first_code_persist_time < 8 || g_eeprom.config.setting.dtmf.first_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.first_code_persist_time; -// g_eeprom.config.setting.dtmf.hash_code_persist_time = (g_eeprom.config.setting.dtmf.hash_code_persist_time < 8 || g_eeprom.config.setting.dtmf.hash_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.hash_code_persist_time; -// g_eeprom.config.setting.dtmf.code_persist_time = (g_eeprom.config.setting.dtmf.code_persist_time < 8 || g_eeprom.config.setting.dtmf.code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_persist_time; -// g_eeprom.config.setting.dtmf.code_interval_time = (g_eeprom.config.setting.dtmf.code_interval_time < 8 || g_eeprom.config.setting.dtmf.code_interval_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_interval_time; + case MENU_DTMF_1ST_PERSIST: + case MENU_DTMF_HASH_PERSIST: + case MENU_DTMF_PERSIST: + case MENU_DTMF_INTERVAL: + *pMin = 5; + *pMax = 20; + break; #endif case MENU_DTMF_LIST: @@ -756,15 +754,21 @@ void MENU_AcceptSetting(void) g_eeprom.config.setting.dtmf.preload_time = g_sub_menu_selection; break; -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, + case MENU_DTMF_1ST_PERSIST: + g_eeprom.config.setting.dtmf.first_code_persist_time = g_sub_menu_selection; + break; -// g_eeprom.config.setting.dtmf.first_code_persist_time -// g_eeprom.config.setting.dtmf.hash_code_persist_time -// g_eeprom.config.setting.dtmf.code_persist_time -// g_eeprom.config.setting.dtmf.code_interval_time + case MENU_DTMF_HASH_PERSIST: + g_eeprom.config.setting.dtmf.hash_code_persist_time = g_sub_menu_selection; + break; + + case MENU_DTMF_PERSIST: + g_eeprom.config.setting.dtmf.code_persist_time = g_sub_menu_selection; + break; + + case MENU_DTMF_INTERVAL: + g_eeprom.config.setting.dtmf.code_interval_time = g_sub_menu_selection; + break; #endif #ifdef ENABLE_MDC1200 @@ -1300,15 +1304,21 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = g_eeprom.config.setting.dtmf.preload_time; break; -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, + case MENU_DTMF_1ST_PERSIST: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.first_code_persist_time; + break; -// g_eeprom.config.setting.dtmf.first_code_persist_time -// g_eeprom.config.setting.dtmf.hash_code_persist_time -// g_eeprom.config.setting.dtmf.code_persist_time -// g_eeprom.config.setting.dtmf.code_interval_time + case MENU_DTMF_HASH_PERSIST: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.hash_code_persist_time; + break; + + case MENU_DTMF_PERSIST: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.code_persist_time; + break; + + case MENU_DTMF_INTERVAL: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.code_interval_time; + break; #endif #ifdef ENABLE_MDC1200 diff --git a/firmware.bin b/firmware.bin index 02e6cc1..7bfbc44 100644 Binary files a/firmware.bin and b/firmware.bin differ diff --git a/firmware.packed.bin b/firmware.packed.bin index ffcf602..e2ac9a4 100644 Binary files a/firmware.packed.bin and b/firmware.packed.bin differ diff --git a/settings.c b/settings.c index 0a988c6..33fbe70 100644 --- a/settings.c +++ b/settings.c @@ -231,10 +231,10 @@ void SETTINGS_read_eeprom(void) g_eeprom.config.setting.dtmf.auto_reset_time = (g_eeprom.config.setting.dtmf.auto_reset_time <= DTMF_HOLD_MAX) ? g_eeprom.config.setting.dtmf.auto_reset_time : (g_eeprom.config.setting.dtmf.auto_reset_time >= DTMF_HOLD_MIN) ? g_eeprom.config.setting.dtmf.auto_reset_time : DTMF_HOLD_MAX; #endif g_eeprom.config.setting.dtmf.preload_time = (g_eeprom.config.setting.dtmf.preload_time < 3 || g_eeprom.config.setting.dtmf.preload_time > 99) ? 30 : g_eeprom.config.setting.dtmf.preload_time; - g_eeprom.config.setting.dtmf.first_code_persist_time = (g_eeprom.config.setting.dtmf.first_code_persist_time < 8 || g_eeprom.config.setting.dtmf.first_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.first_code_persist_time; - g_eeprom.config.setting.dtmf.hash_code_persist_time = (g_eeprom.config.setting.dtmf.hash_code_persist_time < 8 || g_eeprom.config.setting.dtmf.hash_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.hash_code_persist_time; - g_eeprom.config.setting.dtmf.code_persist_time = (g_eeprom.config.setting.dtmf.code_persist_time < 8 || g_eeprom.config.setting.dtmf.code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_persist_time; - g_eeprom.config.setting.dtmf.code_interval_time = (g_eeprom.config.setting.dtmf.code_interval_time < 8 || g_eeprom.config.setting.dtmf.code_interval_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_interval_time; + g_eeprom.config.setting.dtmf.first_code_persist_time = (g_eeprom.config.setting.dtmf.first_code_persist_time < 5 || g_eeprom.config.setting.dtmf.first_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.first_code_persist_time; + g_eeprom.config.setting.dtmf.hash_code_persist_time = (g_eeprom.config.setting.dtmf.hash_code_persist_time < 5 || g_eeprom.config.setting.dtmf.hash_code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.hash_code_persist_time; + g_eeprom.config.setting.dtmf.code_persist_time = (g_eeprom.config.setting.dtmf.code_persist_time < 5 || g_eeprom.config.setting.dtmf.code_persist_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_persist_time; + g_eeprom.config.setting.dtmf.code_interval_time = (g_eeprom.config.setting.dtmf.code_interval_time < 5 || g_eeprom.config.setting.dtmf.code_interval_time > 20) ? 10 : g_eeprom.config.setting.dtmf.code_interval_time; #if 0 #ifdef ENABLE_KILL_REVIVE g_eeprom.config.setting.dtmf.permit_remote_kill = (g_eeprom.config.setting.dtmf.permit_remote_kill < 2) ? g_eeprom.config.setting.dtmf.permit_remote_kill : 0; diff --git a/ui/menu.c b/ui/menu.c index 18fbe9c..100d72c 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -127,14 +127,10 @@ const t_menu_item g_menu_list[] = #endif #ifdef ENABLE_DTMF_TIMING_SETTINGS {"D PRE", VOICE_ID_INVALID, MENU_DTMF_PRE }, -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, -// g_eeprom.config.setting.dtmf.first_code_persist_time -// g_eeprom.config.setting.dtmf.hash_code_persist_time -// g_eeprom.config.setting.dtmf.code_persist_time -// g_eeprom.config.setting.dtmf.code_interval_time + {"D1PERS", VOICE_ID_INVALID, MENU_DTMF_1ST_PERSIST }, + {"DHPERS", VOICE_ID_INVALID, MENU_DTMF_HASH_PERSIST }, + {"D PER", VOICE_ID_INVALID, MENU_DTMF_PERSIST }, + {"D INT", VOICE_ID_INVALID, MENU_DTMF_INTERVAL }, #endif {"PonMSG", VOICE_ID_INVALID, MENU_PON_MSG }, {"ROGER", VOICE_ID_INVALID, MENU_ROGER_MODE }, @@ -1085,19 +1081,31 @@ void UI_DisplayMenu(void) #ifdef ENABLE_DTMF_TIMING_SETTINGS case MENU_DTMF_PRE: - strcpy(str, "DTMF BOT\nDELAY\n"); + case MENU_DTMF_1ST_PERSIST: + case MENU_DTMF_HASH_PERSIST: + case MENU_DTMF_PERSIST: + case MENU_DTMF_INTERVAL: + strcpy(str, "DTMF "); + switch (g_menu_cursor) + { + case MENU_DTMF_PRE: + strcat(str, " PRE\n"); + break; + case MENU_DTMF_1ST_PERSIST: + strcat(str, "1 CODE\nPERSIST\n"); + break; + case MENU_DTMF_HASH_PERSIST: + strcat(str, "#\nPERSIST\n"); + break; + case MENU_DTMF_PERSIST: + strcat(str, "CODE\nPERSIST\n"); + break; + case MENU_DTMF_INTERVAL: + strcat(str, "CODE\nINTERVAL\n"); + break; + } sprintf(str + strlen(str), "%dms", 10 * g_sub_menu_selection); break; - -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, - -// g_eeprom.config.setting.dtmf.first_code_persist_time -// g_eeprom.config.setting.dtmf.hash_code_persist_time -// g_eeprom.config.setting.dtmf.code_persist_time -// g_eeprom.config.setting.dtmf.code_interval_time #endif #ifdef ENABLE_MDC1200 diff --git a/ui/menu.h b/ui/menu.h index a2f934c..b72ab5e 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -108,14 +108,10 @@ enum #endif #ifdef ENABLE_DTMF_TIMING_SETTINGS MENU_DTMF_PRE, -// MENU_DTMF_1ST_PERSIST, -// MENU_DTMF_HASH_PERSIST, -// MENU_DTMF_PERSIST, -// MENU_DTMF_INTERVAL, -// g_eeprom.config.setting.dtmf.first_code_persist_time -// g_eeprom.config.setting.dtmf.hash_code_persist_time -// g_eeprom.config.setting.dtmf.code_persist_time -// g_eeprom.config.setting.dtmf.code_interval_time + MENU_DTMF_1ST_PERSIST, + MENU_DTMF_HASH_PERSIST, + MENU_DTMF_PERSIST, + MENU_DTMF_INTERVAL, #endif #ifdef ENABLE_MDC1200 MENU_MDC1200_MODE,