HAL Adaptor
Component registry: espressif/brookesia_hal_adaptor
Public header:
#include "brookesia/hal_adaptor.hpp"
Overview
brookesia_hal_adaptor is the board-level HAL adaptor of ESP-Brookesia. Based on the device/interface model in HAL Interface, it initialises real peripherals via esp_board_manager and registers audio, display, and storage capabilities into the global HAL table for upper layers to discover by name.
Features
Built-In Devices
The component ships three board-level devices, each registered as a singleton; after initialisation they publish their interfaces into the global table:
Device class (logical name) |
Registered interface implementations |
Notes |
|---|---|---|
|
|
Playback via board Audio DAC; recording via Audio ADC. Each sub-implementation can be disabled in Kconfig; requires board capability |
|
|
LEDC backlight, LCD panel, and I2C touch can each be disabled; require |
|
|
General filesystem implementation; supports SPIFFS ( |
Configuration
Each sub-interface can be enabled or disabled individually under ESP-Brookesia: Hal Adaptor Configurations in menuconfig; default capability parameters (volume range, recording format, backlight range, etc.) are also adjustable there, and are mapped to compile-time macros by macro_configs.h.
To override default capability parameters before initialisation, call set_codec_player_info, set_codec_recorder_info, or set_ledc_backlight_info on the corresponding device singleton. Calls after initialisation typically have no effect.
API Reference
Header File
Classes
-
class DisplayDevice : public esp_brookesia::hal::Device
Board-backed display device: registers panel, touch, and backlight HAL interfaces after board bring-up.
Obtained via get_instance(). Not copyable or movable.
Public Functions
-
bool set_ledc_backlight_info(DisplayBacklightIface::Info info)
Overrides default static backlight capability information used when constructing the LEDC backlight implementation.
- Parameters
info – [in] Backlight capability descriptor (brightness range and default).
- Returns
trueif the value was stored;falseon invalid input or if backlight is already initialized.
Public Static Functions
-
static inline DisplayDevice &get_instance()
Returns the process-wide singleton display device.
- Returns
Reference to the unique DisplayDevice instance.
Public Static Attributes
-
static constexpr const char *DEVICE_NAME = "Display"
Logical device name passed to the base Device constructor.
-
static constexpr const char *LEDC_BACKLIGHT_IMPL_NAME = "Display:LedcBacklight"
Registry key for the LEDC-based backlight HAL implementation (
"Display:LedcBacklight").
-
static constexpr const char *LCD_PANEL_IMPL_NAME = "Display:LcdPanel"
Registry key for the LCD panel HAL implementation (
"Display:LcdPanel").
-
static constexpr const char *LCD_TOUCH_IMPL_NAME = "Display:LcdTouch"
Registry key for the LCD touch HAL implementation (
"Display:LcdTouch").
-
bool set_ledc_backlight_info(DisplayBacklightIface::Info info)
Header File
Classes
-
class AudioDevice : public esp_brookesia::hal::Device
Board-backed audio device: registers codec player and recorder HAL interfaces after board bring-up.
Obtained via get_instance(). Not copyable or movable.
Public Functions
-
bool set_codec_player_info(AudioCodecPlayerIface::Info info)
Overrides default static playback capability information used when constructing the codec player implementation.
- Parameters
info – [in] Codec player capability descriptor (volume range and default).
- Returns
trueif the value was stored;falseon invalid input or if the player is already initialized.
-
bool set_codec_recorder_info(AudioCodecRecorderIface::Info info)
Overrides default static recording capability information used when constructing the codec recorder implementation.
- Parameters
info – [in] Codec recorder capability descriptor (format, channels, gains, etc.).
- Returns
trueif the value was stored;falseon invalid input or if the recorder is already initialized.
Public Static Functions
-
static inline AudioDevice &get_instance()
Returns the process-wide singleton audio device.
- Returns
Reference to the unique AudioDevice instance.
Public Static Attributes
-
static constexpr const char *DEVICE_NAME = "Audio"
Logical device name passed to the base Device constructor.
-
static constexpr const char *CODEC_PLAYER_IMPL_NAME = "Audio:CodecPlayer"
Registry key for the codec player HAL implementation (
"Audio:CodecPlayer").
-
static constexpr const char *CODEC_RECORDER_IMPL_NAME = "Audio:CodecRecorder"
Registry key for the codec recorder HAL implementation (
"Audio:CodecRecorder").
-
bool set_codec_player_info(AudioCodecPlayerIface::Info info)
Header File
Classes
-
class StorageDevice : public esp_brookesia::hal::Device
Board-backed storage device: publishes a general filesystem HAL interface after bring-up.
Obtained via get_instance(). Not copyable or movable.
Public Static Functions
-
static inline StorageDevice &get_instance()
Returns the process-wide singleton storage device.
- Returns
Reference to the unique StorageDevice instance.
-
static inline StorageDevice &get_instance()