* [Windows][MinGW] Update some WIN32 macro checks in source code to be MSVC-specific (not needed for GCC-based builds).
* [build] CMakeLists updates:
Adjust for Windows MinGW builds: now fully compatible with Qt5.5+ and MinGW-w64 toolchain (included in Qt installs);
Add option to specify path to required libraries/includes (instead of hard-coding `c:\programs`);
Add package check for Python and use found executable name;
Remove custom FindSdl package handler in favor of stock (and improved) CMake one (still works with Windows);
Do not force SIMU_AUDIO and LUA_COMPILER in SIMU builds (leave it up to user);
Add SIMU_LUA_COMPILER option specifically for SIMU builds (default = ON);
* [build][Windows] Rewrite/Fix Windows Companion `install` target, with two options:
a) just copy supporting Qt and c++ DLLs to build folder so programs can be quickly be run from there (this is default and similar to the old behavior);
b) full installation to CMAKE_INSTALL_PREFIX path, including all binaries, supporting DLLs, language files, and OTx utilities.
Option b) can be selected with new WIN_DO_FULL_INSTALL parameter;
Also cleans up the Linux install a bit and consolidates the OS X parts;
* [simulator][Windows] Add option to build Windows simulator with system console/terminal enabled (both standalone and when launched from Companion). Mostly useful for debug as it gives output messages much sooner in the startup process than the current debug console. Also helpful because you don't have to open it manually on every launch, and it remembers last window position and size. Possible candidate for a user-selectable runtime option in the future.
* [Windows] Fix MSVC build issues.
* [build] More build fixes:
Use a customized FindSDL.cmake script again due to bugs and deficiencies in the official version (based on script from CMake v3.7);
Fixes missing SDL DLL error in NSIS installer);
Use string for Timers option (checkbox in GUI is confusing);
Remove an unused variable.
* [simu][Windows] Fix f_getcwd() cutting off too many characters (fixes SD browser interactions).
* Add FY805 protocol
* Fix stray space
* Fix multi sending 120% instead of 100%.
* Implement a custom telemetry for the multi module
The custom telemetry allows the module to tell the telemetry protocol to OpenTX and also allows signaling the status of the Module (e.g. invalid protocol) to OpenTX
This should also close#3979.
* Cosmetics and a few small bugfixes
* remove empty if
* Move status line directly below the mode to be always visible when selecting a protocol
* warn if internal RF module is on
* Replace sprint with small helper function to build on AVR ARM (AR9X, 9XPRO, …)
* TR in wrong order, RF_PROTO_OFF inverted
* Refactor definition of Multimodule protocols to have one central place to define all multi protocol properties
* Also update protocols in companion
* Update multi version number to display as a.b.c.d
* Move to Horus style implementation
* TINSIZE handling
* Fix timers
* Add the option to align left on first digit (ie '-' if left of alignment point)
* Compile fix
* Reduce DBL font dot size
* Get ready for PR
* Remove unused function
* Remove leftover declaration
* Performance
* Cosmetics
* [simu] Reduce width of all simulator windows and also height of Horus window. (https://github.com/opentx/opentx/issues/3135)
* [simu] New vertical channel outputs layout for all simulators, all outputs in one window and horizontally scrollable. Consolidate outputs and gvars widgets to one code base for all sims. Make simulator dialog re-sizable.
* [simu] Make simulation dialog resizable, and greatly reduce minimum size requirements of all simulators. Introduces new VirtualJoystickWidget class with all controls. Simplifies every simulator dialog UI form.
* Fix for issue with trackpad & mouse wheel: Small movements up or down send delta=0, causing always events in the same direction.
* Changed keys to X,C
* [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 d85d994c87.
* [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