Files
firmware/src/graphics/ScreenFonts.h

106 lines
2.8 KiB
C
Raw Normal View History

#pragma once
#ifdef OLED_PL
#include "graphics/fonts/OLEDDisplayFontsPL.h"
#endif
#ifdef OLED_RU
#include "graphics/fonts/OLEDDisplayFontsRU.h"
#endif
#ifdef OLED_UA
#include "graphics/fonts/OLEDDisplayFontsUA.h"
#endif
#ifdef OLED_CS
#include "graphics/fonts/OLEDDisplayFontsCS.h"
#endif
#if defined(CROWPANEL_ESP32S3_5_EPAPER) && defined(USE_EINK)
2025-03-31 03:37:08 +02:00
#include "graphics/fonts/EinkDisplayFonts.h"
#endif
#ifdef OLED_PL
#define FONT_SMALL_LOCAL ArialMT_Plain_10_PL
#else
#ifdef OLED_RU
#define FONT_SMALL_LOCAL ArialMT_Plain_10_RU
#else
#ifdef OLED_UA
#define FONT_SMALL_LOCAL ArialMT_Plain_10_UA // Height: 13
#else
#ifdef OLED_CS
#define FONT_SMALL_LOCAL ArialMT_Plain_10_CS
#else
#define FONT_SMALL_LOCAL ArialMT_Plain_10 // Height: 13
#endif
#endif
#endif
#endif
#ifdef OLED_PL
#define FONT_MEDIUM_LOCAL ArialMT_Plain_16_PL // Height: 19
#else
#ifdef OLED_RU
#define FONT_MEDIUM_LOCAL ArialMT_Plain_16_RU // Height: 19
#else
#ifdef OLED_UA
#define FONT_MEDIUM_LOCAL ArialMT_Plain_16_UA // Height: 19
#else
#ifdef OLED_CS
#define FONT_MEDIUM_LOCAL ArialMT_Plain_16_CS
#else
#define FONT_MEDIUM_LOCAL ArialMT_Plain_16 // Height: 19
#endif
#endif
#endif
#endif
#ifdef OLED_PL
#define FONT_LARGE_LOCAL ArialMT_Plain_24_PL // Height: 28
#else
#ifdef OLED_RU
#define FONT_LARGE_LOCAL ArialMT_Plain_24_RU // Height: 28
#else
#ifdef OLED_UA
#define FONT_LARGE_LOCAL ArialMT_Plain_24_UA // Height: 28
#else
#ifdef OLED_CS
#define FONT_LARGE_LOCAL ArialMT_Plain_24_CS // Height: 28
#else
#define FONT_LARGE_LOCAL ArialMT_Plain_24 // Height: 28
#endif
#endif
#endif
#endif
#if (defined(USE_EINK) || defined(ILI9341_DRIVER) || defined(ILI9342_DRIVER) || defined(ST7701_CS) || defined(ST7735_CS) || \
adding support for the ST7796 + creating a new variant of the T-beam (#6575) * remove duplicate HAS_LP5562 introduced by #6422 * add ST7796 * changes to get display centered+lib update * seperated from tbeam * forgot the simple scan case * lowered speeds to 1/4 * added SPI Speed to constructor+ cleaned up variant.h * even slower speeds.... * add ST7796 * changes to get display centered+lib update * seperated from tbeam * forgot the simple scan case * lowered speeds to 1/4 * added SPI Speed to constructor+ cleaned up variant.h * even slower speeds.... * changed variant name to tbeam-displayshield * modified variant.h and merged ini file+testing on lower spi frequency for the lora module, display shield pumps out EMI? * try higher speeds + HSPI * cleanup of redundant code * refelct changes? * trunk fmt * testing touchscreen code * further testing * changed to sensorlib 0.3.1 * i broke it , dont know how to fix at the moment will investigate * add -1 functionality for touch IRQ * revert to working example? * it works.... is pressed was not working properly * working touchscreen but gestures not moving display * swap XY+ mirror X * cleanup + addition of defines for on screen keyboard and canned message module * removed debug lines, disabled bluetooth for now because of stack smashing protect failure * reverted the revert #6640 + increased speed, bleutooth is stable now on reconnection cold booth etc , GPS is still not working though * remove debug + add fixed baudrate for gps * fmt * revert NIMble * changed display library to meshtastic org * removed baudrate of 115200 and some commented out code * Correct spelling Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * display speed x10 * resolve conflicts * undo * revert speed increase CPU * add SCREEN_TRANSITION_FRAMERATE 5 * spi speed increase of the display * using the original touchscreen implementation * removal of H file line * add USE_ST7796 to missing places * removed is pressed + interrupt * revert changes of settings.json * update to screen.cpp * test identification of CST226 and CST328 * Update src/configuration.h typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * made changes to detection because it was completely wrong, CST226SE has 2 posible adresses * add merge queue * try vars * kerning in yaml. * update comment * lint etc * touching to check grandfathering * explicit ignores * add WIP for Unit C6L (#7433) * add WIP for Unit C6L * adapt to new config structure * Add c6l BLE and screen support (#7991) * Minor c6l fix * Move out of PRIVATE_HW --------- Co-authored-by: Austin <vidplace7@gmail.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz> Co-authored-by: Jason P <Xaositek@users.noreply.github.com> Co-authored-by: Markus <Links2004@users.noreply.github.com> * Update Adafruit BusIO to v1.17.3 (#8018) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update actions/checkout action to v5 (#8020) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update actions/setup-python action to v6 (#8023) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Upgrade trunk (#8025) Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> * Update actions/download-artifact action to v5 (#8021) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix init for InputEvent (#8015) * Automated version bumps (#8028) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> * Allow Left / Right Events for selection and improve encoder responsives (#8016) * Allow Left / Right Events for selection and improve encoder responsives * add define for ROTARY_DELAY * T-Lora Pager: Support LR1121 and SX1280 models (#7956) * T-Lora Pager: Support LR1121 and SX1280 models * Remove ifdefs * (resubmission) Manual GitHub actions to allow building one target or arch (#7997) * Reset the modified files * Fix some changes * Fix some changes * Trunk. That is all. --------- Co-authored-by: Tom <116762865+Nestpebble@users.noreply.github.com> * BaseUI Show/Hide Frame Functionality (#7382) * Rename System Frame (from Memory) in code base * Create menu options to Show/Hide frames: Node Lists, Bearings, Position, LoRa, Clock and Favorites frames * Move Region Picker into submenu * Tweak wording for Send Position vs Node Info if the device has GPS * Update actions/checkout action to v5 (#8031) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update actions/download-artifact action to v5 (#8032) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update actions/setup-python action to v6 (#8033) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Phone GPS display on Position Screen for BaseUI (#7875) * Phone GPS display on Position Screen This is a PR to show when a phone shares GPS location with the node so you can reliably know what coordinate is being shared with the Mesh. * Merge pull request #8004 from compumike/compumike/debug-heap-add-free-heap-debugging-to-all-log-lines When `DEBUG_HEAP` is defined, add free heap bytes to every log line in `RedirectablePrint::log_to_serial` * Feature: Seamless Cross-Preset Communication via UDP Multicast Bridging (#7753) * Added compatibility between nodes on different Presets through `Mesh via UDP` * Optimize multicast handling and channel mapping - FloodingRouter: remove redundant UDP-encrypted rebroadcast suppression. - Router: guard multicast fallback with HAS_UDP_MULTICAST and map fallback-decoded packets to the local default channel via isDefaultChannel() - UdpMulticastHandler: set transport_mechanism only after successful decode * trunk fmt * Move setting transport mechanism. --------- Co-authored-by: GUVWAF <thijs@havinga.eu> * Auto-favorite remote admin node * Merge pull request #7873 from compumike/compumike/client-base-role Add `CLIENT_BASE` role: `ROUTER` for favorites, `CLIENT` otherwise (for attic/roof nodes!) * Fixes * BaseUI Updates (#7787) * Account for low resolution wide screen OLEDs * Allow picking of Device Role and new Display Formatter for Device Role * Add remainder of client roles to display formatter * Don't update the role unless you pick a value * Mascots are fun * Fix warnings during compile time * Improve some menus * Mascots need to work everywhere * Update Chirpy image * Fix Trunk * Update protobufs * Add date to Clock screen * Analog clocks love dates too * Finalize date moves for analog clock * Added Last Coordinate counter to Position screen (#7865) Adding a counter to show the last time a GPS coordinate was detected to ensure the user is aware how long since the coordinate updated or to identify any errors. * Fix * Portduino config refactor (#7796) * Start portduino_config refactor * refactor GPIOs to new portduino_config * More portduino_config work * More conversion to portduino_config * Finish portduino_config transition * trunk * yaml output work * Simplify the GPIO config * Trunk * updated shebang to use a more standard path for bash (#7922) Signed-off-by: Trenton VanderWert <trenton.vanderwert@gmail.com> * Show GPS Date properly in drawCommonHeader (#7887) * Commit good code that is sustainable * Fix new build errors * BaseUI Updates (#7787) * Account for low resolution wide screen OLEDs * Allow picking of Device Role and new Display Formatter for Device Role * Add remainder of client roles to display formatter * Don't update the role unless you pick a value * Mascots are fun * Fix warnings during compile time * Improve some menus * Mascots need to work everywhere * Update Chirpy image * Fix Trunk * Update protobufs * Add date to Clock screen * Analog clocks love dates too * Finalize date moves for analog clock * Add formatting and menu picking for other GPS format options (#7974) * Add back options for other GPS format options * Rename variables and don't overlap elements * Fix default value * Should probably add a menu while I'm here! * Shorten names just a bit to fit on screens * Fix off by one * Labels try to make things better * Missed a label * Update protobufs (#8038) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> * Add formatting and menu picking for other GPS format options (#7974) * Add back options for other GPS format options * Rename variables and don't overlap elements * Fix default value * Should probably add a menu while I'm here! * Shorten names just a bit to fit on screens * Fix off by one * Labels try to make things better * Missed a label * Add a new GPS model CM121. (#7852) * Add a new GPS model CM121. * Add CM121 to Unicore. * Trunk fixes, remove unneded NMEA lines --------- Co-authored-by: Tom Fifield <tom@tomfifield.net> * (resubmission) Manual GitHub actions to allow building one target or arch (#7997) * Reset the modified files * Fix some changes * Fix some changes * Trunk. That is all. --------- Co-authored-by: Tom <116762865+Nestpebble@users.noreply.github.com> * PPA: Enable Ubuntu 25.10 (questing) (#7940) * Update Protobuf usage, add MLS, fix clock (#8041) * Update protobufs (#8045) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> * Fix icon * C6l fixes (#8047) * fix build with HAS_TELEMETRY 0 (#8051) * Make sure to ACK ACKs/replies if next-hop routing is used (#8052) * Make sure to ACK ACKs/replies if next-hop routing is used To stop their retransmissions; hop limit of 0 is enough * Update src/mesh/ReliableRouter.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * move HTTP contentTypes to Flash - saves 768 Bytes of RAM (#8055) * Use `lora.use_preset` config to get name (#8057) * Update RadioLib to v7.3.0 (#8065) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Fix Rotary Encoder Button (#8001) this fixes the Rotary Encoder Button, currenlty its not working at all. Currently the action `ROTARY_ACTION_PRESSED` is only triggerd with a IRQ on RISING, which results in nothing since the function detects the "not longer" pressed button --> no action. the `ROTARY_ACTION_PRESSED` implementation needs to be called on both edges (on press and release of the button) changing the interupt setting to `CHANGE` fixes the problem. * Add another seeed_xiao_nrf52840_kit build environment for I2C pinout (#8036) * Update platformio.ini * Remove some more extraneous lines * Add heltec_v4 board. (#7845) * add heltec_v4 board. * Update variants/esp32s3/heltec_v4/platformio.ini Co-authored-by: Austin <vidplace7@gmail.com> * Limit the maximum output power. * Trunk fixes Fixes formatting to match meshtastic trunk linter. * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Apply suggestion from @Copilot Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Austin <vidplace7@gmail.com> Co-authored-by: Tom Fifield <tom@tomfifield.net> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Upgrade trunk (#8078) Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> * portduino bump to fix gpiod bug (#8083) An earlier portduino causes problems with initializing gpiod lines. This pulls in the fix. * Handle ext. notification module things even if not enabled (#8089) * tlora-pager wake on button, and kb backlight toggling (#8090) * Try-fix: Unstick that PhoneAPI state (#8091) Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz> * Also pull a deviceID from esp32c6 devices (#8092) * Remove line from BLE pin screen, to make pin readible on tiny screens * Fix build errors (#8067) * Heltec V4 is 16mb * Clear lasttoradio on BLE disconnect (#8095) * On disconnect, clear the lastToRadio buffer * Move it, bucko! * Revert "Fix build errors (#8067)" This reverts commit d998f70b5633e8b2f88823cfb73761625bbc3423. * Automated version bumps (#8100) Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> * Upgrade trunk (#8094) Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> * Update Adafruit BusIO to v1.17.4 (#8098) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Add three expansion screens for heltec mesh solar. (#7995) * Add three expansion screens for heltec mesh solar. * delete whitespace Update variants/nrf52840/heltec_mesh_solar/variant.h Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * delete whitespace Update variants/nrf52840/heltec_mesh_solar/platformio.ini Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com> * Trunk --------- Signed-off-by: Trenton VanderWert <trenton.vanderwert@gmail.com> Co-authored-by: Thomas Göttgens <tgoettgens@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com> Co-authored-by: Dane Evans <dane@goneepic.com> Co-authored-by: Austin <vidplace7@gmail.com> Co-authored-by: Jonathan Bennett <jbennett@incomsystems.biz> Co-authored-by: Jason P <Xaositek@users.noreply.github.com> Co-authored-by: Markus <Links2004@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> Co-authored-by: Markus <974709+Links2004@users.noreply.github.com> Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> Co-authored-by: WillyJL <me@willyjl.dev> Co-authored-by: Tom <116762865+NomDeTom@users.noreply.github.com> Co-authored-by: Tom <116762865+Nestpebble@users.noreply.github.com> Co-authored-by: Jason P <applewiz@mac.com> Co-authored-by: HarukiToreda <116696711+HarukiToreda@users.noreply.github.com> Co-authored-by: Michael <michael.overhorst@gmail.com> Co-authored-by: GUVWAF <thijs@havinga.eu> Co-authored-by: Trent V. <trenton.vanderwert@gmail.com> Co-authored-by: Quency-D <55523105+Quency-D@users.noreply.github.com> Co-authored-by: Tom Fifield <tom@tomfifield.net> Co-authored-by: GUVWAF <78759985+GUVWAF@users.noreply.github.com>
2025-11-27 13:18:52 +01:00
defined(ST7789_CS) || defined(USE_ST7789) || defined(HX8357_CS) || defined(ILI9488_CS) || defined(ST7796_CS) || defined(USE_ST7796)) && \
!defined(DISPLAY_FORCE_SMALL_FONTS)
// The screen is bigger so use bigger fonts
#define FONT_SMALL FONT_MEDIUM_LOCAL // Height: 19
#define FONT_MEDIUM FONT_LARGE_LOCAL // Height: 28
#define FONT_LARGE FONT_LARGE_LOCAL // Height: 28
#elif defined(M5STACK_UNITC6L)
#define FONT_SMALL FONT_SMALL_LOCAL // Height: 13
#define FONT_MEDIUM FONT_SMALL_LOCAL // Height: 13
#define FONT_LARGE FONT_SMALL_LOCAL // Height: 13
#else
#define FONT_SMALL FONT_SMALL_LOCAL // Height: 13
#define FONT_MEDIUM FONT_MEDIUM_LOCAL // Height: 19
#define FONT_LARGE FONT_LARGE_LOCAL // Height: 28
#endif
#if defined(CROWPANEL_ESP32S3_5_EPAPER) && defined(USE_EINK)
#undef FONT_SMALL
#undef FONT_MEDIUM
#undef FONT_LARGE
2025-03-31 03:37:08 +02:00
#define FONT_SMALL Monospaced_plain_30
#define FONT_MEDIUM Monospaced_plain_30
#define FONT_LARGE Monospaced_plain_30
#endif
#define _fontHeight(font) ((font)[1] + 1) // height is position 1
#define FONT_HEIGHT_SMALL _fontHeight(FONT_SMALL)
#define FONT_HEIGHT_MEDIUM _fontHeight(FONT_MEDIUM)
#define FONT_HEIGHT_LARGE _fontHeight(FONT_LARGE)