diff --git a/radio/src/audio_arm.cpp b/radio/src/audio_arm.cpp index c20dd154c..43f1c91cb 100644 --- a/radio/src/audio_arm.cpp +++ b/radio/src/audio_arm.cpp @@ -217,15 +217,6 @@ uint64_t sdAvailableLogicalSwitchAudioFiles = 0; #define MASK_SWITCH_AUDIO_FILE(index) ((uint64_t)1 << index) #define MASK_LOGICAL_SWITCH_AUDIO_FILE(index, event) ((uint64_t)1 << (2*index+event)) -bool isFileAvailable(const char * filename) -{ - FILINFO info; - TCHAR lfn[_MAX_LFN + 1]; - info.lfname = lfn; - info.lfsize = sizeof(lfn); - return f_stat(filename, &info) == FR_OK; -} - char * getAudioPath(char * path) { strcpy(path, SOUNDS_PATH "/"); diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 0e12c8397..401bfea50 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -407,11 +407,30 @@ void checkModelIdUnique(uint8_t id) } #endif +#if defined(SDCARD) +bool isFileAvailable(const char * filename) +{ + FILINFO info; + TCHAR lfn[_MAX_LFN + 1]; + info.lfname = lfn; + info.lfsize = sizeof(lfn); + return f_stat(filename, &info) == FR_OK; +} +#endif + void modelDefault(uint8_t id) { memset(&g_model, 0, sizeof(g_model)); + applyDefaultTemplate(); +#if defined(LUA) + if (isFileAvailable(TEMPLATES_PATH "/" WIZARD_NAME)) { + f_chdir(TEMPLATES_PATH); + luaExec(WIZARD_NAME); + } +#endif + #if defined(PXX) && defined(CPUARM) modelHeaders[id].modelId = g_model.header.modelId = id+1; checkModelIdUnique(id); diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 1424d6d5e..4940140fa 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -49,6 +49,9 @@ #define SCRIPTS_PATH ROOT_PATH "SCRIPTS" #define FIRMWARES_PATH ROOT_PATH "FIRMWARES" #define EEPROMS_PATH ROOT_PATH "EEPROMS" +#define TEMPLATES_PATH ROOT_PATH "TEMPLATES" + +#define WIZARD_NAME "wizard.lua" #define MODELS_EXT ".bin" #define LOGS_EXT ".csv"