From 7cc287643ed3ef9f7fe41717f8b7ffb29cd46667 Mon Sep 17 00:00:00 2001 From: vk7js <58905135+vk7js@users.noreply.github.com> Date: Thu, 22 Sep 2022 11:24:26 +1000 Subject: [PATCH] Added Broadcast to string table for use with voice prompts. Cleaned up hash key announcement. --- openrtx/include/core/voicePromptUtils.h | 2 +- openrtx/include/ui/EnglishStrings.h | 3 ++- openrtx/include/ui/ui_strings.h | 1 + openrtx/src/core/voicePromptUtils.c | 33 ++++++++++++++---------- openrtx/src/ui/ui.c | 14 +++++----- openrtx/src/ui/ui_main.c | 4 +-- voiceprompts.vpc | Bin 60925 -> 61684 bytes 7 files changed, 31 insertions(+), 26 deletions(-) diff --git a/openrtx/include/core/voicePromptUtils.h b/openrtx/include/core/voicePromptUtils.h index 9d6999b2..413ab933 100644 --- a/openrtx/include/core/voicePromptUtils.h +++ b/openrtx/include/core/voicePromptUtils.h @@ -149,7 +149,7 @@ void vp_announceBank(const uint16_t bank, const vpQueueFlags_t flags); /** * */ -void vp_announceM17Info(const channel_t* channel, const vpQueueFlags_t flags); +void vp_announceM17Info(const channel_t* channel, bool isEditing, const vpQueueFlags_t flags); /** * diff --git a/openrtx/include/ui/EnglishStrings.h b/openrtx/include/ui/EnglishStrings.h index 180fef79..227e987d 100644 --- a/openrtx/include/ui/EnglishStrings.h +++ b/openrtx/include/ui/EnglishStrings.h @@ -89,6 +89,7 @@ const stringsTable_t englishStrings = .forEmergencyUse = "For emergency use", .pressAnyButton = "press any button.", .accessibility = "Accessibility", - .usedHeap="Used heap" + .usedHeap = "Used heap", + .broadcast = "Broadcast" }; #endif // ENGLISHSTRINGS_H diff --git a/openrtx/include/ui/ui_strings.h b/openrtx/include/ui/ui_strings.h index 0bf88809..11fc99e7 100644 --- a/openrtx/include/ui/ui_strings.h +++ b/openrtx/include/ui/ui_strings.h @@ -95,6 +95,7 @@ typedef struct const char* pressAnyButton; const char* accessibility; const char* usedHeap; + const char* broadcast; } stringsTable_t; diff --git a/openrtx/src/core/voicePromptUtils.c b/openrtx/src/core/voicePromptUtils.c index b7aa8000..e731883e 100644 --- a/openrtx/src/core/voicePromptUtils.c +++ b/openrtx/src/core/voicePromptUtils.c @@ -250,7 +250,7 @@ void vp_announceChannelSummary(const channel_t* channel, } else if (channel->mode == OPMODE_M17) { - vp_announceM17Info(channel, localFlags); + vp_announceM17Info(channel, false, localFlags); } else if (channel->mode == OPMODE_DMR) { @@ -502,27 +502,32 @@ void vp_announceBank(const uint16_t bank, const vpQueueFlags_t flags) playIfNeeded(flags); } -void vp_announceM17Info(const channel_t* channel, const vpQueueFlags_t flags) +void vp_announceM17Info(const channel_t* channel, bool isEditing, const vpQueueFlags_t flags) { - if (channel == NULL) - return; - clearCurrPromptIfNeeded(flags); - - if (state.m17_data.dst_addr[0] != '\0') + + if (flags & vpqIncludeDescriptions) + { + vp_queuePrompt(PROMPT_DEST_ID); + } + + if (isEditing) + { + vp_queuePrompt(PROMPT_EDIT); + } + else if (state.m17_data.dst_addr[0] != '\0') { - if (flags & vpqIncludeDescriptions) - { - vp_queuePrompt(PROMPT_DEST_ID); - } - vp_queueString(state.m17_data.dst_addr, vpAnnounceCommonSymbols); } - else if (channel->m17.contact_index != 0) + else if ((channel != NULL) && (channel->m17.contact_index != 0)) { vp_announceContactWithIndex(channel->m17.contact_index, flags); } - + else + { + vp_queueStringTableEntry(¤tLanguage->broadcast); + } + playIfNeeded(flags); } diff --git a/openrtx/src/ui/ui.c b/openrtx/src/ui/ui.c index d0264026..94e4dac8 100644 --- a/openrtx/src/ui/ui.c +++ b/openrtx/src/ui/ui.c @@ -1280,20 +1280,19 @@ void ui_updateFSM(bool *sync_rtx) _ui_textInputConfirm(ui_state.new_callsign); // Save selected dst ID and disable input mode strncpy(state.m17_data.dst_addr, ui_state.new_callsign, 10); - vp_announceBuffer(¤tLanguage->callsign, - false, true, - state.m17_data.dst_addr); ui_state.edit_mode = false; *sync_rtx = true; + vp_announceM17Info(NULL, ui_state.edit_mode, + queueFlags); } else if(msg.keys & KEY_HASH) { // Save selected dst ID and disable input mode strncpy(state.m17_data.dst_addr, "", 1); - vp_announceBuffer(¤tLanguage->callsign, - false, true, "-"); ui_state.edit_mode = false; *sync_rtx = true; + vp_announceM17Info(NULL, ui_state.edit_mode, + queueFlags); } else if(msg.keys & KEY_ESC) // Discard selected dst ID and disable input mode @@ -1338,9 +1337,8 @@ void ui_updateFSM(bool *sync_rtx) ui_state.edit_mode = true; // Reset text input variables _ui_textInputReset(ui_state.new_callsign); - vp_announceBuffer(¤tLanguage->callsign, - true, true, - ""); + vp_announceM17Info(NULL, ui_state.edit_mode, + queueFlags); } else if(msg.keys & KEY_UP || msg.keys & KNOB_RIGHT) { diff --git a/openrtx/src/ui/ui_main.c b/openrtx/src/ui/ui_main.c index f281e42f..164fe27b 100644 --- a/openrtx/src/ui/ui_main.c +++ b/openrtx/src/ui/ui_main.c @@ -127,12 +127,12 @@ void _ui_drawModeInfo(ui_state_t* ui_state) case OPMODE_M17: { // Print M17 Destination ID on line 3 of 3 - char *dst = NULL; + const char *dst = NULL; if(ui_state->edit_mode) dst = ui_state->new_callsign; else dst = (!strnlen(cfg.destination_address, 10)) ? - "Broadcast" : cfg.destination_address; + currentLanguage->broadcast : cfg.destination_address; gfx_print(layout.line2_pos, layout.line2_font, TEXT_ALIGN_CENTER, color_white, "#%s", dst); break; diff --git a/voiceprompts.vpc b/voiceprompts.vpc index 1d7b290b1586a2625a501fc544c562748ee40331..9a2e72b8b65896096dea1ca6ee2dd1f0c4e027f1 100644 GIT binary patch delta 4412 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 delta 3669 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