From 8084a92c395ada87b634ba1d08177f5c12413b8c Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Fri, 8 Dec 2023 14:04:02 +0000 Subject: [PATCH] added DTMF call/page compile option --- Makefile | 26 +- README.md | 5 +- app/action.c | 4 +- app/app.c | 182 +++++++------- app/dtmf.c | 562 +++++++++++++++++++++++--------------------- app/dtmf.h | 132 ++++++----- app/generic.c | 34 +-- app/main.c | 14 +- app/menu.c | 254 ++++++++++---------- app/search.c | 4 +- app/uart.c | 2 +- firmware.bin | Bin 61140 -> 60972 bytes firmware.packed.bin | Bin 61158 -> 60990 bytes functions.c | 76 +++--- panadapter.c | 4 +- radio.c | 38 +-- settings.c | 12 +- ui/main.c | 220 ++++++++++------- ui/menu.c | 175 ++++++++------ ui/menu.h | 8 +- ui/status.c | 6 +- 21 files changed, 979 insertions(+), 779 deletions(-) diff --git a/Makefile b/Makefile index a8fef3d..c27c748 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ ENABLE_NOAA := 0 ENABLE_VOICE := 0 ENABLE_MUTE_RADIO_FOR_VOICE := 0 # Tx on Voice 1.0 kB -ENABLE_VOX := 0 +ENABLE_VOX := 1 ENABLE_VOX_MORE_SENSITIVE := 1 # Tx Alarm 600 B ENABLE_ALARM := 0 @@ -40,11 +40,15 @@ ENABLE_MDC1200_SIDE_BEEP := 1 ENABLE_PWRON_PASSWORD := 0 ENABLE_RESET_AES_KEY := 0 ENABLE_BIG_FREQ := 0 -ENABLE_DTMF_LIVE_DECODER := 0 +ENABLE_DTMF_CALLING := 0 +ENABLE_DTMF_LIVE_DECODER := 1 ENABLE_DTMF_TIMING_SETTINGS := 0 +ENABLE_DTMF_CALL_FLASH_LIGHT := 0 +# Kill and Revive 400 B +ENABLE_DTMF_KILL_REVIVE := 0 ENABLE_SHOW_FREQ_IN_CHAN := 1 # smaa bold 580 B -ENABLE_SMALL_BOLD := 0 +ENABLE_SMALL_BOLD := 1 # smallest font 2 kB ENABLE_SMALLEST_FONT := 0 # trim trailing 44 B @@ -60,19 +64,16 @@ ENABLE_TX_POWER_FIX := 1 ENABLE_CTCSS_TAIL_PHASE_SHIFT := 1 ENABLE_CONTRAST := 0 ENABLE_BOOT_BEEPS := 0 -ENABLE_DTMF_CALL_FLASH_LIGHT := 0 ENABLE_FLASH_LIGHT_SOS_TONE := 0 ENABLE_SHOW_CHARGE_LEVEL := 0 ENABLE_REVERSE_BAT_SYMBOL := 0 -ENABLE_FREQ_SEARCH_LNA := 0 +ENABLE_FREQ_SEARCH_LNA := 1 ENABLE_FREQ_SEARCH_TIMEOUT := 0 ENABLE_CODE_SEARCH_TIMEOUT := 0 # scan ignore list 740 B -ENABLE_SCAN_IGNORE_LIST := 0 +ENABLE_SCAN_IGNORE_LIST := 1 # scan ranges 400 B -ENABLE_SCAN_RANGES := 0 -# Kill and Revive 400 B -ENABLE_KILL_REVIVE := 0 +ENABLE_SCAN_RANGES := 1 # AM Fix 800 B ENABLE_AM_FIX := 1 ENABLE_AM_FIX_SHOW_DATA := 0 @@ -334,6 +335,9 @@ endif ifeq ($(ENABLE_BIG_FREQ),1) CFLAGS += -DENABLE_BIG_FREQ endif +ifeq ($(ENABLE_DTMF_CALLING),1) + CFLAGS += -DENABLE_DTMF_CALLING +endif ifeq ($(ENABLE_DTMF_LIVE_DECODER),1) CFLAGS += -DENABLE_DTMF_LIVE_DECODER endif @@ -439,8 +443,8 @@ endif ifeq ($(ENABLE_SCAN_RANGES),1) CFLAGS += -DENABLE_SCAN_RANGES endif -ifeq ($(ENABLE_KILL_REVIVE),1) - CFLAGS += -DENABLE_KILL_REVIVE +ifeq ($(ENABLE_DTMF_KILL_REVIVE),1) + CFLAGS += -DENABLE_DTMF_KILL_REVIVE endif ifeq ($(ENABLE_FREQ_SEARCH_LNA),1) CFLAGS += -DENABLE_FREQ_SEARCH_LNA diff --git a/README.md b/README.md index 9f4744b..4210f16 100644 --- a/README.md +++ b/README.md @@ -64,8 +64,10 @@ ENABLE_MDC1200_SIDE_BEEP := 1 enable short side tone/beep when MDC ENABLE_PWRON_PASSWORD := 0 include power-on password code ENABLE_RESET_AES_KEY := 1 '1' = reset/clear the AES key stored in the eeprom (only if it's set) ENABLE_BIG_FREQ := 0 big font frequencies (like original QS firmware) +ENABLE_DTMF_CALLING := 0 enable the DTMF calling/paging features ENABLE_DTMF_LIVE_DECODER := 0 enable the live DTMF display/decoder .. adds a menu option ENABLE_DTMF_TIMING_SETTINGS := 0 enable the DTMF timing settings in the menu +ENABLE_DTMF_CALL_FLASH_LIGHT := 0 flash the flash light LED when a DTMF call is received ENABLE_SHOW_FREQ_IN_CHAN := 0 indicate if frequency found in a channel ENABLE_SMALL_BOLD := 0 bold channel name/no. (when name + freq channel display mode) ENABLE_TRIM_TRAILING_ZEROS := 0 trim away any trailing zeros on frequencies @@ -79,7 +81,6 @@ ENABLE_TX_POWER_FIX := 1 fix the TX output power, L ~ 10mW, M ENABLE_CTCSS_TAIL_PHASE_SHIFT := 0 standard CTCSS tail phase shift rather than QS's own 55Hz tone method ENABLE_CONTRAST := 0 add contrast menu ENABLE_BOOT_BEEPS := 0 gives user audio feedback on volume knob position at boot-up -ENABLE_DTMF_CALL_FLASH_LIGHT := 0 flash the flash light LED when a DTMF call is received ENABLE_FLASH_LIGHT_SOS_TONE := 0 also do SOS in morse ENABLE_SHOW_CHARGE_LEVEL := 0 show the charge level when the radio is on charge ENABLE_REVERSE_BAT_SYMBOL := 0 mirror the battery symbol on the status bar (+ pole on the right) @@ -88,7 +89,7 @@ ENABLE_FREQ_SEARCH_TIMEOUT := 0 timeout if FREQ not found when using ENABLE_CODE_SEARCH_TIMEOUT := 0 timeout if CTCSS/CDCSS not found when using F+* search function ENABLE_SCAN_IGNORE_LIST := 0 ignore selected frequencies when scanning - add freqs to list with short */scan button when freq scanning, remove freq from list with long press MENU when not scanning ENABLE_SCAN_RANGES := 0 adds menu option to auto select frequency scan range/step depending on your initial frequency -ENABLE_KILL_REVIVE := 0 include kill and revive code +ENABLE_DTMF_KILL_REVIVE := 0 include kill and revive code ENABLE_AM_FIX := 1 dynamically adjust the front end gains when in AM mode to help prevent AM demodulator saturation, ignore the on-screen RSSI level (for now) ENABLE_AM_FIX_SHOW_DATA := 0 show debug data for the AM fix (still tweaking it) ENABLE_SQUELCH_MORE_SENSITIVE := 1 make squelch levels a little bit more sensitive - I plan to let user adjust the values themselves diff --git a/app/action.c b/app/action.c index 39fb968..19e1b9f 100644 --- a/app/action.c +++ b/app/action.c @@ -207,7 +207,9 @@ void ACTION_Scan(bool bRestart) g_monitor_enabled = false; GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_SPEAKER); - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + DTMF_clear_RX(); + #endif #ifdef ENABLE_DTMF_LIVE_DECODER g_dtmf_rx_live_timeout = 0; diff --git a/app/app.c b/app/app.c index 5e9a843..2c8cd16 100644 --- a/app/app.c +++ b/app/app.c @@ -198,8 +198,10 @@ static void APP_process_new_receive(void) if (!g_squelch_open && !g_monitor_enabled) { // squelch is closed - if (g_dtmf_rx_index > 0) - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_rx_index > 0) + DTMF_clear_RX(); + #endif if (g_current_function != FUNCTION_FOREGROUND) { @@ -250,10 +252,11 @@ static void APP_process_new_receive(void) return; } +#ifdef ENABLE_DTMF_CALLING if (g_scan_state_dir == SCAN_STATE_DIR_OFF && g_css_scan_mode == CSS_SCAN_MODE_OFF) { // not scanning - #ifdef ENABLE_KILL_REVIVE + #ifdef ENABLE_DTMF_KILL_REVIVE if (g_rx_vfo->channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled) #else if (g_rx_vfo->channel.dtmf_decoding_enable) @@ -276,6 +279,7 @@ static void APP_process_new_receive(void) } } } +#endif APP_start_listening(); } @@ -487,10 +491,12 @@ bool APP_start_listening(void) const unsigned int chan = g_rx_vfo_num; // const unsigned int chan = g_rx_vfo->channel_save; - #ifdef ENABLE_KILL_REVIVE +#ifdef ENABLE_DTMF_CALLING + #ifdef ENABLE_DTMF_KILL_REVIVE if (g_eeprom.config.setting.radio_disabled) return false; #endif +#endif if (g_squelch_open) BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, true); // green LED on @@ -882,8 +888,10 @@ static bool APP_toggle_dual_watch_vfo(void) return false; if (g_ptt_is_pressed) return false; - if (g_dtmf_call_state != DTMF_CALL_STATE_NONE) - return false; + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_call_state != DTMF_CALL_STATE_NONE) + return false; + #endif #ifdef ENABLE_FMRADIO if (g_fm_radio_mode) return false; @@ -1024,24 +1032,26 @@ void APP_process_radio_interrupts(void) } #endif - #ifdef ENABLE_KILL_REVIVE - if (g_rx_vfo->channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled) - #else - if (g_rx_vfo->channel.dtmf_decoding_enable) - #endif - { - if (g_dtmf_rx_index >= (sizeof(g_dtmf_rx) - 1)) - { // make room - memmove(&g_dtmf_rx[0], &g_dtmf_rx[1], sizeof(g_dtmf_rx) - 1); - g_dtmf_rx_index--; + #ifdef ENABLE_DTMF_CALLING + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_rx_vfo->channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled) + #else + if (g_rx_vfo->channel.dtmf_decoding_enable) + #endif + { + if (g_dtmf_rx_index >= (sizeof(g_dtmf_rx) - 1)) + { // make room + memmove(&g_dtmf_rx[0], &g_dtmf_rx[1], sizeof(g_dtmf_rx) - 1); + g_dtmf_rx_index--; + } + g_dtmf_rx[g_dtmf_rx_index++] = c; + g_dtmf_rx[g_dtmf_rx_index] = 0; + g_dtmf_rx_timeout = dtmf_rx_timeout_500ms; // time till we delete it + g_dtmf_rx_pending = true; + + DTMF_HandleRequest(); } - g_dtmf_rx[g_dtmf_rx_index++] = c; - g_dtmf_rx[g_dtmf_rx_index] = 0; - g_dtmf_rx_timeout = dtmf_rx_timeout_500ms; // time till we delete it - g_dtmf_rx_pending = true; - - DTMF_HandleRequest(); - } + #endif } } @@ -1272,9 +1282,11 @@ void APP_end_tx(void) g_update_status = true; - #ifdef ENABLE_KILL_REVIVE - if (g_eeprom.config.setting.radio_disabled) - return; + #ifdef ENABLE_DTMF_CALLING + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_eeprom.config.setting.radio_disabled) + return; + #endif #endif if (!g_eeprom.config.setting.tx_enable) @@ -1319,9 +1331,11 @@ void APP_process_keys(void) key_code_t key; - #ifdef ENABLE_KILL_REVIVE - if (g_eeprom.config.setting.radio_disabled) - return; + #ifdef ENABLE_DTMF_CALLING + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_eeprom.config.setting.radio_disabled) + return; + #endif #endif // ***************** @@ -1345,7 +1359,7 @@ void APP_process_keys(void) if (g_current_display_screen != DISPLAY_AIRCOPY) #endif { - #ifdef ENABLE_KILL_REVIVE + #if defined(ENABLE_DTMF_CALLING) && defined(ENABLE_DTMF_KILL_REVIVE) if (!g_eeprom.config.setting.radio_disabled) #endif { @@ -1929,7 +1943,9 @@ void APP_process_power_save(void) g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF || g_current_display_screen != DISPLAY_MAIN || - g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif g_flash_light_state == FLASHLIGHT_SOS) { power_save = false; @@ -2129,9 +2145,11 @@ void APP_time_slice_500ms(void) if (--g_menu_tick_10ms == 0) exit_menu = (g_current_display_screen == DISPLAY_MENU); // exit menu mode - if (g_dtmf_rx_timeout > 0) - if (--g_dtmf_rx_timeout == 0) - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_rx_timeout > 0) + if (--g_dtmf_rx_timeout == 0) + DTMF_clear_RX(); + #endif #ifdef ENABLE_FMRADIO if (g_fm_radio_tick_500ms > 0) @@ -2350,48 +2368,50 @@ void APP_time_slice_500ms(void) return; #endif - if (g_current_function != FUNCTION_TRANSMIT) - { - if (g_dtmf_decode_ring_tick_500ms > 0) - { // make "ring-ring" sound - g_dtmf_decode_ring_tick_500ms--; - - #ifdef ENABLE_DTMF_CALL_FLASH_LIGHT - GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // light on - #endif - - AUDIO_PlayBeep(BEEP_880HZ_200MS); - - #ifdef ENABLE_DTMF_CALL_FLASH_LIGHT - GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // light off - #endif - } - } - else - g_dtmf_decode_ring_tick_500ms = 0; - - if (g_dtmf_call_state != DTMF_CALL_STATE_NONE && - g_current_function != FUNCTION_TRANSMIT && - g_current_function != FUNCTION_RECEIVE) - { - if (g_dtmf_auto_reset_time_500ms > 0) + #ifdef ENABLE_DTMF_CALLING + if (g_current_function != FUNCTION_TRANSMIT) { - if (--g_dtmf_auto_reset_time_500ms == 0) - { - if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED && g_eeprom.config.setting.dtmf.auto_reset_time >= DTMF_HOLD_MAX) - g_dtmf_call_state = DTMF_CALL_STATE_RECEIVED_STAY; // keep message on-screen till a key is pressed - else - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - g_update_display = true; + if (g_dtmf_decode_ring_tick_500ms > 0) + { // make "ring-ring" sound + g_dtmf_decode_ring_tick_500ms--; + + #ifdef ENABLE_DTMF_CALL_FLASH_LIGHT + GPIO_SetBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // light on + #endif + + AUDIO_PlayBeep(BEEP_880HZ_200MS); + + #ifdef ENABLE_DTMF_CALL_FLASH_LIGHT + GPIO_ClearBit(&GPIOC->DATA, GPIOC_PIN_FLASHLIGHT); // light off + #endif } } + else + g_dtmf_decode_ring_tick_500ms = 0; -// if (g_dtmf_call_state != DTMF_CALL_STATE_RECEIVED_STAY) -// { -// g_dtmf_call_state = DTMF_CALL_STATE_NONE; -// g_update_display = true; -// } - } + if (g_dtmf_call_state != DTMF_CALL_STATE_NONE && + g_current_function != FUNCTION_TRANSMIT && + g_current_function != FUNCTION_RECEIVE) + { + if (g_dtmf_auto_reset_time_500ms > 0) + { + if (--g_dtmf_auto_reset_time_500ms == 0) + { + if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED && g_eeprom.config.setting.dtmf.auto_reset_time >= DTMF_HOLD_MAX) + g_dtmf_call_state = DTMF_CALL_STATE_RECEIVED_STAY; // keep message on-screen till a key is pressed + else + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + g_update_display = true; + } + } + +// if (g_dtmf_call_state != DTMF_CALL_STATE_RECEIVED_STAY) +// { +// g_dtmf_call_state = DTMF_CALL_STATE_NONE; +// g_update_display = true; +// } + } + #endif if (g_dtmf_is_tx && g_dtmf_tx_stop_tick_500ms > 0) { @@ -2636,7 +2656,7 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const #ifdef ENABLE_AIRCOPY if (g_current_display_screen == DISPLAY_AIRCOPY) { - AIRCOPY_process_key(key, key_pressed, key_held); + AIRCOPY_process_key(Key, key_pressed, key_held); return; } #endif @@ -2755,8 +2775,10 @@ static void APP_process_key(const key_code_t Key, const bool key_pressed, const g_menu_tick_10ms = menu_timeout_500ms; // cancel the ringing - if (key_pressed && g_dtmf_decode_ring_tick_500ms > 0) - g_dtmf_decode_ring_tick_500ms = 0; + #ifdef ENABLE_DTMF_CALLING + if (key_pressed && g_dtmf_decode_ring_tick_500ms > 0) + g_dtmf_decode_ring_tick_500ms = 0; + #endif // ******************** @@ -3063,10 +3085,12 @@ Skip: // g_tx_vfo->freq_in_channel = SETTINGS_find_channel(frequency); - g_dtmf_auto_reset_time_500ms = 0; - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - g_dtmf_tx_stop_tick_500ms = 0; - g_dtmf_is_tx = false; + #ifdef ENABLE_DTMF_CALLING + g_dtmf_auto_reset_time_500ms = 0; + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + #endif + g_dtmf_tx_stop_tick_500ms = 0; + g_dtmf_is_tx = false; g_vfo_rssi_bar_level[0] = 0; g_vfo_rssi_bar_level[1] = 0; diff --git a/app/dtmf.c b/app/dtmf.c index 174f579..f6564fd 100644 --- a/app/dtmf.c +++ b/app/dtmf.c @@ -41,38 +41,43 @@ uint8_t g_dtmf_input_box_index; bool g_dtmf_input_mode; uint8_t g_dtmf_prev_index; -char g_dtmf_rx[17]; -uint8_t g_dtmf_rx_index; -uint8_t g_dtmf_rx_timeout; -bool g_dtmf_rx_pending; - #ifdef ENABLE_DTMF_LIVE_DECODER char g_dtmf_rx_live[20]; uint8_t g_dtmf_rx_live_timeout; #endif -bool g_dtmf_is_contact_valid; -char g_dtmf_id[4]; -char g_dtmf_caller[4]; -char g_dtmf_callee[4]; -dtmf_state_t g_dtmf_state; -uint8_t g_dtmf_decode_ring_tick_500ms; -uint8_t g_dtmf_chosen_contact; -uint8_t g_dtmf_auto_reset_time_500ms; -dtmf_call_state_t g_dtmf_call_state; -dtmf_reply_state_t g_dtmf_reply_state; -dtmf_call_mode_t g_dtmf_call_mode; -bool g_dtmf_is_tx; -uint8_t g_dtmf_tx_stop_tick_500ms; -bool g_dtmf_IsGroupCall; +#ifdef ENABLE_DTMF_CALLING + char g_dtmf_rx[17]; + uint8_t g_dtmf_rx_index; + uint8_t g_dtmf_rx_timeout; + bool g_dtmf_rx_pending; + + bool g_dtmf_is_contact_valid; + char g_dtmf_id[4]; + char g_dtmf_caller[4]; + char g_dtmf_callee[4]; + dtmf_state_t g_dtmf_state; + uint8_t g_dtmf_decode_ring_tick_500ms; + uint8_t g_dtmf_chosen_contact; + uint8_t g_dtmf_auto_reset_time_500ms; + dtmf_call_state_t g_dtmf_call_state; + dtmf_call_mode_t g_dtmf_call_mode; + bool g_dtmf_IsGroupCall; +#endif -void DTMF_clear_RX(void) -{ - g_dtmf_rx_timeout = 0; - g_dtmf_rx_index = 0; - g_dtmf_rx_pending = false; - memset(g_dtmf_rx, 0, sizeof(g_dtmf_rx)); -} +dtmf_reply_state_t g_dtmf_reply_state; +bool g_dtmf_is_tx; +uint8_t g_dtmf_tx_stop_tick_500ms; + +#ifdef ENABLE_DTMF_CALLING + void DTMF_clear_RX(void) + { + g_dtmf_rx_timeout = 0; + g_dtmf_rx_index = 0; + g_dtmf_rx_pending = false; + memset(g_dtmf_rx, 0, sizeof(g_dtmf_rx)); + } +#endif bool DTMF_ValidateCodes(char *pCode, const unsigned int size) { @@ -96,44 +101,46 @@ bool DTMF_ValidateCodes(char *pCode, const unsigned int size) return true; } -bool DTMF_GetContact(const int Index, char *pContact) -{ - int i = -1; - if (Index >= 0 && Index < (int)ARRAY_SIZE(g_eeprom.config.dtmf_contact)) +#ifdef ENABLE_DTMF_CALLING + bool DTMF_GetContact(const int Index, char *pContact) { - memcpy(pContact, &g_eeprom.config.dtmf_contact[Index], 16); -// EEPROM_ReadBuffer(0x1C00 + (Index * 16), pContact, 16); - i = (int)pContact[0] - ' '; - } - return (i < 0 || i >= 95) ? false : true; -} - -bool DTMF_FindContact(const char *pContact, char *pResult) -{ - char Contact[16]; - unsigned int i; - - for (i = 0; i < MAX_DTMF_CONTACTS; i++) - { - unsigned int j; - - if (!DTMF_GetContact(i, Contact)) - return false; - - for (j = 0; j < 3; j++) - if (pContact[j] != Contact[j + 8]) - break; - - if (j == 3) + int i = -1; + if (Index >= 0 && Index < (int)ARRAY_SIZE(g_eeprom.config.dtmf_contact)) { - memcpy(pResult, Contact, 8); - pResult[8] = 0; - return true; + memcpy(pContact, &g_eeprom.config.dtmf_contact[Index], 16); + // EEPROM_ReadBuffer(0x1C00 + (Index * 16), pContact, 16); + i = (int)pContact[0] - ' '; } + return (i < 0 || i >= 95) ? false : true; } - - return false; -} + + bool DTMF_FindContact(const char *pContact, char *pResult) + { + char Contact[16]; + unsigned int i; + + for (i = 0; i < MAX_DTMF_CONTACTS; i++) + { + unsigned int j; + + if (!DTMF_GetContact(i, Contact)) + return false; + + for (j = 0; j < 3; j++) + if (pContact[j] != Contact[j + 8]) + break; + + if (j == 3) + { + memcpy(pResult, Contact, 8); + pResult[8] = 0; + return true; + } + } + + return false; + } +#endif char DTMF_GetCharacter(const unsigned int code) { @@ -159,31 +166,33 @@ char DTMF_GetCharacter(const unsigned int code) } } -bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, const unsigned int size, const bool bCheckGroup) -{ - unsigned int i; - for (i = 0; i < size; i++) +#ifdef ENABLE_DTMF_CALLING + bool DTMF_CompareMessage(const char *pMsg, const char *pTemplate, const unsigned int size, const bool bCheckGroup) { - if (pMsg[i] != pTemplate[i]) + unsigned int i; + for (i = 0; i < size; i++) { - if (!bCheckGroup || pMsg[i] != g_eeprom.config.setting.dtmf.group_call_code) - return false; - g_dtmf_IsGroupCall = true; + if (pMsg[i] != pTemplate[i]) + { + if (!bCheckGroup || pMsg[i] != g_eeprom.config.setting.dtmf.group_call_code) + return false; + g_dtmf_IsGroupCall = true; + } } + + return true; } - - return true; -} - -dtmf_call_mode_t DTMF_CheckGroupCall(const char *pMsg, const unsigned int size) -{ - unsigned int i; - for (i = 0; i < size; i++) - if (pMsg[i] == g_eeprom.config.setting.dtmf.group_call_code) - break; - - return (i < size) ? DTMF_CALL_MODE_GROUP : DTMF_CALL_MODE_NOT_GROUP; -} + + dtmf_call_mode_t DTMF_CheckGroupCall(const char *pMsg, const unsigned int size) + { + unsigned int i; + for (i = 0; i < size; i++) + if (pMsg[i] == g_eeprom.config.setting.dtmf.group_call_code) + break; + + return (i < size) ? DTMF_CALL_MODE_GROUP : DTMF_CALL_MODE_NOT_GROUP; + } +#endif void DTMF_clear_input_box(void) { @@ -204,236 +213,249 @@ void DTMF_Append(const char code) g_dtmf_input_box[g_dtmf_input_box_index++] = code; } -void DTMF_HandleRequest(void) -{ // proccess the RX'ed DTMF characters - - char String[21]; - unsigned int Offset; - - if (!g_dtmf_rx_pending) - return; // nothing new received - - if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF) - { // we're busy scanning - DTMF_clear_RX(); - return; - } - - #ifdef ENABLE_KILL_REVIVE - if (!g_rx_vfo->channel.dtmf_decoding_enable && !g_eeprom.config.setting.radio_disabled) - #else - if (!g_rx_vfo->channel.dtmf_decoding_enable) - #endif - { // D-DCD is disabled or we're enabled - DTMF_clear_RX(); - return; - } - - g_dtmf_rx_pending = false; - - #ifdef ENABLE_KILL_REVIVE - if (g_dtmf_rx_index >= 9) - { // look for the RADIO DISABLE code +#ifdef ENABLE_DTMF_CALLING + void DTMF_HandleRequest(void) + { // proccess the RX'ed DTMF characters - sprintf(String, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.kill_code); + char String[21]; + unsigned int Offset; - Offset = g_dtmf_rx_index - strlen(String); + if (!g_dtmf_rx_pending) + return; // nothing new received - if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) - { // bugger + if (g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF) + { // we're busy scanning + DTMF_clear_RX(); + return; + } - if (g_eeprom.config.setting.dtmf.permit_remote_kill != 0) - { - g_eeprom.config.setting.radio_disabled = true; // :( + #ifdef ENABLE_DTMF_KILL_REVIVE + if (!g_rx_vfo->channel.dtmf_decoding_enable && !g_eeprom.config.setting.radio_disabled) + #else + if (!g_rx_vfo->channel.dtmf_decoding_enable) + #endif + { // D-DCD is disabled or we're enabled + DTMF_clear_RX(); + return; + } + g_dtmf_rx_pending = false; + + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_dtmf_rx_index >= 9) + { // look for the RADIO DISABLE code + + sprintf(String, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.kill_code); + + Offset = g_dtmf_rx_index - strlen(String); + + if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) + { // bugger + + if (g_eeprom.config.setting.dtmf.permit_remote_kill != 0) + { + g_eeprom.config.setting.radio_disabled = true; // :( + + DTMF_clear_RX(); + + SETTINGS_save(); + + g_dtmf_reply_state = DTMF_REPLY_AB; + + #ifdef ENABLE_FMRADIO + if (g_fm_radio_mode) + { + FM_turn_off(); + GUI_SelectNextDisplay(DISPLAY_MAIN); + } + #endif + } + else + { + g_dtmf_reply_state = DTMF_REPLY_NONE; + } + + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + + g_update_display = true; + g_update_status = true; + return; + } + } + + if (g_dtmf_rx_index >= 9) + { // look for the REVIVE code + + sprintf(String, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.revive_code); + + Offset = g_dtmf_rx_index - strlen(String); + + if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) + { // shit, we're back ! + + g_eeprom.config.setting.radio_disabled = false; + DTMF_clear_RX(); - + SETTINGS_save(); - + g_dtmf_reply_state = DTMF_REPLY_AB; - - #ifdef ENABLE_FMRADIO - if (g_fm_radio_mode) - { - FM_turn_off(); - GUI_SelectNextDisplay(DISPLAY_MAIN); - } - #endif + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + + g_update_display = true; + g_update_status = true; + return; } - else - { - g_dtmf_reply_state = DTMF_REPLY_NONE; - } - - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - - g_update_display = true; - g_update_status = true; - return; } - } - - if (g_dtmf_rx_index >= 9) - { // look for the REVIVE code + #endif - sprintf(String, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.revive_code); + if (g_dtmf_rx_index >= 2) + { // look for ACK reply + + strcpy(String, "AB"); Offset = g_dtmf_rx_index - strlen(String); if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) - { // shit, we're back ! + { // ends with "AB" - g_eeprom.config.setting.radio_disabled = false; - - DTMF_clear_RX(); - - SETTINGS_save(); - - g_dtmf_reply_state = DTMF_REPLY_AB; - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - - g_update_display = true; - g_update_status = true; - return; + if (g_dtmf_reply_state != DTMF_REPLY_NONE) // 1of11 + // if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) // 1of11 + { + g_dtmf_state = DTMF_STATE_TX_SUCC; + DTMF_clear_RX(); + g_update_display = true; + return; + } } } - #endif - - if (g_dtmf_rx_index >= 2) - { // look for ACK reply - - strcpy(String, "AB"); - - Offset = g_dtmf_rx_index - strlen(String); - - if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) - { // ends with "AB" - - if (g_dtmf_reply_state != DTMF_REPLY_NONE) // 1of11 -// if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) // 1of11 - { - g_dtmf_state = DTMF_STATE_TX_SUCC; + + if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT && + g_dtmf_call_mode == DTMF_CALL_MODE_NOT_GROUP && + g_dtmf_rx_index >= 9) + { // waiting for a reply + + sprintf(String, "%s%c%s", g_dtmf_string, g_eeprom.config.setting.dtmf.separate_code, "AAAAA"); + + Offset = g_dtmf_rx_index - strlen(String); + + if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), false)) + { // we got a response + g_dtmf_state = DTMF_STATE_CALL_OUT_RSP; DTMF_clear_RX(); g_update_display = true; - return; } } - } - - if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT && - g_dtmf_call_mode == DTMF_CALL_MODE_NOT_GROUP && - g_dtmf_rx_index >= 9) - { // waiting for a reply - - sprintf(String, "%s%c%s", g_dtmf_string, g_eeprom.config.setting.dtmf.separate_code, "AAAAA"); - - Offset = g_dtmf_rx_index - strlen(String); - - if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), false)) - { // we got a response - g_dtmf_state = DTMF_STATE_CALL_OUT_RSP; - DTMF_clear_RX(); - g_update_display = true; - } - } - - #ifdef ENABLE_KILL_REVIVE - if (g_eeprom.config.setting.radio_disabled) - return; // we've been disabled - #endif - - if (g_dtmf_rx_index >= 7) - { // see if we're being called - - g_dtmf_IsGroupCall = false; - - sprintf(String, "%s%c", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code); - - Offset = g_dtmf_rx_index - strlen(String) - 3; - - if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) - { // it's for us ! - - g_dtmf_call_state = DTMF_CALL_STATE_RECEIVED; - - memset(g_dtmf_callee, 0, sizeof(g_dtmf_callee)); - memset(g_dtmf_caller, 0, sizeof(g_dtmf_caller)); - memcpy(g_dtmf_callee, g_dtmf_rx + Offset + 0, 3); - memcpy(g_dtmf_caller, g_dtmf_rx + Offset + 4, 3); - - DTMF_clear_RX(); - - g_update_display = true; - - switch (g_eeprom.config.setting.dtmf.decode_response) - { - case DTMF_DEC_RESPONSE_BOTH: - g_dtmf_decode_ring_tick_500ms = dtmf_decode_ring_500ms; - - // Fallthrough - - case DTMF_DEC_RESPONSE_REPLY: - g_dtmf_reply_state = DTMF_REPLY_AAAAA; - break; - case DTMF_DEC_RESPONSE_RING: - g_dtmf_decode_ring_tick_500ms = dtmf_decode_ring_500ms; - break; - default: - case DTMF_DEC_RESPONSE_NONE: - g_dtmf_decode_ring_tick_500ms = 0; + + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_eeprom.config.setting.radio_disabled) + return; // we've been disabled + #endif + + if (g_dtmf_rx_index >= 7) + { // see if we're being called + + g_dtmf_IsGroupCall = false; + + sprintf(String, "%s%c", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code); + + Offset = g_dtmf_rx_index - strlen(String) - 3; + + if (DTMF_CompareMessage(g_dtmf_rx + Offset, String, strlen(String), true)) + { // it's for us ! + + g_dtmf_call_state = DTMF_CALL_STATE_RECEIVED; + + memset(g_dtmf_callee, 0, sizeof(g_dtmf_callee)); + memset(g_dtmf_caller, 0, sizeof(g_dtmf_caller)); + memcpy(g_dtmf_callee, g_dtmf_rx + Offset + 0, 3); + memcpy(g_dtmf_caller, g_dtmf_rx + Offset + 4, 3); + + DTMF_clear_RX(); + + g_update_display = true; + + switch (g_eeprom.config.setting.dtmf.decode_response) + { + case DTMF_DEC_RESPONSE_BOTH: + g_dtmf_decode_ring_tick_500ms = dtmf_decode_ring_500ms; + + // Fallthrough + + case DTMF_DEC_RESPONSE_REPLY: + g_dtmf_reply_state = DTMF_REPLY_AAAAA; + break; + case DTMF_DEC_RESPONSE_RING: + g_dtmf_decode_ring_tick_500ms = dtmf_decode_ring_500ms; + break; + default: + case DTMF_DEC_RESPONSE_NONE: + g_dtmf_decode_ring_tick_500ms = 0; + g_dtmf_reply_state = DTMF_REPLY_NONE; + break; + } + + if (g_dtmf_IsGroupCall) g_dtmf_reply_state = DTMF_REPLY_NONE; - break; } - - if (g_dtmf_IsGroupCall) - g_dtmf_reply_state = DTMF_REPLY_NONE; } } -} - +#endif + bool DTMF_Reply(void) { const uint16_t delay_ms = ((g_eeprom.config.setting.dtmf.preload_time < 15) ? 15 : g_eeprom.config.setting.dtmf.preload_time) * 10; const char *pString = NULL; - char str[23]; + #ifdef ENABLE_DTMF_CALLING + char str[23]; + #endif switch (g_dtmf_reply_state) { - case DTMF_REPLY_ANI: + case DTMF_REPLY_STR: pString = g_dtmf_string; + break; - if (g_dtmf_call_mode != DTMF_CALL_MODE_DTMF) - { // append our ID code onto the end of the DTMF code to send - sprintf(str, "%s%c%s", g_dtmf_string, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.ani_id); + #ifdef ENABLE_DTMF_CALLING + case DTMF_REPLY_ANI: + pString = g_dtmf_string; + + if (g_dtmf_call_mode != DTMF_CALL_MODE_DTMF) + { // append our ID code onto the end of the DTMF code to send + sprintf(str, "%s%c%s", g_dtmf_string, g_eeprom.config.setting.dtmf.separate_code, g_eeprom.config.setting.dtmf.ani_id); + pString = str; + } + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) +// UART_printf("dtmf tx reply ani %s\r\n", pString); + #endif + + break; + + case DTMF_REPLY_AB: + pString = "AB"; + break; + + case DTMF_REPLY_AAAAA: + sprintf(str, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, "AAAAA"); pString = str; - } - - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) -// UART_printf("dtmf tx reply ani %s\r\n", pString); - #endif - - break; - - case DTMF_REPLY_AB: - pString = "AB"; - break; - - case DTMF_REPLY_AAAAA: - sprintf(str, "%s%c%s", g_eeprom.config.setting.dtmf.ani_id, g_eeprom.config.setting.dtmf.separate_code, "AAAAA"); - pString = str; - break; + break; + + case DTMF_REPLY_NONE: + #endif default: - case DTMF_REPLY_NONE: - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) // UART_printf("dtmf tx reply none %s\r\n", g_dtmf_string); #endif - if (g_dtmf_call_state != DTMF_CALL_STATE_NONE || - g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_APOLLO || - g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_OFF || - g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_EOT) + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_APOLLO || + g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_OFF || + g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_EOT) { g_dtmf_reply_state = DTMF_REPLY_NONE; return false; @@ -446,7 +468,7 @@ bool DTMF_Reply(void) g_dtmf_reply_state = DTMF_REPLY_NONE; - if (pString == NULL) + if (pString == NULL || strlen(pString) == 0) return false; if (g_eeprom.config.setting.dtmf.side_tone) diff --git a/app/dtmf.h b/app/dtmf.h index d497628..59f1e7e 100644 --- a/app/dtmf.h +++ b/app/dtmf.h @@ -20,7 +20,7 @@ #include #include -#define MAX_DTMF_CONTACTS 16 +#define MAX_DTMF_CONTACTS 16 enum { // seconds DTMF_HOLD_MIN = 5, @@ -34,36 +34,45 @@ enum dtmf_state_e { }; typedef enum dtmf_state_e dtmf_state_t; -enum dtmf_call_state_e { - DTMF_CALL_STATE_NONE = 0, - DTMF_CALL_STATE_CALL_OUT, - DTMF_CALL_STATE_RECEIVED, - DTMF_CALL_STATE_RECEIVED_STAY -}; -typedef enum dtmf_call_state_e dtmf_call_state_t; +#ifdef ENABLE_DTMF_CALLING + enum dtmf_call_state_e { + DTMF_CALL_STATE_NONE = 0, + DTMF_CALL_STATE_CALL_OUT, + DTMF_CALL_STATE_RECEIVED, + DTMF_CALL_STATE_RECEIVED_STAY + }; + typedef enum dtmf_call_state_e dtmf_call_state_t; + + enum dtmf_decode_response_e { + DTMF_DEC_RESPONSE_NONE = 0, + DTMF_DEC_RESPONSE_RING, + DTMF_DEC_RESPONSE_REPLY, + DTMF_DEC_RESPONSE_BOTH + }; + typedef enum dtmf_decode_response_e dtmf_decode_response_t; + + enum dtmf_reply_state_e { + DTMF_REPLY_NONE = 0, + DTMF_REPLY_STR, + DTMF_REPLY_ANI, + DTMF_REPLY_AB, + DTMF_REPLY_AAAAA + }; + typedef enum dtmf_reply_state_e dtmf_reply_state_t; -enum dtmf_decode_response_e { - DTMF_DEC_RESPONSE_NONE = 0, - DTMF_DEC_RESPONSE_RING, - DTMF_DEC_RESPONSE_REPLY, - DTMF_DEC_RESPONSE_BOTH -}; -typedef enum dtmf_decode_response_e dtmf_decode_response_t; - -enum dtmf_reply_state_e { - DTMF_REPLY_NONE = 0, - DTMF_REPLY_ANI, - DTMF_REPLY_AB, - DTMF_REPLY_AAAAA -}; -typedef enum dtmf_reply_state_e dtmf_reply_state_t; - -enum dtmf_call_mode_e { - DTMF_CALL_MODE_NOT_GROUP = 0, - DTMF_CALL_MODE_GROUP, - DTMF_CALL_MODE_DTMF -}; -typedef enum dtmf_call_mode_e dtmf_call_mode_t; + enum dtmf_call_mode_e { + DTMF_CALL_MODE_NOT_GROUP = 0, + DTMF_CALL_MODE_GROUP, + DTMF_CALL_MODE_DTMF + }; + typedef enum dtmf_call_mode_e dtmf_call_mode_t; +#else + enum dtmf_reply_state_e { + DTMF_REPLY_NONE = 0, + DTMF_REPLY_STR + }; + typedef enum dtmf_reply_state_e dtmf_reply_state_t; +#endif extern char g_dtmf_string[15]; @@ -72,40 +81,51 @@ extern uint8_t g_dtmf_input_box_index; extern bool g_dtmf_input_mode; extern uint8_t g_dtmf_prev_index; -extern char g_dtmf_rx[17]; -extern uint8_t g_dtmf_rx_index; -extern uint8_t g_dtmf_rx_timeout; -extern bool g_dtmf_rx_pending; - #ifdef ENABLE_DTMF_LIVE_DECODER - extern char g_dtmf_rx_live[20]; - extern uint8_t g_dtmf_rx_live_timeout; + extern char g_dtmf_rx_live[20]; + extern uint8_t g_dtmf_rx_live_timeout; #endif -extern bool g_dtmf_is_contact_valid; -extern char g_dtmf_id[4]; -extern char g_dtmf_caller[4]; -extern char g_dtmf_callee[4]; -extern dtmf_state_t g_dtmf_state; -extern uint8_t g_dtmf_decode_ring_tick_500ms; -extern uint8_t g_dtmf_chosen_contact; -extern uint8_t g_dtmf_auto_reset_time_500ms; -extern dtmf_call_state_t g_dtmf_call_state; -extern dtmf_reply_state_t g_dtmf_reply_state; -extern dtmf_call_mode_t g_dtmf_call_mode; -extern bool g_dtmf_is_tx; -extern uint8_t g_dtmf_tx_stop_tick_500ms; +#ifdef ENABLE_DTMF_CALLING + extern char g_dtmf_rx[17]; + extern uint8_t g_dtmf_rx_index; + extern uint8_t g_dtmf_rx_timeout; + extern bool g_dtmf_rx_pending; -void DTMF_clear_RX(void); + extern bool g_dtmf_is_contact_valid; + extern char g_dtmf_id[4]; + extern char g_dtmf_caller[4]; + extern char g_dtmf_callee[4]; + extern dtmf_state_t g_dtmf_state; + extern uint8_t g_dtmf_decode_ring_tick_500ms; + extern uint8_t g_dtmf_chosen_contact; + extern uint8_t g_dtmf_auto_reset_time_500ms; + extern dtmf_call_state_t g_dtmf_call_state; + extern dtmf_call_mode_t g_dtmf_call_mode; +#endif + +extern dtmf_reply_state_t g_dtmf_reply_state; +extern bool g_dtmf_is_tx; +extern uint8_t g_dtmf_tx_stop_tick_500ms; + +#ifdef ENABLE_DTMF_CALLING + void DTMF_clear_RX(void); +#endif bool DTMF_ValidateCodes(char *pCode, const unsigned int size); -bool DTMF_GetContact(const int Index, char *pContact); -bool DTMF_FindContact(const char *pContact, char *pResult); +#ifdef ENABLE_DTMF_CALLING + bool DTMF_GetContact(const int Index, char *pContact); + bool DTMF_FindContact(const char *pContact, char *pResult); +#endif char DTMF_GetCharacter(const unsigned int code); -bool DTMF_CompareMessage(const char *pDTMF, const char *pTemplate, const unsigned int size, const bool flag); -dtmf_call_mode_t DTMF_CheckGroupCall(const char *pDTMF, const unsigned int size); +#ifdef ENABLE_DTMF_CALLING + bool DTMF_CompareMessage(const char *pDTMF, const char *pTemplate, const unsigned int size, const bool flag); + dtmf_call_mode_t DTMF_CheckGroupCall(const char *pDTMF, const unsigned int size); +#endif void DTMF_clear_input_box(void); void DTMF_Append(const char vode); -void DTMF_HandleRequest(void); +#ifdef ENABLE_DTMF_CALLING + void DTMF_HandleRequest(void); +#endif bool DTMF_Reply(void); #endif diff --git a/app/generic.c b/app/generic.c index c431e8e..b0b21dd 100644 --- a/app/generic.c +++ b/app/generic.c @@ -214,26 +214,32 @@ void GENERIC_Key_PTT(bool key_pressed) g_dtmf_input_box[g_dtmf_input_box_index] = 0; // NULL term the string // append our DTMF ID to the inputted DTMF code - - #if 0 - // QS - if (g_dtmf_input_box_index == 3) - g_dtmf_call_mode = DTMF_CheckGroupCall(g_dtmf_input_box, 3); - else - g_dtmf_call_mode = DTMF_CALL_MODE_DTMF; - #else - // 1of11 - if (g_dtmf_input_box_index == 3 && g_dtmf_input_box[0] != '*' && g_dtmf_input_box[0] != '#') - g_dtmf_call_mode = DTMF_CheckGroupCall(g_dtmf_input_box, 3); - else - g_dtmf_call_mode = DTMF_CALL_MODE_DTMF; + #ifdef ENABLE_DTMF_CALLING + #if 0 + // QS + if (g_dtmf_input_box_index == 3) + g_dtmf_call_mode = DTMF_CheckGroupCall(g_dtmf_input_box, 3); + else + g_dtmf_call_mode = DTMF_CALL_MODE_DTMF; + #else + // 1of11 + if (g_dtmf_input_box_index == 3 && g_dtmf_input_box[0] != '*' && g_dtmf_input_box[0] != '#') + g_dtmf_call_mode = DTMF_CheckGroupCall(g_dtmf_input_box, 3); + else + g_dtmf_call_mode = DTMF_CALL_MODE_DTMF; + #endif #endif // remember the DTMF string g_dtmf_prev_index = g_dtmf_input_box_index; strcpy(g_dtmf_string, g_dtmf_input_box); - g_dtmf_reply_state = DTMF_REPLY_ANI; - g_dtmf_state = DTMF_STATE_0; + #ifdef ENABLE_DTMF_CALLING + g_dtmf_reply_state = DTMF_REPLY_ANI; + g_dtmf_state = DTMF_STATE_0; + #else + g_dtmf_reply_state = DTMF_REPLY_STR; // just send the straight string + #endif #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) // UART_printf("generic ptt tx %s\r\n", g_dtmf_string); diff --git a/app/main.c b/app/main.c index 3e46935..24e3c05 100644 --- a/app/main.c +++ b/app/main.c @@ -703,12 +703,14 @@ void MAIN_Key_EXIT(bool key_pressed, bool key_held) g_beep_to_play = BEEP_1KHZ_60MS_OPTIONAL; - if (g_dtmf_call_state != DTMF_CALL_STATE_NONE && g_current_function != FUNCTION_TRANSMIT) - { // clear CALL mode being displayed - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - g_update_display = true; - return; - } + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_call_state != DTMF_CALL_STATE_NONE && g_current_function != FUNCTION_TRANSMIT) + { // clear CALL mode being displayed + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + g_update_display = true; + return; + } + #endif #ifdef ENABLE_FMRADIO if (!g_fm_radio_mode) diff --git a/app/menu.c b/app/menu.c index 9a82968..21799eb 100644 --- a/app/menu.c +++ b/app/menu.c @@ -261,7 +261,9 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) case MENU_S_ADD2: case MENU_STE: case MENU_DTMF_ST: - case MENU_DTMF_DCD: + #ifdef ENABLE_DTMF_CALLING + case MENU_DTMF_DCD: + #endif #ifdef ENABLE_DTMF_LIVE_DECODER case MENU_DTMF_LIVE_DEC: #endif @@ -322,11 +324,6 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = 2; break; - case MENU_DTMF_RSP: - *pMin = 0; - *pMax = ARRAY_SIZE(g_sub_menu_dtmf_rsp) - 1; - break; - #ifdef ENABLE_MDC1200 case MENU_MDC1200_MODE: *pMin = 0; @@ -344,16 +341,28 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) *pMax = ARRAY_SIZE(g_sub_menu_ptt_id) - 1; break; + #ifdef ENABLE_DTMF_CALLING + case MENU_DTMF_RSP: + *pMin = 0; + *pMax = ARRAY_SIZE(g_sub_menu_dtmf_rsp) - 1; + break; + + case MENU_DTMF_HOLD: + *pMin = DTMF_HOLD_MIN; + *pMax = DTMF_HOLD_MAX; + break; + + case MENU_DTMF_LIST: + *pMin = 1; + *pMax = 16; + break; + #endif + case MENU_BAT_TXT: *pMin = 0; *pMax = ARRAY_SIZE(g_sub_menu_bat_text) - 1; break; - case MENU_DTMF_HOLD: - *pMin = DTMF_HOLD_MIN; - *pMax = DTMF_HOLD_MAX; - break; - #ifdef ENABLE_DTMF_TIMING_SETTINGS case MENU_DTMF_PRE: *pMin = 3; @@ -369,11 +378,6 @@ int MENU_GetLimits(uint8_t Cursor, int32_t *pMin, int32_t *pMax) break; #endif - case MENU_DTMF_LIST: - *pMin = 1; - *pMax = 16; - break; - #ifdef ENABLE_TX_POWER_CAL_MENU case MENU_TX_CALI: *pMin = 0; @@ -741,13 +745,33 @@ void MENU_AcceptSetting(void) g_eeprom.config.setting.dtmf.side_tone = g_sub_menu_selection; break; - case MENU_DTMF_RSP: - g_eeprom.config.setting.dtmf.decode_response = g_sub_menu_selection; - break; + #ifdef ENABLE_DTMF_CALLING + case MENU_DTMF_RSP: + g_eeprom.config.setting.dtmf.decode_response = g_sub_menu_selection; + break; + + case MENU_DTMF_HOLD: + g_eeprom.config.setting.dtmf.auto_reset_time = g_sub_menu_selection; + break; - case MENU_DTMF_HOLD: - g_eeprom.config.setting.dtmf.auto_reset_time = g_sub_menu_selection; - break; + case MENU_DTMF_DCD: + g_tx_vfo->channel.dtmf_decoding_enable = g_sub_menu_selection; + DTMF_clear_RX(); + g_request_save_channel = 1; + return; + + case MENU_DTMF_LIST: + g_dtmf_chosen_contact = g_sub_menu_selection - 1; + if (g_dtmf_is_contact_valid) + { + GUI_SelectNextDisplay(DISPLAY_MAIN); + g_dtmf_input_mode = true; + g_dtmf_input_box_index = 3; + memcpy(g_dtmf_input_box, g_dtmf_id, 4); + g_request_display_screen = DISPLAY_INVALID; + } + return; + #endif #ifdef ENABLE_DTMF_TIMING_SETTINGS case MENU_DTMF_PRE: @@ -798,12 +822,6 @@ void MENU_AcceptSetting(void) g_eeprom.config.setting.battery_text = g_sub_menu_selection; break; - case MENU_DTMF_DCD: - g_tx_vfo->channel.dtmf_decoding_enable = g_sub_menu_selection; - DTMF_clear_RX(); - g_request_save_channel = 1; - return; - #ifdef ENABLE_DTMF_LIVE_DECODER case MENU_DTMF_LIVE_DEC: g_eeprom.config.setting.dtmf_live_decoder = g_sub_menu_selection; @@ -816,18 +834,6 @@ void MENU_AcceptSetting(void) break; #endif - case MENU_DTMF_LIST: - g_dtmf_chosen_contact = g_sub_menu_selection - 1; - if (g_dtmf_is_contact_valid) - { - GUI_SelectNextDisplay(DISPLAY_MAIN); - g_dtmf_input_mode = true; - g_dtmf_input_box_index = 3; - memcpy(g_dtmf_input_box, g_dtmf_id, 4); - g_request_display_screen = DISPLAY_INVALID; - } - return; - case MENU_PON_MSG: g_eeprom.config.setting.power_on_display_mode = g_sub_menu_selection; break; @@ -871,21 +877,21 @@ void MENU_AcceptSetting(void) return; #ifdef ENABLE_SIDE_BUTT_MENU - case MENU_SIDE1_SHORT: - g_eeprom.config.setting.key1_short = g_sub_menu_selection; - break; - - case MENU_SIDE1_LONG: - g_eeprom.config.setting.key1_long = g_sub_menu_selection; - break; - - case MENU_SIDE2_SHORT: - g_eeprom.config.setting.key2_short = g_sub_menu_selection; - break; - - case MENU_SIDE2_LONG: - g_eeprom.config.setting.key2_long = g_sub_menu_selection; - break; + case MENU_SIDE1_SHORT: + g_eeprom.config.setting.key1_short = g_sub_menu_selection; + break; + + case MENU_SIDE1_LONG: + g_eeprom.config.setting.key1_long = g_sub_menu_selection; + break; + + case MENU_SIDE2_SHORT: + g_eeprom.config.setting.key2_short = g_sub_menu_selection; + break; + + case MENU_SIDE2_LONG: + g_eeprom.config.setting.key2_long = g_sub_menu_selection; + break; #endif case MENU_RESET: @@ -1190,9 +1196,9 @@ void MENU_ShowCurrentSetting(void) break; #ifdef ENABLE_KEYLOCK - case MENU_AUTO_KEY_LOCK: - g_sub_menu_selection = g_eeprom.config.setting.auto_key_lock; - break; + case MENU_AUTO_KEY_LOCK: + g_sub_menu_selection = g_eeprom.config.setting.auto_key_lock; + break; #endif #ifdef ENABLE_SCAN_RANGES @@ -1257,47 +1263,57 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = RADIO_FindNextChannel(0, 1, true, 1); break; -#ifdef ENABLE_ALARM + #ifdef ENABLE_ALARM case MENU_ALARM_MODE: g_sub_menu_selection = g_eeprom.config.setting.alarm_mode; break; -#endif + #endif case MENU_DTMF_ST: g_sub_menu_selection = g_eeprom.config.setting.dtmf.side_tone; break; - case MENU_DTMF_RSP: - g_sub_menu_selection = g_eeprom.config.setting.dtmf.decode_response; - break; + #ifdef ENABLE_DTMF_CALLING + case MENU_DTMF_RSP: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.decode_response; + break; + + case MENU_DTMF_HOLD: + g_sub_menu_selection = g_eeprom.config.setting.dtmf.auto_reset_time; + + if (g_sub_menu_selection <= DTMF_HOLD_MIN) + g_sub_menu_selection = DTMF_HOLD_MIN; + else + if (g_sub_menu_selection <= 10) + g_sub_menu_selection = 10; + else + if (g_sub_menu_selection <= 20) + g_sub_menu_selection = 20; + else + if (g_sub_menu_selection <= 30) + g_sub_menu_selection = 30; + else + if (g_sub_menu_selection <= 40) + g_sub_menu_selection = 40; + else + if (g_sub_menu_selection <= 50) + g_sub_menu_selection = 50; + else + if (g_sub_menu_selection < DTMF_HOLD_MAX) + g_sub_menu_selection = 50; + else + g_sub_menu_selection = DTMF_HOLD_MAX; + + break; - case MENU_DTMF_HOLD: - g_sub_menu_selection = g_eeprom.config.setting.dtmf.auto_reset_time; + case MENU_DTMF_DCD: + g_sub_menu_selection = g_tx_vfo->channel.dtmf_decoding_enable; + break; - if (g_sub_menu_selection <= DTMF_HOLD_MIN) - g_sub_menu_selection = DTMF_HOLD_MIN; - else - if (g_sub_menu_selection <= 10) - g_sub_menu_selection = 10; - else - if (g_sub_menu_selection <= 20) - g_sub_menu_selection = 20; - else - if (g_sub_menu_selection <= 30) - g_sub_menu_selection = 30; - else - if (g_sub_menu_selection <= 40) - g_sub_menu_selection = 40; - else - if (g_sub_menu_selection <= 50) - g_sub_menu_selection = 50; - else - if (g_sub_menu_selection < DTMF_HOLD_MAX) - g_sub_menu_selection = 50; - else - g_sub_menu_selection = DTMF_HOLD_MAX; - - break; + case MENU_DTMF_LIST: + g_sub_menu_selection = g_dtmf_chosen_contact + 1; + break; + #endif #ifdef ENABLE_DTMF_TIMING_SETTINGS case MENU_DTMF_PRE: @@ -1339,14 +1355,6 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = g_eeprom.config.setting.battery_text; return; - case MENU_DTMF_DCD: - g_sub_menu_selection = g_tx_vfo->channel.dtmf_decoding_enable; - break; - - case MENU_DTMF_LIST: - g_sub_menu_selection = g_dtmf_chosen_contact + 1; - break; - #ifdef ENABLE_DTMF_LIVE_DECODER case MENU_DTMF_LIVE_DEC: g_sub_menu_selection = g_eeprom.config.setting.dtmf_live_decoder; @@ -1365,49 +1373,49 @@ void MENU_ShowCurrentSetting(void) g_sub_menu_selection = g_tx_vfo->channel.mod_mode; break; /* -#ifdef ENABLE_AM_FIX + #ifdef ENABLE_AM_FIX case MENU_AM_FIX: g_sub_menu_selection = g_eeprom.config.setting.am_fix; break; -#endif + #endif */ -#ifdef ENABLE_AM_FIX_TEST1 + #ifdef ENABLE_AM_FIX_TEST1 case MENU_AM_FIX_TEST1: g_sub_menu_selection = g_eeprom.config.setting.am_fix_test1; break; -#endif + #endif -#ifdef ENABLE_NOAA + #ifdef ENABLE_NOAA case MENU_NOAA_SCAN: g_sub_menu_selection = g_eeprom.config.setting.noaa_auto_scan; break; -#endif + #endif case MENU_MEM_DEL: -#if 0 + #if 0 g_sub_menu_selection = RADIO_FindNextChannel(g_eeprom.config.setting.indices.vfo[0].user, 1, false, 1); -#else + #else g_sub_menu_selection = RADIO_FindNextChannel(g_eeprom.config.setting.indices.vfo[g_eeprom.config.setting.tx_vfo_num].user, 1, false, 1); -#endif + #endif break; -#ifdef ENABLE_SIDE_BUTT_MENU - case MENU_SIDE1_SHORT: - g_sub_menu_selection = g_eeprom.config.setting.key1_short; - break; - - case MENU_SIDE1_LONG: - g_sub_menu_selection = g_eeprom.config.setting.key1_long; - break; - - case MENU_SIDE2_SHORT: - g_sub_menu_selection = g_eeprom.config.setting.key2_short; - break; - - case MENU_SIDE2_LONG: - g_sub_menu_selection = g_eeprom.config.setting.key2_long; - break; -#endif + #ifdef ENABLE_SIDE_BUTT_MENU + case MENU_SIDE1_SHORT: + g_sub_menu_selection = g_eeprom.config.setting.key1_short; + break; + + case MENU_SIDE1_LONG: + g_sub_menu_selection = g_eeprom.config.setting.key1_long; + break; + + case MENU_SIDE2_SHORT: + g_sub_menu_selection = g_eeprom.config.setting.key2_short; + break; + + case MENU_SIDE2_LONG: + g_sub_menu_selection = g_eeprom.config.setting.key2_long; + break; + #endif case MENU_350_TX: g_sub_menu_selection = g_eeprom.config.setting.enable_tx_350; diff --git a/app/search.c b/app/search.c index 1a8383a..fdf3ed1 100644 --- a/app/search.c +++ b/app/search.c @@ -650,7 +650,9 @@ void SEARCH_Start(void) BK4819_EnableFrequencyScan(); } - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + DTMF_clear_RX(); + #endif #ifdef ENABLE_VOX g_vox_lost = false; diff --git a/app/uart.c b/app/uart.c index 20dd366..e57502d 100644 --- a/app/uart.c +++ b/app/uart.c @@ -352,7 +352,7 @@ static void cmd_051D(const uint8_t *pBuffer) memset(data, 0xff, 8); // wipe the AES key #endif - //#ifndef ENABLE_KILL_REVIVE + //#ifndef ENABLE_DTMF_KILL_REVIVE if (Offset == 0x0F40) { // killed flag is here data[2] = false; // remove it diff --git a/firmware.bin b/firmware.bin index 03dfda99863a57a37e6e981ed35ac3e37b07e423..a6963520fc5385ae534c45abb3e309d8199d656d 100644 GIT binary patch delta 43917 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�co9dwj+#s#zkKB_2JCpXmaL+MY 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

)<%?_|JYECgJ($c7lyh+~ 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

)ejR`jXK$1NH;wI4^FGR!KFd(f7j)kmH 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 diff --git a/functions.c b/functions.c index 00b375d..bcdc55b 100644 --- a/functions.c +++ b/functions.c @@ -56,7 +56,9 @@ void FUNCTION_Init(void) else g_current_code_type = CODE_TYPE_CONTINUOUS_TONE; - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + DTMF_clear_RX(); + #endif g_cxcss_tail_found = false; g_cdcss_lost = false; @@ -123,12 +125,14 @@ void FUNCTION_Select(function_type_t Function) g_fm_restore_tick_10ms = g_eeprom.config.setting.scan_hold_time * 50; #endif - if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT || - g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || - g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) - { - g_dtmf_auto_reset_time_500ms = g_eeprom.config.setting.dtmf.auto_reset_time * 2; - } + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT || + g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || + g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) + { + g_dtmf_auto_reset_time_500ms = g_eeprom.config.setting.dtmf.auto_reset_time * 2; + } + #endif return; @@ -213,7 +217,9 @@ void FUNCTION_Select(function_type_t Function) BK4819_DisableDTMF(); // clear the DTMF RX buffer - DTMF_clear_RX(); + #ifdef ENABLE_DTMF_CALLING + DTMF_clear_RX(); + #endif #ifdef ENABLE_DTMF_LIVE_DECODER // clear the DTMF RX live decoder buffer @@ -262,35 +268,37 @@ void FUNCTION_Select(function_type_t Function) } else #endif - if (!DTMF_Reply()) - { - #ifdef ENABLE_MDC1200 - if (g_current_vfo->channel.mdc1200_mode == MDC1200_MODE_BOT || g_current_vfo->channel.mdc1200_mode == MDC1200_MODE_BOTH) - { - #ifdef ENABLE_MDC1200_SIDE_BEEP -// BK4819_start_tone(880, 10, true, true); -// SYSTEM_DelayMs(120); -// BK4819_stop_tones(true); - #endif - SYSTEM_DelayMs(30); - - BK4819_send_MDC1200(MDC1200_OP_CODE_PTT_ID, 0x80, g_eeprom.config.setting.mdc1200_id, true); - - #ifdef ENABLE_MDC1200_SIDE_BEEP - BK4819_start_tone(880, 10, true, true); - SYSTEM_DelayMs(120); - BK4819_stop_tones(true); - #endif - } - else + #ifdef ENABLE_DTMF_CALLING + if (!DTMF_Reply()) #endif - if (g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_APOLLO) { - BK4819_start_tone(APOLLO_TONE1_HZ, 28, true, false); - SYSTEM_DelayMs(APOLLO_TONE_MS); - BK4819_stop_tones(true); + #ifdef ENABLE_MDC1200 + if (g_current_vfo->channel.mdc1200_mode == MDC1200_MODE_BOT || g_current_vfo->channel.mdc1200_mode == MDC1200_MODE_BOTH) + { + #ifdef ENABLE_MDC1200_SIDE_BEEP +// BK4819_start_tone(880, 10, true, true); +// SYSTEM_DelayMs(120); +// BK4819_stop_tones(true); + #endif + SYSTEM_DelayMs(30); + + BK4819_send_MDC1200(MDC1200_OP_CODE_PTT_ID, 0x80, g_eeprom.config.setting.mdc1200_id, true); + + #ifdef ENABLE_MDC1200_SIDE_BEEP + BK4819_start_tone(880, 10, true, true); + SYSTEM_DelayMs(120); + BK4819_stop_tones(true); + #endif + } + else + #endif + if (g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_APOLLO) + { + BK4819_start_tone(APOLLO_TONE1_HZ, 28, true, false); + SYSTEM_DelayMs(APOLLO_TONE_MS); + BK4819_stop_tones(true); + } } - } if (g_eeprom.config.setting.enable_scrambler) BK4819_set_scrambler(g_current_vfo->channel.scrambler); diff --git a/panadapter.c b/panadapter.c index e6174bf..2bb5ac2 100644 --- a/panadapter.c +++ b/panadapter.c @@ -142,7 +142,9 @@ void PAN_process_10ms(void) g_current_display_screen == DISPLAY_SEARCH || g_css_scan_mode != CSS_SCAN_MODE_OFF || g_scan_state_dir != SCAN_STATE_DIR_OFF || - g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF) { if (g_panadapter_enabled) diff --git a/radio.c b/radio.c index e714f71..ed81abc 100644 --- a/radio.c +++ b/radio.c @@ -1167,24 +1167,29 @@ void RADIO_PrepareTX(void) // ****************************** // TX is allowed - #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) - UART_printf("radio prepare tx %u %s\r\n", g_dtmf_reply_state, g_dtmf_string); + #if defined(ENABLE_DTMF_CALLING) && defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) +// UART_printf("radio prepare tx %u %s\r\n", g_dtmf_reply_state, g_dtmf_string); #endif - if (g_dtmf_reply_state == DTMF_REPLY_ANI) - { - if (g_dtmf_call_mode == DTMF_CALL_MODE_DTMF) + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_reply_state == DTMF_REPLY_STR || g_dtmf_reply_state == DTMF_REPLY_ANI) { - g_dtmf_is_tx = true; - g_dtmf_call_state = DTMF_CALL_STATE_NONE; - g_dtmf_tx_stop_tick_500ms = dtmf_txstop_500ms; + if (g_dtmf_call_mode == DTMF_CALL_MODE_DTMF) + { + g_dtmf_is_tx = true; + g_dtmf_call_state = DTMF_CALL_STATE_NONE; + g_dtmf_tx_stop_tick_500ms = dtmf_txstop_500ms; + } + else + { + g_dtmf_call_state = DTMF_CALL_STATE_CALL_OUT; + g_dtmf_is_tx = false; + } } - else - { - g_dtmf_call_state = DTMF_CALL_STATE_CALL_OUT; - g_dtmf_is_tx = false; - } - } + #else + if (g_dtmf_reply_state == DTMF_REPLY_STR) + g_dtmf_is_tx = false; + #endif FUNCTION_Select(FUNCTION_TRANSMIT); } @@ -1233,7 +1238,10 @@ void RADIO_tx_eot(void) } #endif - if (g_dtmf_call_state == DTMF_CALL_STATE_NONE && + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state == DTMF_CALL_STATE_NONE && + #endif (g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_EOT || g_current_vfo->channel.dtmf_ptt_id_tx_mode == PTT_ID_BOTH)) { // end-of-tx if (g_eeprom.config.setting.dtmf.side_tone) diff --git a/settings.c b/settings.c index 33fbe70..3e656e0 100644 --- a/settings.c +++ b/settings.c @@ -236,7 +236,7 @@ void SETTINGS_read_eeprom(void) 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 + #ifdef ENABLE_DTMF_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; #else g_eeprom.config.setting.dtmf.permit_remote_kill = 0; @@ -249,7 +249,7 @@ void SETTINGS_read_eeprom(void) strcpy(g_eeprom.config.setting.dtmf.ani_id, "123"); } - #ifdef ENABLE_KILL_REVIVE + #ifdef ENABLE_DTMF_KILL_REVIVE // 0EE8..0EEF if (!DTMF_ValidateCodes(g_eeprom.config.setting.dtmf.kill_code, sizeof(g_eeprom.config.setting.dtmf.kill_code))) { @@ -308,7 +308,7 @@ void SETTINGS_read_eeprom(void) // 0F40..0F47 g_eeprom.config.setting.freq_lock = (g_eeprom.config.setting.freq_lock < FREQ_LOCK_LAST) ? g_eeprom.config.setting.freq_lock : FREQ_LOCK_NORMAL; // g_eeprom.config.setting.enable_tx_350 = (g_eeprom.config.setting.enable_tx_350 < 2) ? g_eeprom.config.setting.enable_tx_350 : false; - #ifdef ENABLE_KILL_REVIVE + #ifdef ENABLE_DTMF_KILL_REVIVE g_eeprom.config.setting.radio_disabled = (g_eeprom.config.setting.radio_disabled < 2) ? g_eeprom.config.setting.radio_disabled : 0; #else g_eeprom.config.setting.radio_disabled = 0; @@ -332,7 +332,7 @@ void SETTINGS_read_eeprom(void) #else - #ifndef ENABLE_KILL_REVIVE + #ifndef ENABLE_DTMF_KILL_REVIVE memset(g_eeprom.config.setting.dtmf.kill_code, 0, sizeof(g_eeprom.config.setting.dtmf.kill_code)); memset(g_eeprom.config.setting.dtmf.revive_code, 0, sizeof(g_eeprom.config.setting.dtmf.revive_code)); @@ -344,7 +344,7 @@ void SETTINGS_read_eeprom(void) memset(&g_eeprom.config.setting.aes_key, 0xff, sizeof(g_eeprom.config.setting.aes_key)); #endif - #ifndef ENABLE_KILL_REVIVE + #ifndef ENABLE_DTMF_KILL_REVIVE g_eeprom.config.setting.radio_disabled = 0; #endif @@ -459,7 +459,7 @@ void SETTINGS_save(void) memset(&g_eeprom.config.setting.unused8, 0xff, sizeof(g_eeprom.config.setting.unused8)); #endif - #ifndef ENABLE_KILL_REVIVE + #ifndef ENABLE_DTMF_KILL_REVIVE g_eeprom.config.setting.radio_disabled = 0; #endif diff --git a/ui/main.c b/ui/main.c index 19456f2..fb65827 100644 --- a/ui/main.c +++ b/ui/main.c @@ -233,10 +233,15 @@ bool UI_DisplayRSSIBar(const int rssi, const unsigned int glitch, const unsigned return false; // display is in use #endif - if (g_current_function == FUNCTION_TRANSMIT || - g_current_display_screen != DISPLAY_MAIN || - g_dtmf_call_state != DTMF_CALL_STATE_NONE) - return false; // display is in use + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_current_function == FUNCTION_TRANSMIT || + g_current_display_screen != DISPLAY_MAIN) + { // display is in use + return false; + } // clear the line memset(g_frame_buffer[line], 0, LCD_WIDTH); @@ -419,8 +424,10 @@ void big_freq(const uint32_t frequency, const unsigned int x, const unsigned int g_reduced_service || g_current_display_screen != DISPLAY_MAIN || g_current_function == FUNCTION_POWER_SAVE || - g_dtmf_call_state != DTMF_CALL_STATE_NONE || - g_dtmf_input_mode || + g_dtmf_input_mode || + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif g_eeprom.config.setting.dual_watch != DUAL_WATCH_OFF) { // don't draw the panadapter return; @@ -517,19 +524,22 @@ void UI_DisplayCenterLine(void) { // const bool rx = (g_current_function == FUNCTION_RECEIVE && g_squelch_open) ? true : false; const bool rx = (g_current_function == FUNCTION_RECEIVE) ? true : false; - #ifdef ENABLE_SINGLE_VFO_CHAN const unsigned int line = (single_vfo >= 0 && !pan_enabled) ? 6 : 3; #else const unsigned int line = 3; #endif + char str[22]; (void)rx; (void)line; + (void)str; - if (g_center_line != CENTER_LINE_NONE || - g_current_display_screen != DISPLAY_MAIN || - g_dtmf_call_state != DTMF_CALL_STATE_NONE) + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_center_line != CENTER_LINE_NONE || g_current_display_screen != DISPLAY_MAIN) { return; } @@ -592,8 +602,14 @@ void UI_DisplayCenterLine(void) const unsigned int len = strlen(g_dtmf_rx_live); const unsigned int idx = (len > (17 - 5)) ? len - (17 - 5) : 0; // limit to last 'n' chars - if (g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE) + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_current_display_screen != DISPLAY_MAIN) + { return; + } g_center_line = CENTER_LINE_DTMF_DEC; @@ -607,8 +623,14 @@ void UI_DisplayCenterLine(void) const unsigned int len = g_dtmf_rx_index; const unsigned int idx = (len > (17 - 5)) ? len - (17 - 5) : 0; // limit to last 'n' chars - if (g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE) + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_current_display_screen != DISPLAY_MAIN) + { return; + } g_center_line = CENTER_LINE_DTMF_DEC; @@ -623,8 +645,14 @@ void UI_DisplayCenterLine(void) else if (g_charging_with_type_c) { // show the battery charge state - if (g_current_display_screen != DISPLAY_MAIN || g_dtmf_call_state != DTMF_CALL_STATE_NONE) + if ( + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif + g_current_display_screen != DISPLAY_MAIN) + { return; + } g_center_line = CENTER_LINE_CHARGE_DATA; @@ -676,7 +704,7 @@ const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALA unsigned int y = 0; unsigned int x = 0; - #ifdef ENABLE_KILL_REVIVE + #ifdef ENABLE_DTMF_KILL_REVIVE if (g_eeprom.config.setting.radio_disabled) { #ifdef ENABLE_SMALL_BOLD @@ -962,11 +990,13 @@ const char *state_list[] = {"", "BUSY", "BAT LOW", "TX DISABLE", "TIMEOUT", "ALA //x += 7 * 7; // DTMF decoding symbol - str[0] = 0; - if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable) - strcpy(str, "DTMF"); - UI_PrintStringSmall(str, LCD_WIDTH - (7 * 4), 0, y); - //x += 7 * 5; + #ifdef ENABLE_DTMF_CALLING + str[0] = 0; + if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable) + strcpy(str, "DTMF"); + UI_PrintStringSmall(str, LCD_WIDTH - (7 * 4), 0, y); + //x += 7 * 5; + #endif } UI_DisplayCenterLine(); @@ -1066,73 +1096,95 @@ void UI_DisplayMain(void) if (current_vfo_num != vfo_num) { - if (g_dtmf_call_state != DTMF_CALL_STATE_NONE || g_dtmf_is_tx || g_dtmf_input_mode) - { // show DTMF stuff - - char contact[17]; - - if (!g_dtmf_input_mode) - { - memset(contact, 0, sizeof(contact)); - if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) + #ifdef ENABLE_DTMF_CALLING + if (g_dtmf_call_state != DTMF_CALL_STATE_NONE || g_dtmf_is_tx || g_dtmf_input_mode) + { // show DTMF stuff + + char contact[17]; + + if (!g_dtmf_input_mode) { - strcpy(str, (g_dtmf_state == DTMF_STATE_CALL_OUT_RSP) ? "CALL OUT RESP" : "CALL OUT"); + memset(contact, 0, sizeof(contact)); + if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) + { + strcpy(str, (g_dtmf_state == DTMF_STATE_CALL_OUT_RSP) ? "CALL OUT RESP" : "CALL OUT"); + } + else + if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) + { + const bool found = DTMF_FindContact(g_dtmf_caller, contact); + contact[8] = 0; + sprintf(str, "FROM %s", found ? contact : g_dtmf_caller); + } + else + if (g_dtmf_is_tx) + { + strcpy(str, (g_dtmf_state == DTMF_STATE_TX_SUCC) ? "DTMF TX SUCC" : "DTMF TX"); + } } else - if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) { - const bool found = DTMF_FindContact(g_dtmf_caller, contact); - contact[8] = 0; - sprintf(str, "FROM %s", found ? contact : g_dtmf_caller); + sprintf(str, "DTMF entry"); + } + str[16] = 0; + UI_PrintString(str, 2, 0, 0 + (vfo_num * 3), 8); + + memset(str, 0, sizeof(str)); + if (!g_dtmf_input_mode) + { + memset(contact, 0, sizeof(contact)); + if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) + { + const bool found = DTMF_FindContact(g_dtmf_string, contact); + contact[15] = 0; + sprintf(str, ">%s", found ? contact : g_dtmf_string); + } + else + if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) + { + const bool found = DTMF_FindContact(g_dtmf_callee, contact); + contact[15] = 0; + sprintf(str, ">%s", found ? contact : g_dtmf_callee); + } + else + if (g_dtmf_is_tx) + { + sprintf(str, ">%s", g_dtmf_string); + } } else - if (g_dtmf_is_tx) { - strcpy(str, (g_dtmf_state == DTMF_STATE_TX_SUCC) ? "DTMF TX SUCC" : "DTMF TX"); + sprintf(str, ">%s", g_dtmf_input_box); } + str[16] = 0; + UI_PrintString(str, 2, 0, 2 + (vfo_num * 3), 8); + + pan_enabled = false; + + g_center_line = CENTER_LINE_IN_USE; + continue; } - else - { - sprintf(str, "DTMF entry"); + #else + if (g_dtmf_is_tx || g_dtmf_input_mode) + { // show DTMF stuff + + str[0] = 0; + if (g_dtmf_input_mode) + sprintf(str, "DTMF entry"); + UI_PrintString(str, 2, 0, 0 + (vfo_num * 3), 8); + + str[0] = 0; + if (g_dtmf_input_mode) + sprintf(str, ">%s", g_dtmf_input_box); + str[16] = 0; + UI_PrintString(str, 2, 0, 2 + (vfo_num * 3), 8); + + pan_enabled = false; + + g_center_line = CENTER_LINE_IN_USE; + continue; } - str[16] = 0; - UI_PrintString(str, 2, 0, 0 + (vfo_num * 3), 8); - - memset(str, 0, sizeof(str)); - if (!g_dtmf_input_mode) - { - memset(contact, 0, sizeof(contact)); - if (g_dtmf_call_state == DTMF_CALL_STATE_CALL_OUT) - { - const bool found = DTMF_FindContact(g_dtmf_string, contact); - contact[15] = 0; - sprintf(str, ">%s", found ? contact : g_dtmf_string); - } - else - if (g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED || g_dtmf_call_state == DTMF_CALL_STATE_RECEIVED_STAY) - { - const bool found = DTMF_FindContact(g_dtmf_callee, contact); - contact[15] = 0; - sprintf(str, ">%s", found ? contact : g_dtmf_callee); - } - else - if (g_dtmf_is_tx) - { - sprintf(str, ">%s", g_dtmf_string); - } - } - else - { - sprintf(str, ">%s", g_dtmf_input_box); - } - str[16] = 0; - UI_PrintString(str, 2, 0, 2 + (vfo_num * 3), 8); - - pan_enabled = false; - - g_center_line = CENTER_LINE_IN_USE; - continue; - } + #endif } if (single_vfo < 0) @@ -1513,13 +1565,15 @@ void UI_DisplayMain(void) UI_PrintStringSmall(str, 70, 0, line + 2); // show the DTMF decoding symbol - #ifdef ENABLE_KILL_REVIVE - if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled) - UI_PrintStringSmall("DTMF", 78, 0, line + 2); - #else - if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable) - UI_PrintStringSmall("DTMF", 78, 0, line + 2); - //UI_PrintStringSmallest("DTMF", 78, (line + 2) * 8, false, true); + #ifdef ENABLE_DTMF_CALLING + #ifdef ENABLE_DTMF_KILL_REVIVE + if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable || g_eeprom.config.setting.radio_disabled) + UI_PrintStringSmall("DTMF", 78, 0, line + 2); + #else + if (g_vfo_info[vfo_num].channel.dtmf_decoding_enable) + UI_PrintStringSmall("DTMF", 78, 0, line + 2); + //UI_PrintStringSmallest("DTMF", 78, (line + 2) * 8, false, true); + #endif #endif // show the audio scramble symbol diff --git a/ui/menu.c b/ui/menu.c index 86db280..fb1b739 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -109,7 +109,9 @@ const t_menu_item g_menu_list[] = #ifdef ENABLE_ALARM {"SOS AL", VOICE_ID_INVALID, MENU_ALARM_MODE }, // was "ALMODE" #endif +#ifdef ENABLE_DTMF_CALLING {"ANI ID", VOICE_ID_ANI_CODE, MENU_ANI_ID }, +#endif {"UpCODE", VOICE_ID_INVALID, MENU_UP_CODE }, {"DnCODE", VOICE_ID_INVALID, MENU_DN_CODE }, // was "DWCODE" #ifdef ENABLE_MDC1200 @@ -118,10 +120,12 @@ const t_menu_item g_menu_list[] = #endif {"PTT ID", VOICE_ID_INVALID, MENU_PTT_ID }, {"D ST", VOICE_ID_INVALID, MENU_DTMF_ST }, +#ifdef ENABLE_DTMF_CALLING {"D RSP", VOICE_ID_INVALID, MENU_DTMF_RSP }, {"D HOLD", VOICE_ID_INVALID, MENU_DTMF_HOLD }, {"D DCD", VOICE_ID_INVALID, MENU_DTMF_DCD }, {"D LIST", VOICE_ID_INVALID, MENU_DTMF_LIST }, +#endif #ifdef ENABLE_DTMF_LIVE_DECODER {"D LIVE", VOICE_ID_INVALID, MENU_DTMF_LIVE_DEC }, // live DTMF decoder #endif @@ -298,13 +302,15 @@ const char g_sub_menu_mem_disp[4][12] = }; #endif -const char g_sub_menu_dtmf_rsp[4][9] = -{ - "NONE", - "RING", - "REPLY", - "RNG RPLY" -}; +#ifdef ENABLE_DTMF_CALLING + const char g_sub_menu_dtmf_rsp[4][9] = + { + "NONE", + "RING", + "REPLY", + "RNG RPLY" + }; +#endif const char g_sub_menu_ptt_id[5][16] = { @@ -836,14 +842,26 @@ void UI_DisplayMenu(void) strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); break; - #ifdef ENABLE_DTMF_LIVE_DECODER + #if defined(ENABLE_DTMF_LIVE_DECODER) && defined(ENABLE_DTMF_CALLING) + case MENU_DTMF_DCD: case MENU_DTMF_LIVE_DEC: + strcpy(str, "DTMF\nDECODE\n"); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); + channel_setting = true; + break; + #elif defined(ENABLE_DTMF_CALLING) + case MENU_DTMF_DCD: + strcpy(str, "DTMF\nDECODE\n"); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); + channel_setting = true; + break; + #elif defined(ENABLE_DTMF_LIVE_DECODER) + case MENU_DTMF_LIVE_DEC: + strcpy(str, "DTMF\nDECODE\n"); + strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); + channel_setting = true; + break; #endif - case MENU_DTMF_DCD: - strcpy(str, "DTMF\nDECODE\n"); - strcat(str, g_sub_menu_off_on[g_sub_menu_selection]); - channel_setting = true; - break; case MENU_STE: strcpy(str, "SUB TAIL\nELIMIN\n"); @@ -1028,10 +1046,12 @@ void UI_DisplayMenu(void) break; #endif - case MENU_ANI_ID: - strcpy(str, "DTMF ID\n"); - strcat(str, g_eeprom.config.setting.dtmf.ani_id); - break; + #ifdef ENABLE_DTMF_CALLING + case MENU_ANI_ID: + strcpy(str, "DTMF ID\n"); + strcat(str, g_eeprom.config.setting.dtmf.ani_id); + break; + #endif case MENU_UP_CODE: strcpy(str, "DTMF BOT\n"); @@ -1045,39 +1065,66 @@ void UI_DisplayMenu(void) channel_setting = true; break; - case MENU_DTMF_RSP: - strcpy(str, "DTMF\nRESP\n"); - strcat(str, g_sub_menu_dtmf_rsp[g_sub_menu_selection]); + case MENU_PTT_ID: + strcpy(str, g_sub_menu_ptt_id[g_sub_menu_selection]); channel_setting = true; break; - case MENU_DTMF_HOLD: - // only allow 5, 10, 20, 30, 40, 50 or "STAY ON SCREEN" (60) - switch (g_sub_menu_selection) + #ifdef ENABLE_DTMF_CALLING + case MENU_DTMF_RSP: + strcpy(str, "DTMF\nRESP\n"); + strcat(str, g_sub_menu_dtmf_rsp[g_sub_menu_selection]); + channel_setting = true; + break; + + case MENU_DTMF_HOLD: + // only allow 5, 10, 20, 30, 40, 50 or "STAY ON SCREEN" (60) + switch (g_sub_menu_selection) + { + case 4: g_sub_menu_selection = 60; break; + case 6: g_sub_menu_selection = 10; break; + case 9: g_sub_menu_selection = 5; break; + case 11: g_sub_menu_selection = 20; break; + case 19: g_sub_menu_selection = 10; break; + case 21: g_sub_menu_selection = 30; break; + case 29: g_sub_menu_selection = 20; break; + case 31: g_sub_menu_selection = 40; break; + case 39: g_sub_menu_selection = 30; break; + case 41: g_sub_menu_selection = 50; break; + case 49: g_sub_menu_selection = 40; break; + case 51: g_sub_menu_selection = 60; break; + case 59: g_sub_menu_selection = 50; break; + case 61: g_sub_menu_selection = 5; break; + } + + strcpy(str, "DTMF MSG\n"); + if (g_sub_menu_selection < DTMF_HOLD_MAX) + sprintf(str + strlen(str), "%d sec", g_sub_menu_selection); + else + strcat(str, "STAY ON\nSCRN"); // 60 + + break; + + case MENU_DTMF_LIST: { - case 4: g_sub_menu_selection = 60; break; - case 6: g_sub_menu_selection = 10; break; - case 9: g_sub_menu_selection = 5; break; - case 11: g_sub_menu_selection = 20; break; - case 19: g_sub_menu_selection = 10; break; - case 21: g_sub_menu_selection = 30; break; - case 29: g_sub_menu_selection = 20; break; - case 31: g_sub_menu_selection = 40; break; - case 39: g_sub_menu_selection = 30; break; - case 41: g_sub_menu_selection = 50; break; - case 49: g_sub_menu_selection = 40; break; - case 51: g_sub_menu_selection = 60; break; - case 59: g_sub_menu_selection = 50; break; - case 61: g_sub_menu_selection = 5; break; + char Contact[17]; + g_dtmf_is_contact_valid = DTMF_GetContact((int)g_sub_menu_selection - 1, Contact); + strcpy(str, "DTMF\n"); + if (!g_dtmf_is_contact_valid) + { + strcat(str, "NULL"); + } + else + { + memcpy(str + strlen(str), Contact, 8); + Contact[11] = 0; + memcpy(&g_dtmf_id, Contact + 8, sizeof(g_dtmf_id)); + sprintf(str + strlen(str), "\nID:%s", Contact + 8); + } + break; } - strcpy(str, "DTMF MSG\n"); - if (g_sub_menu_selection < DTMF_HOLD_MAX) - sprintf(str + strlen(str), "%d sec", g_sub_menu_selection); - else - strcat(str, "STAY ON\nSCRN"); // 60 - - break; + #endif #ifdef ENABLE_DTMF_TIMING_SETTINGS case MENU_DTMF_PRE: @@ -1120,34 +1167,10 @@ void UI_DisplayMenu(void) break; #endif - case MENU_PTT_ID: - strcpy(str, g_sub_menu_ptt_id[g_sub_menu_selection]); - channel_setting = true; - break; - case MENU_BAT_TXT: strcpy(str, g_sub_menu_bat_text[g_sub_menu_selection]); break; - case MENU_DTMF_LIST: - { - char Contact[17]; - g_dtmf_is_contact_valid = DTMF_GetContact((int)g_sub_menu_selection - 1, Contact); - strcpy(str, "DTMF\n"); - if (!g_dtmf_is_contact_valid) - { - strcat(str, "NULL"); - } - else - { - memcpy(str + strlen(str), Contact, 8); - Contact[11] = 0; - memcpy(&g_dtmf_id, Contact + 8, sizeof(g_dtmf_id)); - sprintf(str + strlen(str), "\nID:%s", Contact + 8); - } - break; - } - case MENU_PON_MSG: strcpy(str, g_sub_menu_pwr_on_msg[g_sub_menu_selection]); break; @@ -1421,17 +1444,23 @@ void UI_DisplayMenu(void) if (strlen(g_eeprom.config.setting.dtmf.key_down_code) > 8) UI_PrintString(g_eeprom.config.setting.dtmf.key_down_code + 8, sub_menu_x1, sub_menu_x2, 4, 8); - if (g_menu_cursor == MENU_RX_CTCSS || + if ( + #ifdef ENABLE_DTMF_CALLING + g_menu_cursor == MENU_DTMF_LIST || + #endif + g_menu_cursor == MENU_RX_CTCSS || g_menu_cursor == MENU_TX_CTCSS || g_menu_cursor == MENU_RX_CDCSS || - g_menu_cursor == MENU_TX_CDCSS || - g_menu_cursor == MENU_DTMF_LIST) + g_menu_cursor == MENU_TX_CDCSS) { if (g_in_sub_menu) { - unsigned int Offset; + #ifdef ENABLE_DTMF_CALLING + const unsigned int Offset = (g_menu_cursor == MENU_DTMF_LIST) ? 2 : 3; + #else + const unsigned int Offset = 3; + #endif NUMBER_ToDigits(g_sub_menu_selection, str); - Offset = (g_menu_cursor == MENU_DTMF_LIST) ? 2 : 3; UI_Displaysmall_digits(Offset, str + (8 - Offset), 105, 0, false); } } diff --git a/ui/menu.h b/ui/menu.h index b72ab5e..50f52d1 100644 --- a/ui/menu.h +++ b/ui/menu.h @@ -95,14 +95,18 @@ enum MENU_S_LIST, MENU_SLIST1, MENU_SLIST2, +#ifdef ENABLE_DTMF_CALLING MENU_ANI_ID, +#endif MENU_UP_CODE, MENU_DN_CODE, MENU_DTMF_ST, +#ifdef ENABLE_DTMF_CALLING MENU_DTMF_HOLD, MENU_DTMF_LIST, MENU_DTMF_RSP, MENU_DTMF_DCD, +#endif #ifdef ENABLE_DTMF_LIVE_DECODER MENU_DTMF_LIVE_DEC, #endif @@ -200,7 +204,9 @@ extern const char g_sub_menu_mem_disp[4][12]; #ifdef ENABLE_ALARM extern const char g_sub_menu_alarm_mode[2][5]; #endif -extern const char g_sub_menu_dtmf_rsp[4][9]; +#ifdef ENABLE_DTMF_CALLING + extern const char g_sub_menu_dtmf_rsp[4][9]; +#endif extern const char g_sub_menu_ptt_id[5][16]; #ifdef ENABLE_MDC1200 extern const char g_sub_menu_mdc1200_mode[4][5]; diff --git a/ui/status.c b/ui/status.c index 65f2db0..bfa5ccf 100644 --- a/ui/status.c +++ b/ui/status.c @@ -80,7 +80,7 @@ void UI_DisplayStatus(const bool test_display) } #endif - #ifdef ENABLE_KILL_REVIVE + #ifdef ENABLE_DTMF_KILL_REVIVE if (g_eeprom.config.setting.radio_disabled) { memset(line + x, 0xFF, 10); @@ -143,7 +143,9 @@ void UI_DisplayStatus(const bool test_display) #endif if (g_dual_watch_tick_10ms > dual_watch_delay_toggle_10ms || - g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #ifdef ENABLE_DTMF_CALLING + g_dtmf_call_state != DTMF_CALL_STATE_NONE || + #endif g_scan_state_dir != SCAN_STATE_DIR_OFF || g_css_scan_mode != CSS_SCAN_MODE_OFF || (g_current_function != FUNCTION_FOREGROUND && g_current_function != FUNCTION_POWER_SAVE) ||