Use simple scheme with direct model slot to model filename
This commit is contained in:
@@ -26,10 +26,6 @@
|
||||
#include "conversions/conversions.h"
|
||||
#include "model_init.h"
|
||||
|
||||
//#if !defined(EEPROM_SDCARD)
|
||||
ModelHeader modelHeaders[MAX_MODELS];
|
||||
//#endif
|
||||
|
||||
// defined either in sdcard_raw.cpp or sdcard_yaml.cpp
|
||||
void storageCreateModelsList();
|
||||
|
||||
@@ -71,7 +67,9 @@ void storageFormat()
|
||||
{
|
||||
sdCheckAndCreateDirectory(RADIO_PATH);
|
||||
sdCheckAndCreateDirectory(MODELS_PATH);
|
||||
#if defined(STORAGE_MODELSLIST)
|
||||
storageCreateModelsList();
|
||||
#endif
|
||||
generalDefault();
|
||||
}
|
||||
|
||||
@@ -96,6 +94,7 @@ void storageCheck(bool immediately)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(STORAGE_MODELSLIST)
|
||||
const char * createModel()
|
||||
{
|
||||
preModelLoad();
|
||||
@@ -108,6 +107,7 @@ const char * createModel()
|
||||
if (index > 0) {
|
||||
setModelDefaults(index);
|
||||
memcpy(g_eeGeneral.currModelFilename, filename, sizeof(g_eeGeneral.currModelFilename));
|
||||
|
||||
storageDirty(EE_GENERAL);
|
||||
storageDirty(EE_MODEL);
|
||||
storageCheck(true);
|
||||
@@ -116,6 +116,7 @@ const char * createModel()
|
||||
|
||||
return g_eeGeneral.currModelFilename;
|
||||
}
|
||||
#endif
|
||||
|
||||
const char * loadModel(const char * filename, bool alarms)
|
||||
{
|
||||
@@ -150,13 +151,20 @@ void storageReadAll()
|
||||
{
|
||||
TRACE("storageReadAll");
|
||||
|
||||
#if defined(STORAGE_MODELSLIST)
|
||||
// Wipe models list in case
|
||||
// it's being reloaded after USB connection
|
||||
modelslist.clear();
|
||||
#endif
|
||||
|
||||
if (loadRadioSettings() != nullptr) {
|
||||
storageEraseAll(true);
|
||||
}
|
||||
#if !defined(STORAGE_MODELSLIST)
|
||||
else {
|
||||
loadModelHeaders();
|
||||
}
|
||||
#endif
|
||||
|
||||
for (uint8_t i = 0; languagePacks[i] != nullptr; i++) {
|
||||
if (!strncmp(g_eeGeneral.ttsLanguage, languagePacks[i]->id, 2)) {
|
||||
@@ -166,6 +174,7 @@ void storageReadAll()
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(STORAGE_MODELSLIST)
|
||||
// and reload the list
|
||||
modelslist.load();
|
||||
|
||||
@@ -185,24 +194,17 @@ void storageReadAll()
|
||||
if (loadModel(g_eeGeneral.currModelFilename, false) != nullptr) {
|
||||
TRACE("No current model or SD card error");
|
||||
}
|
||||
#else
|
||||
if (loadModel(g_eeGeneral.currModel, false) != nullptr) {
|
||||
TRACE("No current model or SD card error");
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(COLORLCD)
|
||||
void checkModelIdUnique(uint8_t index, uint8_t module)
|
||||
{
|
||||
if (isModuleXJTD8(module))
|
||||
return;
|
||||
|
||||
char * warn_buf = reusableBuffer.moduleSetup.msg;
|
||||
|
||||
// cannot rely exactly on WARNING_LINE_LEN so using WARNING_LINE_LEN-2
|
||||
size_t warn_buf_len = sizeof(reusableBuffer.moduleSetup.msg) - WARNING_LINE_LEN - 2;
|
||||
if (!modelslist.isModelIdUnique(module,warn_buf,warn_buf_len)) {
|
||||
if (warn_buf[0] != 0) {
|
||||
POPUP_WARNING(STR_MODELIDUSED);
|
||||
SET_WARNING_INFO(warn_buf, sizeof(reusableBuffer.moduleSetup.msg), 0);
|
||||
}
|
||||
}
|
||||
//TODO
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user