* [480x272] Fix static initialization order problem with Layout, Theme, & Widget factories.
* [480x272] Fix return from drawTimerMode().
* [480x272] Remove use of macros for registered Layout, Widget, & Theme class lists; remove extern declarations (cosmetic).
* [480x272] Convert Layout and Theme registry to dynamic lists (still max. of 10 each);
Hide indicator arrow when user is at start/end of available widgets in spinner UI;
Add some sanity checking to pointer usage in screens_setup;
Add an (arbitrary) limit of 20 Widgets;
And a line break! :)
* [480x272] Fix compiler warnings with awkward extern define in layout.h.
* [firmware][misc] Fix build error with undefined SPLASH; Fix 128x64 syntax error in model_setup.cpp; Fix compiler warning on static init in diskio.cpp.
* [480x272] Revert "Fix compiler warnings with awkward extern define in layout.h." and modify lcd::drawSource() to use mixsrc_t for consistency.
This reverts commit d85d994c877a94c1933c6ece806565ca822d0f54.
* [firmware] Cleanup struct init in diskio modules.
* [simu] simpgmspace: Populate file date/time/size in f_stat(); Add f_utime(); Fix f_getcwd() on Windows; Fix f_mkdir() build error on Windows.
* [Lua] Add runtime support for script pre-compilation. Changes behavior with LUA_COMPILER (Re: https://github.com/opentx/opentx/issues/3318):
All .lua scripts are now compiled and saved to binary "bytecode" file (.luac extension) upon first execution;
Scripts are also automatically re-compiled if .lua source file is newer than existing .luac file;
The pre-compiled .luac version is loaded if modification time is newer or equivalent to .lua source file;
If a .luac version of a script exists, then the .lua version does not need to be present;
Guards against bytecode compatibility issues (binaries from 64-bit sim will not run on 32-bit sim/radio);
In SIMU and DEBUG builds, the source .lua file is always preferred in order to preserve full debug info (this is is controlled with new LUA_SCRIPT_LOAD_MODE macro, see lua_api.h);
GC is now run after each script is loaded.
* [Lua] Add loadScript() API function as alternative to loadfile() from Lua base. This can take advantage of the new OTx script pre-compilation features to reduce memory footprint when loading functions dynamically. This is an interface to luaLoadScriptFileToState(). Fully documented.
* [SD][Lua] Flexible file extensions support:
Allow for variable length file extensions throughout system (no longer hard-coded in LEN_FILE_EXTENSION);
Fixes issues with renaming files in SD manager which have file extensions longer than ".ext";
Expand general support for multiple file extensions per file type in sdListFiles() (eg. .lua and .luac for scripts);
Lua scripts with .luac extensions can now be selected in custom/telemetry/function menus even if no .lua version exists (duplicates are not shown);
.luac files can now also be executed from SD file manager UI.
* [Build] Added CMake options for LUA_COMPILER and LUA_SCRIPT_LOAD_MODE.
* Cosmetics.
* [SD][gui] Improve efficiency of some file name handling routines in sdmanager GUI and sdListFiles() by extending getFileExtension() function. Use shared isExtensionMatching() in place of isImageFileExtension(). Only allow executing .luac files when LUA_COMPILER defined (as per request).
* [simpgmspace] Fix f_mkdir() for MSVC build and misc. cleanup.
* [Lua] Use getFileExtension() in script loader to determine file type and check for buffer overflow.
* Deletion confirm chnaged from filename to modelname(filename)
* Improvements based on Bsongis remarks
* Fix taranis confirm that was not displaying anything
* Got carried away, back to a simpler requirement
* Cosmetics
* Bertrand's feedbacks, take 2 :)
* Use reusable buffer
When precesion is set to 0,0 or 0,00 and the choosen value is 1,0 or 1,00 following happens:
eins meter
This is incorrect so i coded another part in the else part of "qr.rem > 0" that checks if qr.quot is 1. If it is following happens now:
ein meter
* USB fixes:
* USB initialized when USB cable is inserted and de-initialized when disconnected (this was the original way, which proved itself unreliable in the past. Now with the new USB library it appears to work without any problems. Used in this way result in safer operation - USB controller is disabled while unconnected)
Works without force device mod
* Serial: initialization of global variables
* Reduced RAM usage - data moved to FLASH
* Detailed USB interrupt counters (+ debug print fix)
* [Companion] MdiChild now use a QTreeWidget instead of a QListWidget (for Horus compatibility)
* [Companion] Horus models.txt parsing / writing implemented
* Fix for QT53 (#4109)