* [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
* Serial2 changes:
* stm32 driver moved to common dir.
* earlier start of driver (Taranis)
* wait for free buffer time limited
USB changes:
* Upgrade to ST USB-Host-Device_Lib_V2.2.0 (from V2.1.0) - this fixed a problem with USB serial #4086)
* other fixes for #4086
* USB-Host-Device_Lib: renamed directory to V2.2.0 (from V2.1.0)
* Better memory stats (CLI)
* Bitmap buffer overflow check added
* Lua bitmap improvements
* Proper handling of symbolic links in simulator
* S6R Lua script fixes:
* added progress screen while loading bitmaps
* memory for bitmaps is now freed when leaving the script
* S6R Lua script: improved bitmap loading
* * Lua Themes and Widgets moved to separate file and separate Lua state
* Stand-alone, mixer and function scripts now behave the same as on Taranis (restarted after the stand-alone script was run)
* both Lua states are independent: Themes and Widgets is initialized only at the start, the other one is initialized before and after the stand-alone script is run
* Better leak test and report in BitmapBuffer
* Re #3318: Lua compiler enabled in simu and Companion simulator. Usage:
* any time <xxx>.lua file is about to be loaded and if file <xxx>.lua.src exists:
* load contents of <xxx>.lua.src
* compile Lua code
* save compiled code into <xxx>.lua (effectively overwrites existing file)
* immediately following the compilation the real file loading is done from <xxx>.lua (which by now contains compiled Lua bytecode)
Also use SNR instead RSSI for FlySky since SNR gives a better indication of signal quality and also our current implementation of RSSI warning cannot really handle negative values
* Reduce model name size until they fit into the buffer
* SMLSIZE is better (but cut is still needed)
* Rework screen layout to handle up to 15 chars
* Allow for the two scroolbars (models and cats)
* Remove 'static' from bitmapbuffer that where causing issues when changing theme. I have checked that this does not create extra sdcard access
* Cosmetics
* Move calibration bitmaps to theme
* Overlaping PR
* There no theme changing during shutdown
* Cosmetics