From e3df420f8e26d0099d000082f70bbfd9ec241291 Mon Sep 17 00:00:00 2001 From: bsongis Date: Fri, 13 Jun 2014 14:37:57 +0200 Subject: [PATCH] Lua scripts directories changed. We will now have /SCRIPTS/WIZARD/ /SCRIPTS/TEMPLATES/ /SCRIPTS/MIXES/ /SCRIPTS/FUNCTIONS/ --- radio/src/gui/menu_model.cpp | 26 ++++++++++++++++---------- radio/src/lua.cpp | 16 ++++++++-------- radio/src/opentx.cpp | 4 ++-- radio/src/sdcard.h | 8 +++++--- 4 files changed, 31 insertions(+), 23 deletions(-) diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index 454fcb4f1..ec8b226c4 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -4832,11 +4832,14 @@ void onCustomFunctionsFileSelectionMenu(const char *result) uint8_t func = CFN_FUNC(cf); if (result == STR_UPDATE_LIST) { - char directory[] = SOUNDS_PATH; - if (func == FUNC_PLAY_SCRIPT) - strcpy(directory, SCRIPTS_PATH); - else + char directory[256]; + if (func == FUNC_PLAY_SCRIPT) { + strcpy(directory, SCRIPTS_FUNCS_PATH); + } + else { + strcpy(directory, SOUNDS_PATH); strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); + } if (!listSdFiles(directory, func==FUNC_PLAY_SCRIPT ? SCRIPTS_EXT : SOUNDS_EXT, sizeof(cf->play.name), NULL)) { POPUP_WARNING(func==FUNC_PLAY_SCRIPT ? STR_NO_SCRIPTS_ON_SD : STR_NO_SOUNDS_ON_SD); s_menu_flags = 0; @@ -5037,11 +5040,14 @@ void menuModelCustomFunctions(uint8_t event) lcd_putsiAtt(x, y, STR_VCSWFUNC, 0, attr); if (active && event==EVT_KEY_BREAK(KEY_ENTER)) { s_editMode = 0; - char directory[] = SOUNDS_PATH; - if (func==FUNC_PLAY_SCRIPT) - strcpy(directory, SCRIPTS_PATH); - else + char directory[256]; + if (func==FUNC_PLAY_SCRIPT) { + strcpy(directory, SCRIPTS_FUNCS_PATH); + } + else { + strcpy(directory, SOUNDS_PATH); strncpy(directory+SOUNDS_PATH_LNG_OFS, currentLanguagePack->id, 2); + } if (listSdFiles(directory, func==FUNC_PLAY_SCRIPT ? SCRIPTS_EXT : SOUNDS_EXT, sizeof(sd->play.name), sd->play.name)) { menuHandler = onCustomFunctionsFileSelectionMenu; } @@ -5214,7 +5220,7 @@ void onModelCustomScriptMenu(const char *result) ScriptData &sd = g_model.scriptsData[s_currIdx]; if (result == STR_UPDATE_LIST) { - if (!listSdFiles(SCRIPTS_PATH, SCRIPTS_EXT, sizeof(sd.file), NULL)) { + if (!listSdFiles(SCRIPTS_MIXES_PATH, SCRIPTS_EXT, sizeof(sd.file), NULL)) { POPUP_WARNING(STR_NO_SCRIPTS_ON_SD); s_menu_flags = 0; } @@ -5262,7 +5268,7 @@ void menuModelCustomScriptOne(uint8_t event) lcd_putsiAtt(SCRIPT_ONE_2ND_COLUMN_POS, y, STR_VCSWFUNC, 0, attr); if (attr && event==EVT_KEY_BREAK(KEY_ENTER) && !READ_ONLY()) { s_editMode = 0; - if (listSdFiles(SCRIPTS_PATH, SCRIPTS_EXT, sizeof(sd.file), sd.file, LIST_NONE_SD_FILE)) { + if (listSdFiles(SCRIPTS_MIXES_PATH, SCRIPTS_EXT, sizeof(sd.file), sd.file, LIST_NONE_SD_FILE)) { menuHandler = onModelCustomScriptMenu; } else { diff --git a/radio/src/lua.cpp b/radio/src/lua.cpp index dec138707..c519e6702 100644 --- a/radio/src/lua.cpp +++ b/radio/src/lua.cpp @@ -1179,10 +1179,10 @@ void luaLoadModelScript(uint8_t index) memset(&sid, 0, sizeof(sid)); sid.reference = SCRIPT_MIX_FIRST+index; sid.state = SCRIPT_NOFILE; - char filename[sizeof(SCRIPTS_PATH)+sizeof(sd.file)+sizeof(SCRIPTS_EXT)] = SCRIPTS_PATH "/"; - strncpy(filename+sizeof(SCRIPTS_PATH), sd.file, sizeof(sd.file)); - filename[sizeof(SCRIPTS_PATH)+sizeof(sd.file)] = '\0'; - strcat(filename+sizeof(SCRIPTS_PATH), SCRIPTS_EXT); + char filename[sizeof(SCRIPTS_MIXES_PATH)+sizeof(sd.file)+sizeof(SCRIPTS_EXT)] = SCRIPTS_MIXES_PATH "/"; + strncpy(filename+sizeof(SCRIPTS_MIXES_PATH), sd.file, sizeof(sd.file)); + filename[sizeof(SCRIPTS_MIXES_PATH)+sizeof(sd.file)] = '\0'; + strcat(filename+sizeof(SCRIPTS_MIXES_PATH), SCRIPTS_EXT); luaLoad(filename, sid, sio); } } @@ -1197,10 +1197,10 @@ bool luaLoadFunctionScript(uint8_t index) memset(&sid, 0, sizeof(sid)); sid.reference = SCRIPT_FUNC_FIRST+index; sid.state = SCRIPT_NOFILE; - char filename[sizeof(SCRIPTS_PATH)+sizeof(fn.play.name)+sizeof(SCRIPTS_EXT)] = SCRIPTS_PATH "/"; - strncpy(filename+sizeof(SCRIPTS_PATH), fn.play.name, sizeof(fn.play.name)); - filename[sizeof(SCRIPTS_PATH)+sizeof(fn.play.name)] = '\0'; - strcat(filename+sizeof(SCRIPTS_PATH), SCRIPTS_EXT); + char filename[sizeof(SCRIPTS_FUNCS_PATH)+sizeof(fn.play.name)+sizeof(SCRIPTS_EXT)] = SCRIPTS_FUNCS_PATH "/"; + strncpy(filename+sizeof(SCRIPTS_FUNCS_PATH), fn.play.name, sizeof(fn.play.name)); + filename[sizeof(SCRIPTS_FUNCS_PATH)+sizeof(fn.play.name)] = '\0'; + strcat(filename+sizeof(SCRIPTS_FUNCS_PATH), SCRIPTS_EXT); luaLoad(filename, sid); } else { diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index d7147d44f..c8438804b 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -426,8 +426,8 @@ void modelDefault(uint8_t id) applyDefaultTemplate(); #if defined(LUA) - if (isFileAvailable(TEMPLATES_PATH "/" WIZARD_NAME)) { - f_chdir(TEMPLATES_PATH); + if (isFileAvailable(WIZARD_PATH "/" WIZARD_NAME)) { + f_chdir(WIZARD_PATH); luaExec(WIZARD_NAME); } #endif diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 4940140fa..6522e6123 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -46,12 +46,14 @@ #define SOUNDS_PATH_LNG_OFS (sizeof(SOUNDS_PATH)-3) #define SYSTEM_SUBDIR "SYSTEM" // no trailing slash = important #define BITMAPS_PATH ROOT_PATH "BMP" -#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 SCRIPTS_PATH ROOT_PATH "SCRIPTS" +#define WIZARD_PATH SCRIPTS_PATH "/WIZARD" #define WIZARD_NAME "wizard.lua" +#define TEMPLATES_PATH SCRIPTS_PATH "/TEMPLATES" +#define SCRIPTS_MIXES_PATH SCRIPTS_PATH "/MIXES" +#define SCRIPTS_FUNCS_PATH SCRIPTS_PATH "/FUNCTIONS" #define MODELS_EXT ".bin" #define LOGS_EXT ".csv"