diff --git a/radio/src/audio.cpp b/radio/src/audio.cpp index 729ace1c1..d2d4aa55f 100644 --- a/radio/src/audio.cpp +++ b/radio/src/audio.cpp @@ -302,14 +302,19 @@ void referenceSystemAudioFiles() const char * const suffixes[] = { "-off", "-on" }; -char * getModelAudioPath(char * path) +char *getModelAudioPath(char *path) { strcpy(path, SOUNDS_PATH "/"); - strncpy(path+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); - char * result = strcat_currentmodelname(path+sizeof(SOUNDS_PATH), 0); - *result++ = '/'; - *result = '\0'; - return result; + strncpy(path + SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); + char *buf = strcat_currentmodelname(path + sizeof(SOUNDS_PATH), ' '); + + if (!isFileAvailable(path)) { + buf = strcat_currentmodelname(path + sizeof(SOUNDS_PATH), 0); + } + + *buf++ = '/'; + *buf = '\0'; + return buf; } void getFlightmodeAudioFile(char * filename, int index, unsigned int event) @@ -478,8 +483,8 @@ void playModelEvent(uint8_t category, uint8_t index, event_t event) void playModelName() { - char filename[AUDIO_FILENAME_MAXLEN+1]; - char * str = getModelAudioPath(filename); + char filename[AUDIO_FILENAME_MAXLEN + 1]; + char *str = getModelAudioPath(filename); strcpy(str, "name.wav"); audioQueue.playFile(filename); } diff --git a/radio/src/gui/colorlcd/model_select.cpp b/radio/src/gui/colorlcd/model_select.cpp index 1566ddabb..78daedb6d 100644 --- a/radio/src/gui/colorlcd/model_select.cpp +++ b/radio/src/gui/colorlcd/model_select.cpp @@ -539,13 +539,12 @@ class ModelCategoryPageBody : public FormWindow memcpy(g_eeGeneral.currModelFilename, btn->modelFilename(), LEN_MODEL_FILENAME); - loadModel(g_eeGeneral.currModelFilename, false); + loadModel(g_eeGeneral.currModelFilename, true); storageDirty(EE_GENERAL); storageCheck(true); modelslist.setCurrentModel(btn->getModelCell()); modelslist.setCurrentCategory(category); - checkAll(); // Exit to main view auto w = Layer::back();