* refactor: Remove hardcoded loop delay for GIF playback in LcdDisplay class
* chore: Update esp-ml307 and uart-eth-modem component versions in idf_component.yml
- Bump esp-ml307 version from ~3.6.3 to ~3.6.4
- Update uart-eth-modem version from ~0.3.1 to ~0.3.2
* feat: Add PrintPmLocks method to SystemInfo class
- Introduced PrintPmLocks method to display power management locks using esp_pm_dump_locks.
- Updated system_info.h to declare the new method.
* refactor: Streamline audio codec initialization and enablement
- Removed redundant channel enable checks from AudioCodec::Start.
- Added channel enablement in CreateDuplexChannels for various audio codecs.
- Implemented EnableInput and EnableOutput methods in NoAudioCodec for better control over input/output states.
* refactor: Delay audio success sound playback until after activation completion
- Moved the success sound playback to a scheduled task to ensure it occurs after the activation process is complete.
- This change improves the responsiveness of the application during activation events.
* refactor: Update camera integration from EspVideo to Esp32Camera
- Replaced EspVideo with Esp32Camera for improved camera configuration and initialization.
- Streamlined camera setup by utilizing a new configuration structure for better clarity and maintainability.
- Updated README.md to remove outdated camera sensor configuration instructions.
* refactor: Update audio demuxing process in AudioService
- Replaced the existing demuxer instance with a local unique pointer in the PlaySound method for better memory management.
- Moved the OnDemuxerFinished callback setup into the PlaySound method to ensure it is correctly associated with the new demuxer instance.
- Removed the member variable demuxer_ from AudioService to streamline the class structure.
* Update project version to 2.2.1 and refactor camera component handling
- Incremented project version from 2.2.0 to 2.2.1 in CMakeLists.txt.
- Removed legacy esp32_camera component and replaced it with esp_video for ESP32-S3 and ESP32-P4 boards.
- Updated board implementations to utilize the new esp_video component, ensuring compatibility and improved functionality.
- Cleaned up Kconfig options related to camera selection, streamlining the configuration process.
- Enhanced camera initialization logic across various board files to support the new component structure.
* Refactor camera handling in AtomS3R CAM/M12 EchoBase board
- Replaced the legacy EspVideo component with the new Esp32Camera class for improved camera functionality.
- Updated camera initialization logic to utilize a more structured configuration approach, enhancing clarity and maintainability.
- Removed outdated comments and code related to the previous camera implementation in the README file.
* Update camera configuration for atoms3r-cam-m12-echo-base
- Removed outdated camera configuration options from config.json to streamline the setup.
- Retained essential partition table configuration for improved clarity.
* Enhance Esp32Camera functionality and memory management
- Added esp_timer.h for improved timing functionality.
- Streamlined camera initialization by removing redundant frame buffer setup and logging.
- Improved memory allocation for JPEG encoding and added error handling for unsupported pixel formats.
- Updated comments for clarity and consistency, ensuring better understanding of the code flow.
* Upgrade component version
* update fonts component version
* Handle OTA error code
* Update project version to 2.1.0 and add device state machine implementation
- Upgrade esp-wifi-connect to 3.0.0, allowing reconfiguring wifi without rebooting
- Introduce device state machine with state change notification in new files
- Remove obsolete device state event files
- Update application logic to utilize new state machine
- Minor adjustments in various board implementations for state handling
* fix compile errors
* Refactor power saving mode implementation to use PowerSaveLevel enumeration
- Updated Application class to replace SetPowerSaveMode with SetPowerSaveLevel, allowing for LOW_POWER and PERFORMANCE settings.
- Modified various board implementations to align with the new power save level structure.
- Ensured consistent handling of power save levels across different board files, enhancing code maintainability and clarity.
* Refactor power save level checks across multiple board implementations
- Updated the condition for power save level checks in various board files to ensure that the power save timer only wakes up when the level is not set to LOW_POWER.
- Improved consistency in handling power save levels, enhancing code clarity and maintainability.
* Refactor EnterWifiConfigMode calls in board implementations
- Updated calls to EnterWifiConfigMode to use the appropriate instance reference (self or board) across multiple board files.
- Improved code consistency and clarity in handling device state during WiFi configuration mode entry.
* Add cellular modem event handling and improve network status updates
- Introduced new network events for cellular modem operations, including detecting, registration errors, and timeouts.
- Enhanced the Application class to handle different network states and update the display status accordingly.
- Refactored Ml307Board to implement a callback mechanism for network events, improving modularity and responsiveness.
- Updated dual_network_board and board headers to support new network event callbacks, ensuring consistent handling across board implementations.
* update esp-wifi-connect version
* Update WiFi configuration tool messages across multiple board implementations to clarify user actions
* refactor: migrate camera module to esp-video library
* refactor: migrate boards to esp-video API (1/2)
* refactor: migrate boards to esp-video API (2/2)
* fix: use ESP-IDF 5.5
* refactor: migrate the JPEG encoder to `esp_new_jpeg`
* feat: add YUV422 support
* feat: improve pixelformat and device selection process
* feat: use ESP32-P4 Hardware JPEG Encoder