Implement UI scaling and more (#501)

**New Features**
 * Runtime font accessors and new symbol fonts for text, launcher, statusbar, and shared icons.
 * Added font height base setting to device.properties
 * Text fonts now have 3 sizes: small, default, large

**Improvements**
 * Renamed `UiScale` to `UiDensity`
 * Statusbar, toolbar and many UI components now compute heights and spacing from fonts/density.
 * SSD1306 initialization sequence refined for more stable startup.
 * Multiple image assets replaced by symbol-font rendering.
 * Many layout improvements related to density, font scaling and icon scaling
 * Updated folder name capitalization for newer style
This commit is contained in:
Ken Van Hoeylandt
2026-02-15 01:41:47 +01:00
committed by GitHub
parent 72c9b2b113
commit 9a11e6f47b
264 changed files with 5923 additions and 494 deletions
@@ -0,0 +1,32 @@
#pragma once
#include <tactility/drivers/gpio_descriptor.h>
#include <driver/gpio.h>
/**
* Releases the given pin descriptor and sets the pointer value to NULL.
* If the descriptor pointer is null, do nothing.
*/
void release_pin(GpioDescriptor** gpio_descriptor);
/**
* Acquires the pin descriptor for the given pin spec.
* If the pin spec is invalid, the pointer is set to null.
* @return true if the pin was acquired successfully
*/
bool acquire_pin_or_set_null(const GpioPinSpec& pin_spec, GpioDescriptor** gpio_descriptor);
/**
* Safely acquire the native pin value.
* Set to GPIO_NUM_NC if the descriptor is null.
* @param[in] descriptor Pin descriptor to acquire
* @return Native pin number
*/
gpio_num_t get_native_pin(GpioDescriptor* descriptor);
/**
* Returns true if the given pin is inverted.
* @param[in] descriptor Pin descriptor to check, nullable
*/
bool is_pin_inverted(GpioDescriptor* descriptor);