## Summary * Increased `PNG_MAX_BUFFERED_PIXELS` from 6402 to 16416 in `platformio.ini` to support up to 2048px wide RGBA images * adds a check to abort decoding and log an error if the required PNG scanline buffer exceeds the configured `PNG_MAX_BUFFERED_PIXELS`, preventing possible buffer overruns. * fixes https://github.com/crosspoint-reader/crosspoint-reader/issues/993 --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**< YES >**_
93 lines
2.5 KiB
INI
93 lines
2.5 KiB
INI
[platformio]
|
|
default_envs = default
|
|
|
|
[crosspoint]
|
|
version = 1.0.0
|
|
|
|
[base]
|
|
platform = espressif32 @ 6.12.0
|
|
board = esp32-c3-devkitm-1
|
|
framework = arduino
|
|
monitor_speed = 115200
|
|
upload_speed = 921600
|
|
check_tool = cppcheck
|
|
check_flags = --enable=all --suppress=missingIncludeSystem --suppress=unusedFunction --suppress=unmatchedSuppression --suppress=*:*/.pio/* --inline-suppr
|
|
check_skip_packages = yes
|
|
|
|
board_upload.flash_size = 16MB
|
|
board_upload.maximum_size = 16777216
|
|
board_upload.offset_address = 0x10000
|
|
|
|
build_flags =
|
|
-DARDUINO_USB_MODE=1
|
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
|
-DMINIZ_NO_ZLIB_COMPATIBLE_NAMES=1
|
|
-DMINIZ_NO_STDIO=1
|
|
-DEINK_DISPLAY_SINGLE_BUFFER_MODE=1
|
|
-DDISABLE_FS_H_WARNING=1
|
|
# https://libexpat.github.io/doc/api/latest/#XML_GE
|
|
-DXML_GE=0
|
|
-DXML_CONTEXT_BYTES=1024
|
|
-std=gnu++2a
|
|
# Enable UTF-8 long file names in SdFat
|
|
-DUSE_UTF8_LONG_NAMES=1
|
|
# Increase PNG scanline buffer to support up to 2048px wide images
|
|
# Default is (320*4+1)*2=2562, we need more for larger images
|
|
-DPNG_MAX_BUFFERED_PIXELS=16416
|
|
|
|
build_unflags =
|
|
-std=gnu++11
|
|
|
|
; Board configuration
|
|
board_build.flash_mode = dio
|
|
board_build.flash_size = 16MB
|
|
board_build.partitions = partitions.csv
|
|
|
|
extra_scripts =
|
|
pre:scripts/build_html.py
|
|
pre:scripts/gen_i18n.py
|
|
|
|
; Libraries
|
|
lib_deps =
|
|
BatteryMonitor=symlink://open-x4-sdk/libs/hardware/BatteryMonitor
|
|
InputManager=symlink://open-x4-sdk/libs/hardware/InputManager
|
|
EInkDisplay=symlink://open-x4-sdk/libs/display/EInkDisplay
|
|
SDCardManager=symlink://open-x4-sdk/libs/hardware/SDCardManager
|
|
bblanchon/ArduinoJson @ 7.4.2
|
|
ricmoo/QRCode @ 0.0.1
|
|
bitbank2/PNGdec @ ^1.0.0
|
|
links2004/WebSockets @ 2.7.3
|
|
|
|
[env:default]
|
|
extends = base
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-dev\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=2 ; Set log level to debug for development builds
|
|
|
|
|
|
[env:gh_release]
|
|
extends = base
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=0 ; Set log level to error for release builds
|
|
|
|
[env:gh_release_rc]
|
|
extends = base
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-rc+${sysenv.CROSSPOINT_RC_HASH}\"
|
|
-DENABLE_SERIAL_LOG
|
|
-DLOG_LEVEL=1 ; Set log level to info for release candidate builds
|
|
|
|
[env:slim]
|
|
extends = base
|
|
build_flags =
|
|
${base.build_flags}
|
|
-DCROSSPOINT_VERSION=\"${crosspoint.version}-slim\"
|
|
; serial output is disabled in slim builds to save space
|
|
-UENABLE_SERIAL_LOG
|
|
|