feat: Model templates for color radios (update SD card for bundled templates) (#1569)

* Model templates - select and load after Create Model for color radios

* Model templates - save model as template, only for color radios

* Small fix to drawTextLines(...) to handle consecutive spaces

* Change title of button for empty template folder

* I found out why "no trailing slash = important" in path names!

* Reworked file and path name string manipulation
No longer using chdir, as Lua scripts etc. could be messing with the working dir
Use buffers more and std::string less

* Adjusting the size of buffers
I think that I got it right now. Really hard to figure out the right size constants!
Also added storageDirty(EE_MODEL) after reading the template file and renaming the model

* Added storage checks

* Slight simplification - all template buttons are similar

* Added "Blank Model" button

* Wizard Lua script
If there is a Lua script with the same name as the template file in the folder, then it is run after reading the template.
This commit is contained in:
Jesper Frickmann
2022-03-09 11:00:38 +10:00
committed by GitHub
parent e0e196a6e6
commit dcc5cfb352
22 changed files with 399 additions and 32 deletions
+4 -4
View File
@@ -196,7 +196,7 @@ const char * writeGeneralSettings()
}
const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t size)
const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t size, const char* pathName)
{
// YAML reader
TRACE("YAML model reader");
@@ -216,7 +216,7 @@ const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t siz
}
char path[256];
getModelPath(path, filename);
getModelPath(path, filename, pathName);
YamlTreeWalker tree;
tree.reset(data_nodes, buffer);
@@ -247,14 +247,14 @@ const char * readModelYaml(const char * filename, uint8_t * buffer, uint32_t siz
static const char _wrongExtentionError[] = "wrong file extension";
const char* readModel(const char* filename, uint8_t* buffer, uint32_t size)
const char* readModel(const char* filename, uint8_t* buffer, uint32_t size, const char* pathName)
{
const char* ext = strrchr(filename, '.');
if (!ext || strncmp(ext, YAML_EXT, 4) != 0) {
return _wrongExtentionError;
}
return readModelYaml(filename, buffer, size);
return readModelYaml(filename, buffer, size, pathName);
}
const char * writeModelYaml(const char* filename)