New UI merged
@@ -1,7 +1,7 @@
|
||||
include(CMakeForceCompiler)
|
||||
include(Bitmaps)
|
||||
|
||||
set(PCB_TYPES X9LITE X7 XLITE XLITES X9D X9D+ X9E X10 X12S SKY9X 9XRPRO AR9X)
|
||||
set(PCB_TYPES X9LITE X7 XLITE XLITES X9D X9D+ X9E X10 X12S SKY9X 9XRPRO AR9X NV14)
|
||||
set(GUI_LANGUAGES CZ DE EN ES FR IT PT SK SE PL HU NL)
|
||||
set(TTS_LANGUAGES CZ DE EN ES FR IT PT SK SE PL HU NL RU)
|
||||
|
||||
@@ -44,11 +44,13 @@ option(RAS "RAS (SWR) enabled" ON)
|
||||
option(TEMPLATES "Model templates menu" OFF)
|
||||
option(TRACE_SIMPGMSPACE "Turn on traces in simpgmspace.cpp" ON)
|
||||
option(TRACE_LUA_INTERNALS "Turn on traces for Lua internals" OFF)
|
||||
option(DEBUG_WINDOWS "Turn on windows traces" OFF)
|
||||
option(FRSKY_STICKS "Reverse sticks for FrSky sticks" OFF)
|
||||
option(NANO "Use nano newlib and binalloc")
|
||||
option(NIGHTLY_BUILD_WARNING "Warn this is a nightly build" OFF)
|
||||
option(R9M_PROTO_FLEX "Add R9M options for non certified firmwwares" OFF)
|
||||
option(FRSKY_RELEASE "Used to build FrSky released firmware" OFF)
|
||||
option(BOOTLOADER "Include Bootloader" ON)
|
||||
|
||||
# since we reset all default CMAKE compiler flags for firmware builds, provide an alternate way for user to specify additional flags.
|
||||
set(FIRMWARE_C_FLAGS "" CACHE STRING "Additional flags for firmware target c compiler (note: all CMAKE_C_FLAGS[_*] are ignored for firmware/bootloader).")
|
||||
@@ -64,10 +66,6 @@ set(RADIO_BIN_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
configure_file(stamp.h.in stamp.h @ONLY)
|
||||
|
||||
add_subdirectory(translations)
|
||||
add_subdirectory(bitmaps)
|
||||
add_subdirectory(fonts)
|
||||
|
||||
set(EEPROM_VARIANT 0)
|
||||
set(GVARS_VARIANT 1)
|
||||
set(FRSKY_VARIANT 2)
|
||||
@@ -83,6 +81,8 @@ set(FATFS_SRC
|
||||
|
||||
if(PCB STREQUAL X12S OR PCB STREQUAL X10)
|
||||
include(targets/horus/CMakeLists.txt)
|
||||
elseif(PCB STREQUAL NV14)
|
||||
include(targets/nv14/CMakeLists.txt)
|
||||
elseif(PCB STREQUAL X9E OR PCB STREQUAL X9D+ OR PCB STREQUAL X9D OR PCB STREQUAL X7 OR PCB STREQUAL X9LITE OR PCB STREQUAL XLITE OR PCB STREQUAL XLITES)
|
||||
include(targets/taranis/CMakeLists.txt)
|
||||
elseif(PCB STREQUAL SKY9X OR PCB STREQUAL 9XRPRO OR PCB STREQUAL AR9X)
|
||||
@@ -91,6 +91,10 @@ else()
|
||||
message(FATAL_ERROR "Unknown PCB '${PCB}'")
|
||||
endif()
|
||||
|
||||
add_subdirectory(translations)
|
||||
add_subdirectory(bitmaps)
|
||||
add_subdirectory(fonts)
|
||||
|
||||
if(NOT PCB STREQUAL 9XRPRO)
|
||||
option(DBLKEYS "Double Keys" ON)
|
||||
if(DBLKEYS)
|
||||
@@ -125,7 +129,7 @@ endforeach()
|
||||
set(SRC ${SRC} debug.cpp)
|
||||
|
||||
if(${EEPROM} STREQUAL SDCARD)
|
||||
set(SRC ${SRC} storage/storage_common.cpp storage/sdcard_raw.cpp storage/modelslist.cpp)
|
||||
set(SRC ${SRC} storage/storage_common.cpp storage/sdcard_raw.cpp)
|
||||
elseif(${EEPROM} STREQUAL EEPROM_RLC)
|
||||
set(SRC ${SRC} storage/storage_common.cpp storage/eeprom_common.cpp storage/eeprom_rlc.cpp)
|
||||
add_definitions(-DEEPROM -DEEPROM_RLC)
|
||||
@@ -165,12 +169,8 @@ if(NOT LUA STREQUAL NO)
|
||||
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} ${LUA_EXPORT})
|
||||
if(LUA STREQUAL YES)
|
||||
add_definitions(-DLUA_MODEL_SCRIPTS)
|
||||
set(GUI_SRC ${GUI_SRC} model_custom_scripts.cpp)
|
||||
endif()
|
||||
set(SRC ${SRC} lua/interface.cpp lua/api_general.cpp lua/api_lcd.cpp lua/api_model.cpp)
|
||||
if(PCB STREQUAL X12S OR PCB STREQUAL X10)
|
||||
set(SRC ${SRC} lua/widgets.cpp)
|
||||
endif()
|
||||
set(LUA_SRC lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c
|
||||
lstate.c lstring.c ltable.c lrotable.c ltm.c lundump.c lvm.c lzio.c linit.c
|
||||
lbaselib.c lmathlib.c lbitlib.c loadlib.c lauxlib.c ltablib.c lcorolib.c liolib.c lstrlib.c
|
||||
@@ -190,7 +190,6 @@ endif()
|
||||
|
||||
if(FLIGHT_MODES)
|
||||
add_definitions(-DFLIGHT_MODES)
|
||||
set(GUI_SRC ${GUI_SRC} model_flightmodes.cpp)
|
||||
endif()
|
||||
|
||||
if(CURVES)
|
||||
@@ -293,10 +292,22 @@ if(TRACE_LUA_INTERNALS)
|
||||
add_definitions(-DTRACE_LUA_INTERNALS_ENABLED)
|
||||
endif()
|
||||
|
||||
if(DEBUG_WINDOWS)
|
||||
add_definitions(-DDEBUG_WINDOWS)
|
||||
endif()
|
||||
|
||||
if(FRSKY_STICKS)
|
||||
add_definitions(-DFRSKY_STICKS)
|
||||
endif()
|
||||
|
||||
if(FLYSKY_HALL_STICKS)
|
||||
add_definitions(-DFLYSKY_HALL_STICKS)
|
||||
endif()
|
||||
|
||||
if(FLYSKY_HALL_STICKS_REVERSE)
|
||||
add_definitions(-DFLYSKY_HALL_STICKS_REVERSE)
|
||||
endif()
|
||||
|
||||
if(NOT FONT STREQUAL "")
|
||||
add_definitions(-DFONT=${DEFAULT_MODE})
|
||||
endif()
|
||||
@@ -320,6 +331,10 @@ endif()
|
||||
|
||||
add_definitions(-DPOPUP_LEVEL=${POPUP_LEVEL})
|
||||
|
||||
if(BOOTLOADER)
|
||||
add_definitions(-DBOOTLOADER)
|
||||
endif(BOOTLOADER)
|
||||
|
||||
set(SRC
|
||||
${SRC}
|
||||
opentx.cpp
|
||||
@@ -416,7 +431,7 @@ use_cxx11() # ensure gnu++11 in CXX_FLAGS with CMake < 3.1
|
||||
find_program(BASH bash HINTS "c:/cygwin/bin/" "c:/msys/bin/" DOC "bash shell for firmware size report (eg. c:/cygwin/bin/bash.exe on Windows).")
|
||||
|
||||
if(NOT MSVC)
|
||||
set(OPT s)
|
||||
set(OPT "s" CACHE STRING "Optimization mode (0/1/2/s")
|
||||
|
||||
if(ARCH STREQUAL ARM)
|
||||
enable_language(ASM)
|
||||
@@ -454,7 +469,7 @@ if(NOT MSVC)
|
||||
set(SRC ${SRC} bin_allocator.cpp)
|
||||
endif()
|
||||
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCB STREQUAL X9D OR PCB STREQUAL X9D+ OR PCB STREQUAL X9E OR PCB STREQUAL X7 OR PCB STREQUAL X9LITE OR PCB STREQUAL X10 OR PCB STREQUAL X12S)
|
||||
if(PCB STREQUAL XLITE OR PCB STREQUAL XLITES OR PCB STREQUAL X9D OR PCB STREQUAL X9D+ OR PCB STREQUAL X9E OR PCB STREQUAL X9LITE OR PCB STREQUAL X7 OR PCB STREQUAL X3 OR PCB STREQUAL X10 OR PCB STREQUAL X12S)
|
||||
add_subdirectory(targets/common/arm/stm32/bootloader)
|
||||
include_directories(${CMAKE_CURRENT_BINARY_DIR}/targets/common/arm/stm32/bootloader)
|
||||
set(FIRMWARE_DEPENDENCIES ${FIRMWARE_DEPENDENCIES} bootloader)
|
||||
|
||||
@@ -207,7 +207,7 @@ const char * const audioFilenames[] = {
|
||||
"midstck2",
|
||||
"midstck3",
|
||||
"midstck4",
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY)
|
||||
"midpot1",
|
||||
"midpot2",
|
||||
#if defined(PCBX9E)
|
||||
@@ -317,7 +317,7 @@ void getSwitchAudioFile(char * filename, swsrc_t index)
|
||||
{
|
||||
char * str = getModelAudioPath(filename);
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY)
|
||||
if (index <= SWSRC_LAST_SWITCH) {
|
||||
div_t swinfo = switchInfo(index);
|
||||
*str++ = 'S';
|
||||
@@ -345,7 +345,7 @@ void getLogicalSwitchAudioFile(char * filename, int index, unsigned int event)
|
||||
{
|
||||
char * str = getModelAudioPath(filename);
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY)
|
||||
*str++ = 'L';
|
||||
if (index >= 9) {
|
||||
div_t qr = div(index+1, 10);
|
||||
@@ -524,7 +524,7 @@ void audioTask(void * pdata)
|
||||
|
||||
setSampleRate(AUDIO_SAMPLE_RATE);
|
||||
|
||||
#if defined(PCBX12S)
|
||||
#if defined(PCBX12S) || defined(PCBNV14)
|
||||
// The audio amp needs ~2s to start
|
||||
RTOS_WAIT_MS(1000); // 1s
|
||||
#endif
|
||||
@@ -1129,7 +1129,7 @@ void audioEvent(unsigned int index)
|
||||
case AU_POT3_MIDDLE:
|
||||
case AU_POT4_MIDDLE:
|
||||
#endif
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY)
|
||||
case AU_SLIDER1_MIDDLE:
|
||||
case AU_SLIDER2_MIDDLE:
|
||||
#if defined(PCBX9E)
|
||||
|
||||
@@ -22,7 +22,9 @@
|
||||
#define _AUDIO_ARM_H_
|
||||
|
||||
#include <stddef.h>
|
||||
#include <string.h>
|
||||
#include "ff.h"
|
||||
#include "opentx_types.h"
|
||||
|
||||
/*
|
||||
Implements a bit field, number of bits is set by the template,
|
||||
@@ -101,7 +103,7 @@ enum AudioBufferState
|
||||
#define AUDIO_DATA_MIN 0
|
||||
#define AUDIO_DATA_MAX 0xffff
|
||||
#define AUDIO_BITS_PER_SAMPLE 16
|
||||
#elif defined(PCBX12S)
|
||||
#elif defined(PCBX12S) || defined(PCBNV14)
|
||||
typedef int16_t audio_data_t;
|
||||
#define AUDIO_DATA_SILENCE 0
|
||||
#define AUDIO_DATA_MIN INT16_MIN
|
||||
|
||||
|
Before Width: | Height: | Size: 454 B |
|
Before Width: | Height: | Size: 618 B |
@@ -1,3 +1 @@
|
||||
add_subdirectory(128x64)
|
||||
add_subdirectory(212x64)
|
||||
add_subdirectory(480x272)
|
||||
add_subdirectory(${GUI_DIR})
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
if(PCB STREQUAL X12S)
|
||||
if(PCB STREQUAL NV14)
|
||||
set(BITMAP_TARGET_PREFIX nv14)
|
||||
set(BITMAP_FMT_SUFFIX "")
|
||||
elseif(PCB STREQUAL X12S)
|
||||
set(BITMAP_TARGET_PREFIX x12s)
|
||||
set(BITMAP_FMT_SUFFIX "")
|
||||
else()
|
||||
@@ -6,19 +9,19 @@ else()
|
||||
set(BITMAP_FMT_SUFFIX "-R")
|
||||
endif()
|
||||
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/bmp_*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_calibration_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/calibration/bmp_*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_button_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/button/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_alpha_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_alpha_calibration_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/calibration/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_masks ${RADIO_SRC_DIRECTORY}/bitmaps/480x272/mask_*.png 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_slider_masks "${RADIO_SRC_DIRECTORY}/bitmaps/480x272/slider/*.png" 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_layouts_masks "${RADIO_SRC_DIRECTORY}/gui/480x272/layouts/*.png" 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_themes_bitmaps "${RADIO_SRC_DIRECTORY}/gui/480x272/themes/*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_fonts ${RADIO_SRC_DIRECTORY}/fonts/480x272/*.png 480 8bits rle)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_volume_masks ${RADIO_SRC_DIRECTORY}/bitmaps/480x272/volume/*.png 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bootloader_bitmaps ${RADIO_SRC_DIRECTORY}/bitmaps/480x272/bootloader/bmp_*.png 480 "5/6/5${BITMAP_FMT_SUFFIX}" rle)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bootloader_icons ${RADIO_SRC_DIRECTORY}/bitmaps/480x272/bootloader/icon_*.png 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/bmp_*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_calibration_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/calibration/bmp_*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_button_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/button/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_alpha_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_alpha_calibration_bitmaps "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/calibration/alpha_*.png" 480 "4/4/4/4${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_masks ${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/mask_*.png 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_slider_masks "${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/slider/*.png" 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_layouts_masks "${RADIO_SRC_DIRECTORY}/gui/colorlcd/layouts/*.png" 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_themes_bitmaps "${RADIO_SRC_DIRECTORY}/gui/colorlcd/themes/*.png" 480 "5/6/5${BITMAP_FMT_SUFFIX}")
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_fonts ${RADIO_SRC_DIRECTORY}/fonts/truetype/*.png 480 8bits rle)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_volume_masks ${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/volume/*.png 480 8bits)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bootloader_bitmaps ${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/bootloader/bmp_*.png 480 "5/6/5${BITMAP_FMT_SUFFIX}" rle)
|
||||
add_bitmaps_target(${BITMAP_TARGET_PREFIX}_bootloader_icons ${RADIO_SRC_DIRECTORY}/bitmaps/colorlcd/bootloader/icon_*.png 480 8bits)
|
||||
|
||||
add_dependencies(${BITMAP_TARGET_PREFIX}_bitmaps ${BITMAP_TARGET_PREFIX}_calibration_bitmaps ${BITMAP_TARGET_PREFIX}_button_bitmaps ${BITMAP_TARGET_PREFIX}_alpha_bitmaps
|
||||
${BITMAP_TARGET_PREFIX}_alpha_calibration_bitmaps ${BITMAP_TARGET_PREFIX}_masks ${BITMAP_TARGET_PREFIX}_slider_masks ${BITMAP_TARGET_PREFIX}_layouts_masks
|
||||
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 641 B After Width: | Height: | Size: 641 B |
|
Before Width: | Height: | Size: 276 B After Width: | Height: | Size: 276 B |
|
Before Width: | Height: | Size: 696 B After Width: | Height: | Size: 696 B |
|
Before Width: | Height: | Size: 823 B After Width: | Height: | Size: 823 B |
|
Before Width: | Height: | Size: 514 B After Width: | Height: | Size: 514 B |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 664 B After Width: | Height: | Size: 664 B |
|
Before Width: | Height: | Size: 405 B After Width: | Height: | Size: 405 B |
|
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 369 B |
|
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 222 B |
|
Before Width: | Height: | Size: 270 B After Width: | Height: | Size: 270 B |
|
After Width: | Height: | Size: 254 B |
|
After Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 485 B After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 427 B |
|
After Width: | Height: | Size: 636 B |
|
After Width: | Height: | Size: 463 B |
|
After Width: | Height: | Size: 602 B |
|
After Width: | Height: | Size: 489 B |
|
After Width: | Height: | Size: 650 B |
|
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 402 B |
|
Before Width: | Height: | Size: 244 B After Width: | Height: | Size: 244 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 433 B |
|
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 257 B |
|
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 312 B |
|
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 304 B After Width: | Height: | Size: 304 B |
|
Before Width: | Height: | Size: 345 B After Width: | Height: | Size: 345 B |
|
Before Width: | Height: | Size: 315 B After Width: | Height: | Size: 315 B |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 412 B After Width: | Height: | Size: 412 B |
|
Before Width: | Height: | Size: 785 B After Width: | Height: | Size: 785 B |
|
Before Width: | Height: | Size: 684 B After Width: | Height: | Size: 684 B |
|
Before Width: | Height: | Size: 516 B After Width: | Height: | Size: 516 B |
|
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 302 B |
|
Before Width: | Height: | Size: 436 B After Width: | Height: | Size: 436 B |
|
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 601 B After Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 440 B After Width: | Height: | Size: 440 B |
|
Before Width: | Height: | Size: 171 B After Width: | Height: | Size: 171 B |
|
Before Width: | Height: | Size: 154 B After Width: | Height: | Size: 154 B |
|
Before Width: | Height: | Size: 227 B After Width: | Height: | Size: 227 B |
|
Before Width: | Height: | Size: 232 B After Width: | Height: | Size: 232 B |
|
Before Width: | Height: | Size: 259 B After Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 866 B |
|
Before Width: | Height: | Size: 833 B After Width: | Height: | Size: 833 B |
|
Before Width: | Height: | Size: 922 B After Width: | Height: | Size: 922 B |
|
Before Width: | Height: | Size: 1012 B After Width: | Height: | Size: 1012 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 604 B After Width: | Height: | Size: 604 B |
@@ -684,7 +684,7 @@ const char * Bluetooth::bootloaderWriteFlash(const uint8_t * data, uint32_t size
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const char * Bluetooth::doFlashFirmware(const char * filename)
|
||||
const char * Bluetooth::doFlashFirmware(const char * filename, ProgressHandler progressHandler)
|
||||
{
|
||||
const char * result;
|
||||
FIL file;
|
||||
@@ -718,7 +718,7 @@ const char * Bluetooth::doFlashFirmware(const char * filename)
|
||||
return "Format error";
|
||||
}
|
||||
|
||||
drawProgressScreen(getBasename(filename), STR_FLASH_ERASE, 0, 0);
|
||||
progressHandler(getBasename(filename), STR_FLASH_ERASE, 0, 0);
|
||||
|
||||
result = bootloaderEraseFlash(CC26XX_FIRMWARE_BASE, information->size);
|
||||
if (result) {
|
||||
@@ -727,7 +727,7 @@ const char * Bluetooth::doFlashFirmware(const char * filename)
|
||||
}
|
||||
|
||||
uint32_t size = information->size;
|
||||
drawProgressScreen(getBasename(filename), STR_FLASH_WRITE, 0, size);
|
||||
progressHandler(getBasename(filename), STR_FLASH_WRITE, 0, size);
|
||||
|
||||
result = bootloaderStartWriteFlash(CC26XX_FIRMWARE_BASE, size);
|
||||
if (result)
|
||||
@@ -735,7 +735,7 @@ const char * Bluetooth::doFlashFirmware(const char * filename)
|
||||
|
||||
uint32_t done = 0;
|
||||
while (1) {
|
||||
drawProgressScreen(getBasename(filename), STR_FLASH_WRITE, done, size);
|
||||
progressHandler(getBasename(filename), STR_FLASH_WRITE, done, size);
|
||||
if (f_read(&file, buffer, min<uint32_t>(sizeof(buffer), size - done), &count) != FR_OK) {
|
||||
f_close(&file);
|
||||
return "Error reading file";
|
||||
@@ -751,9 +751,9 @@ const char * Bluetooth::doFlashFirmware(const char * filename)
|
||||
}
|
||||
}
|
||||
|
||||
const char * Bluetooth::flashFirmware(const char * filename)
|
||||
const char * Bluetooth::flashFirmware(const char * filename, ProgressHandler progressHandler)
|
||||
{
|
||||
drawProgressScreen(getBasename(filename), STR_MODULE_RESET, 0, 0);
|
||||
progressHandler(getBasename(filename), STR_MODULE_RESET, 0, 0);
|
||||
|
||||
state = BLUETOOTH_STATE_FLASH_FIRMWARE;
|
||||
|
||||
@@ -767,7 +767,7 @@ const char * Bluetooth::flashFirmware(const char * filename)
|
||||
watchdogSuspend(1000);
|
||||
RTOS_WAIT_MS(1000);
|
||||
|
||||
const char * result = doFlashFirmware(filename);
|
||||
const char * result = doFlashFirmware(filename, progressHandler);
|
||||
|
||||
AUDIO_PLAY(AU_SPECIAL_SOUND_BEEP1 );
|
||||
BACKLIGHT_ENABLE();
|
||||
@@ -780,7 +780,7 @@ const char * Bluetooth::flashFirmware(const char * filename)
|
||||
POPUP_INFORMATION(STR_FIRMWARE_UPDATE_SUCCESS);
|
||||
}
|
||||
|
||||
drawProgressScreen(getBasename(filename), STR_MODULE_RESET, 0, 0);
|
||||
progressHandler(getBasename(filename), STR_MODULE_RESET, 0, 0);
|
||||
|
||||
/* wait 1s off */
|
||||
watchdogSuspend(1000);
|
||||
|
||||
@@ -57,7 +57,7 @@ class Bluetooth
|
||||
|
||||
void forwardTelemetry(const uint8_t * packet);
|
||||
void wakeup();
|
||||
const char * flashFirmware(const char * filename);
|
||||
const char * flashFirmware(const char * filename, ProgressHandler progressHandler);
|
||||
|
||||
volatile uint8_t state;
|
||||
char localAddr[LEN_BLUETOOTH_ADDR+1];
|
||||
@@ -85,7 +85,7 @@ class Bluetooth
|
||||
const char * bootloaderEraseFlash(uint32_t start, uint32_t size);
|
||||
const char * bootloaderStartWriteFlash(uint32_t start, uint32_t size);
|
||||
const char * bootloaderWriteFlash(const uint8_t * data, uint32_t size);
|
||||
const char * doFlashFirmware(const char * filename);
|
||||
const char * doFlashFirmware(const char * filename, ProgressHandler progressHandler);
|
||||
|
||||
uint8_t buffer[BLUETOOTH_LINE_LENGTH+1];
|
||||
uint8_t bufferIndex = 0;
|
||||
|
||||
@@ -413,7 +413,7 @@ void testDrawText()
|
||||
|
||||
void testDrawTextVertical()
|
||||
{
|
||||
lcdDrawText(30, LCD_H, "The quick brown fox ", TEXT_COLOR|VERTICAL|NO_FONTCACHE);
|
||||
lcdDrawText(30, LCD_H, "The quick brown fox ", TEXT_COLOR|VERTICAL);
|
||||
}
|
||||
|
||||
void testClear()
|
||||
@@ -616,7 +616,7 @@ int cliTestMemorySpeed()
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "storage/modelslist.h"
|
||||
#include "modelslist.h"
|
||||
using std::list;
|
||||
|
||||
int cliTestModelsList()
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* th9x - http://code.google.com/p/th9x
|
||||
* er9x - http://code.google.com/p/er9x
|
||||
* gruvin9x - http://code.google.com/p/gruvin9x
|
||||
*
|
||||
@@ -70,14 +70,14 @@ bool moveCurve(uint8_t index, int8_t shift)
|
||||
AUDIO_WARNING2();
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
int8_t * nextCrv = curveAddress(index+1);
|
||||
memmove(nextCrv+shift, nextCrv, 5*(MAX_CURVES-index-1)+curveEnd[MAX_CURVES-1]-curveEnd[index]);
|
||||
if (shift < 0) memclear(&g_model.points[MAX_CURVE_POINTS-1] + shift, -shift);
|
||||
while (index<MAX_CURVES) {
|
||||
curveEnd[index++] += shift;
|
||||
}
|
||||
|
||||
|
||||
storageDirty(EE_MODEL);
|
||||
return true;
|
||||
}
|
||||
@@ -314,19 +314,26 @@ int applyCustomCurve(int x, uint8_t idx)
|
||||
return intpol(x, idx);
|
||||
}
|
||||
|
||||
point_t getPoint(uint8_t i)
|
||||
point_t getPoint(uint8_t index)
|
||||
{
|
||||
return getPoint(s_curveChan, index);
|
||||
}
|
||||
|
||||
point_t getPoint(uint8_t curveIndex, uint8_t index)
|
||||
{
|
||||
point_t result = {0, 0};
|
||||
CurveInfo & crv = g_model.curves[s_curveChan];
|
||||
int8_t * points = curveAddress(s_curveChan);
|
||||
CurveInfo & crv = g_model.curves[curveIndex];
|
||||
int8_t * points = curveAddress(curveIndex);
|
||||
bool custom = (crv.type == CURVE_TYPE_CUSTOM);
|
||||
uint8_t count = 5+crv.points;
|
||||
if (i < count) {
|
||||
result.x = CURVE_CENTER_X-1-CURVE_SIDE_WIDTH + i*CURVE_SIDE_WIDTH*2/(count-1);
|
||||
result.y = CURVE_CENTER_Y - (points[i]) * (CURVE_SIDE_WIDTH-1) / 100;
|
||||
if (custom && i>0 && i<count-1) {
|
||||
result.x = CURVE_CENTER_X - 1 - CURVE_SIDE_WIDTH + (100 + (100 + points[count + i - 1]) * (2 * CURVE_SIDE_WIDTH)) / 200;
|
||||
uint8_t count = 5 + crv.points;
|
||||
if (index < count) {
|
||||
if (custom && index > 0 && index < count - 1) {
|
||||
result.x = calc100toRESX(points[count + index - 1]);
|
||||
}
|
||||
else {
|
||||
result.x = -RESX + calc100toRESX(200 * index / (count - 1));
|
||||
}
|
||||
result.y = calc100toRESX(points[index]);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
#define LUA_EXPORT_EXTRA(...)
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#if defined(PCBHORUS) || defined(PCBNV14)
|
||||
#define MAX_MODELS 60
|
||||
#define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
|
||||
#define MAX_FLIGHT_MODES 9
|
||||
@@ -99,7 +99,7 @@ enum CurveType {
|
||||
#define MIN_POINTS_PER_CURVE 3
|
||||
#define MAX_POINTS_PER_CURVE 17
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#if defined(PCBHORUS) || defined(PCBNV14)
|
||||
#define LEN_MODEL_NAME 15
|
||||
#define LEN_TIMER_NAME 8
|
||||
#define LEN_FLIGHT_MODE_NAME 10
|
||||
@@ -136,7 +136,7 @@ enum CurveType {
|
||||
#define MAX_CURVE_POINTS 512
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBSKY9X) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY) || defined(PCBSKY9X) || defined(PCBNV14)
|
||||
#define NUM_MODULES 2
|
||||
#else
|
||||
#define NUM_MODULES 1
|
||||
@@ -179,7 +179,7 @@ enum BeeperMode {
|
||||
e_mode_all
|
||||
};
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY) || defined(PCBNV14)
|
||||
enum ModuleIndex {
|
||||
INTERNAL_MODULE,
|
||||
EXTERNAL_MODULE,
|
||||
@@ -214,7 +214,7 @@ enum TrainerMode {
|
||||
#define TRAINER_MODE_MAX() HAS_WIRELESS_TRAINER_HARDWARE() ? TRAINER_MODE_MASTER_BATTERY_COMPARTMENT : TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY) || defined(PCBNV14)
|
||||
#define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE)
|
||||
#elif defined(PCBSKY9X)
|
||||
#define IS_INTERNAL_MODULE_ENABLED() (false)
|
||||
@@ -236,7 +236,7 @@ enum UartModes {
|
||||
UART_MODE_MAX = UART_MODE_COUNT-1
|
||||
};
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#if defined(PCBHORUS) || defined(PCBNV14)
|
||||
#define LEN_SWITCH_NAME 3
|
||||
#define LEN_ANA_NAME 3
|
||||
#define LEN_MODEL_FILENAME 16
|
||||
@@ -592,6 +592,7 @@ enum MixSources {
|
||||
MIXSRC_Thr, LUA_EXPORT("thr", "Throttle")
|
||||
MIXSRC_Ail, LUA_EXPORT("ail", "Aileron")
|
||||
|
||||
MIXSRC_LAST_STICK = MIXSRC_Ail,
|
||||
MIXSRC_FIRST_POT,
|
||||
#if defined(PCBHORUS)
|
||||
MIXSRC_S1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer S1")
|
||||
@@ -623,7 +624,7 @@ enum MixSources {
|
||||
MIXSRC_SLIDER3, LUA_EXPORT("lcs", "Left center slider (X9E only)")
|
||||
MIXSRC_SLIDER4, LUA_EXPORT("rcs", "Right center slider (X9E only)")
|
||||
MIXSRC_LAST_POT = MIXSRC_SLIDER4,
|
||||
#elif defined(PCBX7) || defined(PCBXLITE)
|
||||
#elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBNV14)
|
||||
MIXSRC_POT1 = MIXSRC_FIRST_POT, LUA_EXPORT("s1", "Potentiometer 1")
|
||||
MIXSRC_POT2, LUA_EXPORT("s2", "Potentiometer 2")
|
||||
MIXSRC_LAST_POT = MIXSRC_POT2,
|
||||
@@ -661,6 +662,7 @@ enum MixSources {
|
||||
MIXSRC_CYC1 = MIXSRC_FIRST_HELI, LUA_EXPORT("cyc1", "Cyclic 1")
|
||||
MIXSRC_CYC2, LUA_EXPORT("cyc2", "Cyclic 2")
|
||||
MIXSRC_CYC3, LUA_EXPORT("cyc3", "Cyclic 3")
|
||||
MIXSRC_LAST_HELI = MIXSRC_CYC3,
|
||||
|
||||
MIXSRC_FIRST_TRIM,
|
||||
MIXSRC_TrimRud = MIXSRC_FIRST_TRIM, LUA_EXPORT("trim-rud", "Rudder trim")
|
||||
@@ -840,12 +842,14 @@ enum Functions {
|
||||
};
|
||||
|
||||
enum TimerModes {
|
||||
TMRMODE_NONE,
|
||||
TMRMODE_ABS,
|
||||
TMRMODE_OFF,
|
||||
TMRMODE_ON,
|
||||
TMRMODE_START,
|
||||
TMRMODE_THR,
|
||||
TMRMODE_THR_REL,
|
||||
TMRMODE_THR_TRG,
|
||||
TMRMODE_COUNT
|
||||
TMRMODE_THR_START,
|
||||
TMRMODE_COUNT,
|
||||
TMRMODE_MAX = TMRMODE_COUNT - 1
|
||||
};
|
||||
|
||||
enum CountDownModes {
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
#define NOBACKUP(...) __VA_ARGS__
|
||||
#endif
|
||||
|
||||
#if defined(PCBTARANIS) || defined(PCBHORUS)
|
||||
#if defined(PCBFRSKY)
|
||||
typedef uint16_t source_t;
|
||||
#else
|
||||
typedef uint8_t source_t;
|
||||
@@ -225,14 +225,14 @@ PACK(struct GVarData {
|
||||
*/
|
||||
|
||||
PACK(struct TimerData {
|
||||
int32_t mode:9; // timer trigger source -> off, abs, stk, stk%, sw/!sw, !m_sw/!m_sw
|
||||
uint32_t start:23;
|
||||
int32_t value:24;
|
||||
uint32_t start:22;
|
||||
int32_t swtch:10;
|
||||
int32_t value:22;
|
||||
uint32_t mode:3; // timer mode (OFF, ON, Start, THs, TH%, THt)
|
||||
uint32_t countdownBeep:2;
|
||||
uint32_t minuteBeep:1;
|
||||
uint32_t persistent:2;
|
||||
int32_t countdownStart:2;
|
||||
uint32_t direction:1;
|
||||
NOBACKUP(char name[LEN_TIMER_NAME]);
|
||||
});
|
||||
|
||||
@@ -430,12 +430,13 @@ PACK(struct ModuleData {
|
||||
};
|
||||
|
||||
union {
|
||||
struct {
|
||||
uint8_t raw[PXX2_MAX_RECEIVERS_PER_MODULE * PXX2_LEN_RX_NAME + 1];
|
||||
NOBACKUP(struct {
|
||||
int8_t delay:6;
|
||||
uint8_t pulsePol:1;
|
||||
uint8_t outputType:1; // false = open drain, true = push pull
|
||||
int8_t frameLength;
|
||||
} ppm;
|
||||
} ppm);
|
||||
NOBACKUP(struct {
|
||||
uint8_t rfProtocolExtra:2;
|
||||
uint8_t spare1:3;
|
||||
@@ -463,6 +464,13 @@ PACK(struct ModuleData {
|
||||
uint8_t receivers; // 5 bits spare
|
||||
char receiverName[PXX2_MAX_RECEIVERS_PER_MODULE][PXX2_LEN_RX_NAME];
|
||||
}) pxx2);
|
||||
#if defined(PCBFLYSKY)
|
||||
NOBACKUP(struct {
|
||||
uint8_t rx_id[4];
|
||||
uint8_t mode;
|
||||
uint8_t rx_freq[2];
|
||||
} flysky);
|
||||
#endif
|
||||
};
|
||||
|
||||
// Helper functions to set both of the rfProto protocol at the same time
|
||||
@@ -526,9 +534,9 @@ typedef uint8_t swarnenable_t;
|
||||
swarnenable_t switchWarningEnable; // TODO remove it in 2.4
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#include "gui/480x272/layout.h"
|
||||
#include "gui/480x272/topbar.h"
|
||||
#if defined(COLORLCD)
|
||||
#include "gui/colorlcd/layout.h"
|
||||
#include "gui/colorlcd/topbar.h"
|
||||
#define LAYOUT_NAME_LEN 10
|
||||
PACK(struct CustomScreenData {
|
||||
char layoutName[LAYOUT_NAME_LEN];
|
||||
@@ -650,10 +658,10 @@ PACK(struct TrainerData {
|
||||
NOBACKUP(TrainerMix mix[4]);
|
||||
});
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#if defined(COLORLCD)
|
||||
#define SPLASH_MODE uint8_t splashSpares:3
|
||||
#else
|
||||
#define SPLASH_MODE int8_t splashMode:3
|
||||
#define SPLASH_MODE uint8_t splashMode:1; uint8_t splashSpare:2
|
||||
#endif
|
||||
|
||||
#if defined(PCBXLITES) || defined(PCBHORUS)
|
||||
@@ -664,7 +672,7 @@ PACK(struct TrainerData {
|
||||
#define GYRO_FIELDS
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#if defined(PCBHORUS) || defined(PCBNV14)
|
||||
#define EXTRA_GENERAL_FIELDS \
|
||||
NOBACKUP(uint8_t auxSerialMode); \
|
||||
swconfig_t switchConfig; \
|
||||
@@ -676,7 +684,7 @@ PACK(struct TrainerData {
|
||||
NOBACKUP(uint8_t spare4:1); \
|
||||
NOBACKUP(uint8_t blOffBright:7); \
|
||||
NOBACKUP(char bluetoothName[LEN_BLUETOOTH_NAME]);
|
||||
#elif defined(PCBTARANIS)
|
||||
#elif defined(PCBTARANIS) || defined(PCBNV14)
|
||||
#if defined(STORAGE_BLUETOOTH)
|
||||
#define BLUETOOTH_FIELDS \
|
||||
uint8_t spare4; \
|
||||
@@ -710,8 +718,8 @@ PACK(struct TrainerData {
|
||||
#define EXTRA_GENERAL_FIELDS
|
||||
#endif
|
||||
|
||||
#if defined(PCBHORUS)
|
||||
#include "gui/480x272/theme.h"
|
||||
#if defined(COLORLCD)
|
||||
#include "theme.h"
|
||||
#define THEME_NAME_LEN 8
|
||||
#define THEME_DATA \
|
||||
NOBACKUP(char themeName[THEME_NAME_LEN]); \
|
||||
@@ -873,6 +881,8 @@ static inline void check_struct()
|
||||
CHKSIZE(CurveData, 4);
|
||||
CHKSIZE(CustomScreenData, 610);
|
||||
CHKSIZE(Topbar::PersistentData, 216);
|
||||
#elif defined(PCBNV14)
|
||||
// TODO
|
||||
#elif defined(PCBSKY9X)
|
||||
CHKSIZE(MixData, 20);
|
||||
CHKSIZE(ExpoData, 17);
|
||||
|
||||
@@ -26,6 +26,10 @@
|
||||
traceCallbackFunc traceCallback = 0;
|
||||
#endif
|
||||
|
||||
#if !defined(SIMU)
|
||||
uint32_t debugCounter1ms = 0;
|
||||
#endif
|
||||
|
||||
#if defined(SIMU)
|
||||
#define PRINTF_BUFFER_SIZE 1024
|
||||
void debugPrintf(const char * format, ...)
|
||||
|
||||
@@ -66,6 +66,12 @@ uint8_t auxSerialTracesEnabled();
|
||||
#define TRACE_WARNING_WP(...) debugPrintf(__VA_ARGS__)
|
||||
#define TRACE_ERROR(...) debugPrintf("-E- " __VA_ARGS__)
|
||||
|
||||
#if defined(DEBUG_WINDOWS)
|
||||
#define TRACE_WINDOWS(f_, ...) debugPrintf((f_ "\r\n"), ##__VA_ARGS__)
|
||||
#else
|
||||
#define TRACE_WINDOWS(...)
|
||||
#endif
|
||||
|
||||
#if defined(TRACE_LUA_INTERNALS_ENABLED)
|
||||
#define TRACE_LUA_INTERNALS(f_, ...) debugPrintf(("[LUA INT] " f_ "\r\n"), ##__VA_ARGS__)
|
||||
|
||||
@@ -423,5 +429,9 @@ extern const char * const debugTimerNames[DEBUG_TIMERS_COUNT];
|
||||
|
||||
#endif //#if defined(DEBUG_TIMERS)
|
||||
|
||||
#if !defined(SIMU)
|
||||
extern uint32_t debugCounter1ms;
|
||||
#endif
|
||||
|
||||
#endif // _DEBUG_H_
|
||||
|
||||
|
||||
@@ -21,6 +21,22 @@
|
||||
#ifndef _DEFINITIONS_H_
|
||||
#define _DEFINITIONS_H_
|
||||
|
||||
#if !defined(M_PI)
|
||||
#define M_PI 3.14159265358979323846 // pi
|
||||
#define M_PI_2 1.57079632679489661923 // pi/2
|
||||
#define M_PI_4 0.785398163397448309616 // pi/4
|
||||
#define M_1_PI 0.318309886183790671538 // 1/pi
|
||||
#define M_2_PI 0.636619772367581343076 // 2/pi
|
||||
#define M_2_SQRTPI 1.12837916709551257390 // 2/sqrt(pi)
|
||||
#define M_SQRT2 1.41421356237309504880 // sqrt(2)
|
||||
#define M_SQRT1_2 0.707106781186547524401 // 1/sqrt(2)
|
||||
#define M_E 2.71828182845904523536 // e
|
||||
#define M_LOG2E 1.44269504088896340736 // log2(e)
|
||||
#define M_LOG10E 0.434294481903251827651 // log10(e)
|
||||
#define M_LN2 0.693147180559945309417 // ln(2)
|
||||
#define M_LN10 2.30258509299404568402 // ln(10)
|
||||
#endif
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
#ifndef _FONTS_H_
|
||||
#define _FONTS_H_
|
||||
|
||||
#include "opentx.h"
|
||||
|
||||
#if defined(COLORLCD)
|
||||
|
||||
#if !defined(BOOT)
|
||||
@@ -31,9 +33,7 @@
|
||||
|
||||
extern const uint16_t * const fontspecsTable[FONT_TABLE_SIZE];
|
||||
extern const uint8_t * fontsTable[FONT_TABLE_SIZE];
|
||||
extern BitmapBuffer * fontCache[2];
|
||||
|
||||
void loadFontCache();
|
||||
void loadFonts();
|
||||
|
||||
#else
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
set(FONT "Roboto/Roboto-Regular")
|
||||
set(FONT_BOLD "Roboto/Roboto-Bold")
|
||||
set(FONT_OFFSET 1)
|
||||
|
||||
#set(FONT "Kanit/Kanit-Regular")
|
||||
#set(FONT_BOLD "Kanit/Kanit-Bold")
|
||||
#set(FONT_OFFSET -2)
|
||||
|
||||
#set(FONT "Ubuntu/Ubuntu-Regular")
|
||||
#set(FONT_BOLD "Ubuntu/Ubuntu-Bold")
|
||||
#set(FONT_OFFSET 1)
|
||||
|
||||
add_truetype_font_target(480x272 tinsize ${FONT} 9 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 smlsize ${FONT} 13 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 stdsize ${FONT} 16 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 stdsizebold ${FONT_BOLD} 16 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 midsize ${FONT} 24 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 dblsize ${FONT_BOLD} 32 ${FONT_OFFSET})
|
||||
add_truetype_font_target(480x272 xxlsize ${FONT_BOLD} 64 ${FONT_OFFSET})
|
||||
|
||||
add_custom_target(ttf_horus_fonts DEPENDS ${ttf_480x272_fonts_targets})
|
||||
|
Before Width: | Height: | Size: 32 KiB |
@@ -1 +0,0 @@
|
||||
0,4,14,25,45,64,89,111,117,129,141,157,175,184,197,207,220,239,258,277,296,315,334,353,372,391,410,420,429,446,465,483,500,513,536,557,579,601,620,639,662,686,696,715,737,755,784,808,831,853,876,897,918,939,961,983,1012,1033,1054,1074,1084,1100,1110,1125,1141,1153,1171,1190,1208,1227,1245,1258,1277,1296,1305,1314,1333,1342,1371,1390,1409,1428,1447,1460,1477,1489,1508,1525,1550,1568,1585,1602,1624,1633,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1651,1669,1687,1705,1717,1735,1758,1776,1799,1818,1840,1859,1880,1898,1915,1933,1947,1964,1981,1999,2011,2029,2048,2067,2086,2105,2129,2144,2163,2184,2206,2227,2247,2268,2291,2303,2322,2346,2369,2391,2413,2435,2456,2480,2499,2517,2535,2554,2577,2600,2623,2641,2660,2678,2696,2714,2725,2744,2763,2780,2797,2814,2837,2859,2878,2897,2921,2944,2965,2985,3005,3023,3041,3060,3083,3106,3129
|
||||
|
Before Width: | Height: | Size: 23 KiB |
@@ -1 +0,0 @@
|
||||
0,4,11,20,36,50,69,85,90,99,108,119,134,140,148,155,166,180,194,208,222,236,250,264,278,292,306,313,319,332,346,360,372,382,399,415,432,449,464,478,495,513,521,535,552,566,588,606,624,640,658,674,689,704,721,737,759,775,791,806,814,825,832,843,855,863,877,891,905,920,934,944,958,972,979,986,1000,1007,1029,1043,1058,1072,1087,1096,1109,1118,1132,1145,1164,1177,1189,1202,1219,1226,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1254,1268,1282,1290,1304,1321,1335,1353,1368,1385,1399,1414,1428,1441,1455,1465,1478,1490,1504,1512,1526,1540,1555,1569,1583,1599,1609,1624,1639,1656,1672,1687,1703,1720,1729,1744,1762,1780,1797,1814,1831,1846,1864,1878,1892,1906,1921,1938,1955,1973,1987,2001,2015,2029,2043,2051,2065,2080,2093,2106,2119,2136,2153,2168,2182,2200,2218,2233,2248,2263,2277,2291,2306,2323,2340,2358
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -1 +0,0 @@
|
||||
0,4,8,13,22,30,41,51,54,60,66,73,81,85,90,94,100,108,116,124,132,141,149,157,165,173,181,185,189,197,205,213,220,226,236,245,254,264,272,280,290,300,305,313,323,331,343,353,363,372,382,391,400,409,418,427,440,449,458,467,472,479,483,489,496,501,509,517,525,533,541,547,555,563,567,571,579,583,595,603,611,619,627,633,641,646,654,661,672,680,687,695,705,709,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,717,725,733,741,746,754,764,772,782,790,799,807,816,824,832,840,846,854,861,869,874,882,890,898,906,914,924,931,939,948,957,966,975,984,994,999,1007,1017,1027,1036,1045,1055,1064,1074,1082,1090,1098,1106,1116,1126,1136,1144,1152,1160,1168,1176,1181,1189,1197,1205,1213,1221,1231,1240,1248,1256,1266,1276,1285,1294,1303,1311,1319,1327,1337,1347,1357
|
||||
|
Before Width: | Height: | Size: 21 KiB |
@@ -1 +0,0 @@
|
||||
0,4,9,15,26,36,49,60,64,71,78,86,96,100,106,111,119,129,139,149,159,169,179,189,199,209,219,224,228,237,247,256,265,272,284,295,306,318,328,338,350,362,367,377,389,399,414,426,438,449,461,472,483,494,505,516,531,542,553,564,570,578,583,591,600,606,616,626,635,645,654,661,671,681,686,691,701,706,721,731,741,751,761,767,776,782,792,801,814,823,832,841,853,858,867,880,893,906,919,932,945,958,971,984,999,1014,1029,1044,1059,1074,1089,1104,1119,1134,1149,1164,1173,1182,1192,1198,1207,1219,1229,1241,1251,1262,1272,1283,1292,1301,1310,1317,1326,1335,1345,1351,1360,1370,1380,1390,1400,1412,1419,1429,1440,1451,1462,1473,1484,1496,1502,1512,1524,1536,1547,1558,1570,1581,1593,1603,1613,1623,1633,1645,1657,1669,1679,1689,1699,1708,1717,1723,1733,1743,1752,1761,1770,1782,1793,1803,1813,1825,1837,1848,1859,1870,1880,1890,1900,1912,1924,1936
|
||||
|
Before Width: | Height: | Size: 19 KiB |
@@ -1 +0,0 @@
|
||||
0,4,9,15,26,36,49,61,65,72,79,88,98,103,110,116,123,133,143,153,163,173,183,193,203,213,223,229,234,243,253,262,271,278,290,301,312,323,333,343,355,367,373,383,395,405,420,432,444,455,467,478,489,500,512,524,539,550,561,572,578,587,592,600,609,615,625,635,644,654,664,671,681,691,696,701,711,716,731,741,751,761,771,778,787,793,803,812,825,835,844,853,864,869,878,891,904,917,930,943,956,969,982,995,1010,1025,1040,1055,1070,1085,1100,1115,1130,1145,1160,1175,1185,1195,1205,1211,1220,1232,1242,1254,1264,1276,1286,1297,1307,1316,1325,1332,1341,1350,1360,1366,1376,1386,1396,1406,1416,1428,1436,1446,1457,1468,1479,1490,1501,1513,1519,1529,1541,1553,1565,1577,1588,1599,1611,1621,1631,1641,1651,1663,1675,1687,1697,1707,1717,1726,1736,1742,1752,1762,1771,1780,1789,1801,1812,1822,1832,1844,1856,1867,1878,1889,1899,1909,1919,1931,1943,1955
|
||||
|
Before Width: | Height: | Size: 7.9 KiB |
@@ -1 +0,0 @@
|
||||
0,4,7,11,18,24,32,39,42,46,50,55,61,64,68,71,76,82,88,94,100,106,112,118,124,130,136,139,142,148,154,160,165,169,176,183,190,197,203,209,216,223,226,232,239,245,254,261,268,275,282,289,295,302,309,316,325,332,339,346,350,355,358,363,369,373,379,385,391,397,403,408,414,420,423,426,432,435,444,450,456,462,468,472,478,482,488,493,501,507,513,519,526,529,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,535,541,547,553,557,563,570,576,583,589,596,602,608,614,620,626,631,637,643,649,653,659,665,671,677,683,690,695,701,707,714,721,728,735,742,746,752,759,766,773,780,787,794,801,807,813,819,825,832,839,846,852,858,864,870,876,880,886,892,898,904,910,917,924,930,936,943,950,956,963,970,976,982,988,995,1002,1009
|
||||
|
Before Width: | Height: | Size: 71 KiB |
@@ -1 +0,0 @@
|
||||
0,4,22,44,83,121,169,212,223,246,270,300,336,353,379,399,424,462,500,538,576,614,652,690,728,766,804,823,841,875,913,947,980,1006,1050,1092,1135,1178,1215,1251,1296,1342,1362,1399,1442,1478,1535,1581,1626,1668,1713,1755,1795,1836,1879,1922,1979,2021,2062,2102,2121,2151,2170,2199,2229,2251,2286,2323,2357,2394,2430,2454,2492,2529,2547,2565,2601,2619,2675,2712,2749,2786,2823,2847,2881,2904,2941,2974,3022,3056,3089,3123,3166,3183,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3217,3253,3289,3324,3346,3380,3424,3459,3504,3541,3584,3621,3662,3698,3732,3766,3793,3827,3860,3895,3917,3953,3990,4027,4064,4101,4146,4174,4211,4251,4294,4336,4376,4417,4461,4484,4521,4567,4612,4655,4698,4741,4782,4828,4865,4900,4935,4972,5016,5060,5105,5140,5177,5212,5246,5282,5303,5340,5377,5411,5445,5479,5523,5566,5603,5640,5686,5731,5771,5811,5851,5886,5921,5958,6002,6046,6091
|
||||
@@ -1 +1 @@
|
||||
add_subdirectory(480x272)
|
||||
add_subdirectory(truetype)
|
||||
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,24 @@
|
||||
set(FONT "Roboto/Roboto-Regular")
|
||||
set(FONT_BOLD "Roboto/Roboto-Bold")
|
||||
set(FONT_OFFSET 1)
|
||||
|
||||
#set(FONT "Kanit/Kanit-Regular")
|
||||
#set(FONT_BOLD "Kanit/Kanit-Bold")
|
||||
#set(FONT_OFFSET -2)
|
||||
|
||||
#set(FONT "Ubuntu/Ubuntu-Regular")
|
||||
#set(FONT_BOLD "Ubuntu/Ubuntu-Bold")
|
||||
#set(FONT_OFFSET 1)
|
||||
|
||||
add_truetype_font_target(9 ${FONT} 9 ${FONT_OFFSET})
|
||||
add_truetype_font_target(13 ${FONT} 13 ${FONT_OFFSET})
|
||||
add_truetype_font_target(15 ${FONT} 15 ${FONT_OFFSET})
|
||||
add_truetype_font_target(16 ${FONT} 16 ${FONT_OFFSET})
|
||||
add_truetype_font_target(bold16 ${FONT_BOLD} 16 ${FONT_OFFSET})
|
||||
add_truetype_font_target(17 ${FONT} 17 ${FONT_OFFSET})
|
||||
add_truetype_font_target(bold17 ${FONT_BOLD} 17 ${FONT_OFFSET})
|
||||
add_truetype_font_target(24 ${FONT} 24 ${FONT_OFFSET})
|
||||
add_truetype_font_target(32 ${FONT_BOLD} 32 ${FONT_OFFSET})
|
||||
add_truetype_font_target(64 ${FONT_BOLD} 64 ${FONT_OFFSET})
|
||||
|
||||
add_custom_target(truetype_fonts DEPENDS ${truetype_fonts_targets})
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1 @@
|
||||
17,0,4,9,15,24,33,44,54,58,64,70,77,86,90,95,100,107,116,125,134,143,152,161,170,179,188,197,202,206,214,223,231,239,245,255,265,275,285,294,303,313,324,329,338,348,356,369,380,390,400,410,419,428,437,447,457,470,480,489,498,503,510,515,522,529,535,544,553,561,570,578,584,593,602,607,613,621,626,639,648,657,666,675,681,689,695,704,712,723,731,739,747,757,762,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,770,778,786,795,801,809,819,828,838,847,857,866,875,883,891,899,905,913,921,930,935,943,952,961,970,979,989,995,1004,1013,1023,1032,1041,1050,1060,1065,1074,1085,1095,1105,1115,1125,1134,1145,1154,1163,1172,1181,1191,1201,1211,1220,1229,1238,1246,1254,1259,1268,1277,1285,1293,1301,1311,1321,1330,1338,1349,1359,1368,1377,1386,1395,1404,1413,1423,1433,1443
|
||||