From d0d603901ed1cfd36cfda6464ba08ab55ec2da68 Mon Sep 17 00:00:00 2001 From: Silvano Seva Date: Thu, 18 Aug 2022 08:34:01 +0200 Subject: [PATCH] Implemented storage of voice prompts data inside the binary executable image. Voice prompts data is placed in .rodata section at link time --- meson.build | 6 +- openrtx/src/core/voicePromptData.S | 9 ++ openrtx/src/core/voicePrompts.c | 133 ++++++++++++++++++++--------- openrtx/src/rtx/OpMode_M17.cpp | 1 + voiceprompts.vpc | Bin 0 -> 63648 bytes 5 files changed, 106 insertions(+), 43 deletions(-) create mode 100644 openrtx/src/core/voicePromptData.S create mode 100644 voiceprompts.vpc diff --git a/meson.build b/meson.build index d957f07a..79cb2cfa 100644 --- a/meson.build +++ b/meson.build @@ -53,6 +53,7 @@ openrtx_src = ['openrtx/src/core/state.c', 'openrtx/src/core/memory_profiling.cpp', 'openrtx/src/core/voicePrompts.c', 'openrtx/src/core/voicePromptUtils.c', + 'openrtx/src/core/voicePromptData.S', 'openrtx/src/ui/ui.c', 'openrtx/src/ui/ui_strings.c', 'openrtx/src/ui/ui_main.c', @@ -275,8 +276,9 @@ linux_src = src + linux_platform_src # MDx family display emulation linux_def = def + {'SCREEN_WIDTH': '160', 'SCREEN_HEIGHT': '128', 'PIX_FMT_RGB565': ''} -linux_inc = inc + ['platform/targets/linux', - 'platform/targets/linux/emulator'] +linux_def += {'VP_USE_FILESYSTEM':''} +linux_inc = inc + ['platform/targets/linux', + 'platform/targets/linux/emulator'] if not meson.is_cross_build() sdl_dep = dependency('SDL2') diff --git a/openrtx/src/core/voicePromptData.S b/openrtx/src/core/voicePromptData.S new file mode 100644 index 00000000..cd03e2a6 --- /dev/null +++ b/openrtx/src/core/voicePromptData.S @@ -0,0 +1,9 @@ +.section .note.GNU-stack,"" +.section .rodata + +.global _voiceprompts_start +.global _voiceprompts_end + +_voiceprompts_start: + .incbin "../voiceprompts.vpc" +_voiceprompts_end: diff --git a/openrtx/src/core/voicePrompts.c b/openrtx/src/core/voicePrompts.c index c6e54dbe..8d976de7 100644 --- a/openrtx/src/core/voicePrompts.c +++ b/openrtx/src/core/voicePrompts.c @@ -35,8 +35,6 @@ static const uint32_t VOICE_PROMPTS_DATA_VERSION = 0x1000; // v1000 OpenRTX #define VOICE_PROMPTS_TOC_SIZE 350 #define CODEC2_HEADER_SIZE 7 #define VP_SEQUENCE_BUF_SIZE 128 -#define CODEC2_DATA_BUF_SIZE 2048 - typedef struct { @@ -57,12 +55,12 @@ typedef struct uint16_t buffer[VP_SEQUENCE_BUF_SIZE]; // Buffer of individual prompt indices. uint16_t pos; // Index into above buffer. uint16_t length; // Number of entries in above buffer. + uint32_t c2DataStart; uint32_t c2DataIndex; // Index into current codec2 data uint32_t c2DataLength; // Length of codec2 data for current prompt. } vpSequence_t; - static const userDictEntry_t userDictionary[] = { {"hotspot", PROMPT_CUSTOM1}, // Hotspot @@ -82,16 +80,57 @@ static vpSequence_t vpCurrentSequence = { .pos = 0, .length = 0, + .c2DataStart = 0, .c2DataIndex = 0, .c2DataLength = 0 }; -static uint8_t codec2Data[CODEC2_DATA_BUF_SIZE]; static uint32_t tableOfContents[VOICE_PROMPTS_TOC_SIZE]; -static uint32_t vpDataOffset = 0; -static bool vpDataLoaded = false; -static bool voicePromptActive = false; -static FILE *vpFile = NULL; +static bool vpDataLoaded = false; +static bool voicePromptActive = false; + +#ifdef VP_USE_FILESYSTEM +static FILE *vpFile = NULL; +#else +extern unsigned char _vpdata_start asm("_voiceprompts_start"); +extern unsigned char _vpdata_end asm("_voiceprompts_end"); +unsigned char *vpData = &_vpdata_start; +#endif + +/** + * \internal + * Load voice prompts header. + * + * @param header: pointer toa vpHeader_t data structure. + */ +static void loadVpHeader(vpHeader_t *header) +{ + #ifdef VP_USE_FILESYSTEM + fseek(vpFile, 0L, SEEK_SET); + fread(header, sizeof(vpHeader_t), 1, vpFile); + #else + memcpy(header, vpData, sizeof(vpHeader_t)); + #endif +} + +/** + * \internal + * Load voice prompts' table of contents. + */ +static void loadVpToC() +{ + #ifdef VP_USE_FILESYSTEM + fread(&tableOfContents, sizeof(tableOfContents), 1, vpFile); + size_t vpDataOffset = ftell(vpFile); + + if(vpDataOffset == (sizeof(vpHeader_t) + sizeof(tableOfContents))) + vpDataLoaded = true; + #else + uint8_t *tocPtr = vpData + sizeof(vpHeader_t); + memcpy(&tableOfContents, tocPtr, sizeof(tableOfContents)); + vpDataLoaded = true; + #endif +} /** * \internal @@ -100,27 +139,35 @@ static FILE *vpFile = NULL; * @param offset: offset relative to the start of the voice prompt data. * @param length: data length in bytes. */ -static void loadCodec2Data(const int offset, const int length) +static void fetchCodec2Data(uint8_t *data, const size_t offset) { - const uint32_t minOffset = sizeof(vpHeader_t) + sizeof(tableOfContents); - - if ((vpFile == NULL) || (vpDataOffset < minOffset)) + if (vpDataLoaded == false) return; - if ((offset < 0) || (length > CODEC2_DATA_BUF_SIZE)) + #ifdef VP_USE_FILESYSTEM + if (vpFile == NULL) return; - // Skip codec2 header - fseek(vpFile, vpDataOffset + offset + CODEC2_HEADER_SIZE, SEEK_SET); - fread((void*)&codec2Data, length, 1, vpFile); + size_t start = sizeof(vpHeader_t) + + sizeof(tableOfContents) + + CODEC2_HEADER_SIZE; - // zero buffer from length to the next multiple of 8 to avoid garbage - // being played back, since codec2 frames are pushed in lots of 8 bytes. - if ((length % 8) != 0) + fseek(vpFile, start + offset, SEEK_SET); + fread(data, 8, 1, vpFile); + #else + uint8_t *dataPtr = vpData + + sizeof(vpHeader_t) + + sizeof(tableOfContents) + + CODEC2_HEADER_SIZE; + + if((dataPtr + 8) >= &_vpdata_end) { - int bytesToZero = length % 8; - memset(codec2Data + length, 0, bytesToZero); + memset(data, 0x00, 8); + return; } + + memcpy(data, dataPtr + offset, 8); + #endif } /** @@ -144,7 +191,7 @@ static inline bool checkVpHeader(const vpHeader_t* header) * @param advanceBy: final offset with respect of dictionary beginning. * @return index of user dictionary's voice prompt. */ -static uint16_t UserDictLookup(const char* ptr, int* advanceBy) +static uint16_t userDictLookup(const char* ptr, int* advanceBy) { if ((ptr == NULL) || (*ptr == '\0')) return 0; @@ -196,27 +243,24 @@ static bool GetSymbolVPIfItShouldBeAnnounced(char symbol, void vp_init() { - vpDataOffset = 0; - + #ifdef VP_USE_FILESYSTEM if(vpFile == NULL) vpFile = fopen("voiceprompts.vpc", "r"); if(vpFile == NULL) return; + #else + if(&_vpdata_start == &_vpdata_end) + return; + #endif // Read header vpHeader_t header; - fseek(vpFile, 0L, SEEK_SET); - fread((void*)&header, sizeof(header), 1, vpFile); + loadVpHeader(&header); if(checkVpHeader(&header) == true) { - // Read in the TOC. - fread((void*)&tableOfContents, sizeof(tableOfContents), 1, vpFile); - vpDataOffset = ftell(vpFile); - - if(vpDataOffset == (sizeof(vpHeader_t) + sizeof(tableOfContents))) - vpDataLoaded = true; + loadVpToC(); } if (vpDataLoaded) @@ -233,7 +277,7 @@ void vp_init() state.settings.vpLevel = vpBeep; } - // TODO: Move this somewhere else for compatibility with M17 + // Initialize codec2 module codec_init(); } @@ -248,11 +292,16 @@ void vp_terminate() voicePromptActive = false; } + codec_terminate(); + + #ifdef VP_USE_FILESYSTEM fclose(vpFile); + #endif } void vp_clearCurrPrompt() { + voicePromptActive = false; vpCurrentSequence.length = 0; vpCurrentSequence.pos = 0; vpCurrentSequence.c2DataIndex = 0; @@ -288,7 +337,7 @@ void vp_queueString(const char* string, vpFlags_t flags) while (*string != '\0') { int advanceBy = 0; - voicePrompt_t vp = UserDictLookup(string, &advanceBy); + voicePrompt_t vp = userDictLookup(string, &advanceBy); if (vp != 0) { @@ -397,7 +446,7 @@ void vp_play() void vp_tick() { - if (!voicePromptActive) + if (voicePromptActive == false) return; while(vpCurrentSequence.pos < vpCurrentSequence.length) @@ -408,19 +457,21 @@ void vp_tick() // obtain the data for the prompt. int promptNumber = vpCurrentSequence.buffer[vpCurrentSequence.pos]; + vpCurrentSequence.c2DataIndex = 0; + vpCurrentSequence.c2DataStart = tableOfContents[promptNumber]; vpCurrentSequence.c2DataLength = tableOfContents[promptNumber + 1] - tableOfContents[promptNumber]; - - loadCodec2Data(tableOfContents[promptNumber], - vpCurrentSequence.c2DataLength); - - vpCurrentSequence.c2DataIndex = 0; } while (vpCurrentSequence.c2DataIndex < vpCurrentSequence.c2DataLength) { // push the codec2 data in lots of 8 byte frames. - if (!codec_pushFrame(codec2Data+vpCurrentSequence.c2DataIndex, false)) + uint8_t c2Frame[8] = {0}; + + fetchCodec2Data(c2Frame, vpCurrentSequence.c2DataStart + + vpCurrentSequence.c2DataIndex); + + if (!codec_pushFrame(c2Frame, false)) return; vpCurrentSequence.c2DataIndex += 8; diff --git a/openrtx/src/rtx/OpMode_M17.cpp b/openrtx/src/rtx/OpMode_M17.cpp index 119ba47d..bfeca4ab 100644 --- a/openrtx/src/rtx/OpMode_M17.cpp +++ b/openrtx/src/rtx/OpMode_M17.cpp @@ -55,6 +55,7 @@ void OpMode_M17::disable() startTx = false; platform_ledOff(GREEN); platform_ledOff(RED); + codec_stop(); codec_terminate(); audio_disableAmp(); audio_disableMic(); diff --git a/voiceprompts.vpc b/voiceprompts.vpc new file mode 100644 index 0000000000000000000000000000000000000000..5e8ed61766bbf30e575300c362718d4426b0834a GIT binary patch literal 63648 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 literal 0 HcmV?d00001