Enable CI gate: fix Doxygen and add workflow.
Clear doc-block warnings so doxygen exits 0, add GitHub Actions for host tests, Doxygen, and manual sync, and document CI in the manual. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -21,8 +21,8 @@ namespace core {
|
||||
*
|
||||
* @dname AudioEnhancements
|
||||
* @return n/a (type)
|
||||
* @pubstate Mapped to PEQ bands at runtime (Chapter~\ref{ch:sigmastudio}).
|
||||
* No dedicated SigmaStudio blocks; see \texttt{applyEnhancementsToEq}.
|
||||
* @pubstate Mapped to PEQ bands at runtime (manual chapter sigmastudio).
|
||||
* No dedicated SigmaStudio blocks; see \c applyEnhancementsToEq.
|
||||
*
|
||||
* @author Michele Bigi
|
||||
* @date 2026-07-06
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace core {
|
||||
* @brief serializeAudioSavedJson — success response after profile apply.
|
||||
*
|
||||
* @dname serializeAudioSavedJson
|
||||
* @return JSON object \texttt{\{"status":"saved"\}}.
|
||||
* @return JSON object with \c status set to \c saved.
|
||||
* @pubstate none
|
||||
*
|
||||
* @author Michele Bigi
|
||||
@@ -77,7 +77,7 @@ namespace core {
|
||||
[[nodiscard]] std::string serializeAudioErrorJson(std::string_view reason);
|
||||
|
||||
/**
|
||||
* @brief parseEnhanceLevelJson — parse POST body \texttt{\{"level":0..100\}}.
|
||||
* @brief parseEnhanceLevelJson — parse POST body with level 0..100.
|
||||
*
|
||||
* @dname parseEnhanceLevelJson
|
||||
* @param json Untrusted request body.
|
||||
|
||||
@@ -85,7 +85,7 @@ inline constexpr std::size_t kBt1035BootInitCommandCount = 2U;
|
||||
*
|
||||
* @dname buildBt1035AtLine
|
||||
* @param command Typed AT command.
|
||||
* @return Full line including \r\n suffix.
|
||||
* @return Full line including CRLF suffix.
|
||||
* @pubstate none
|
||||
*
|
||||
* @author Michele Bigi
|
||||
|
||||
@@ -59,12 +59,67 @@ public:
|
||||
std::optional<FrequencyKHz> fmFrequency,
|
||||
std::optional<PresetSlot> presetSlot);
|
||||
|
||||
/**
|
||||
* @brief name — read the preset display label.
|
||||
*
|
||||
* @dname name
|
||||
* @return Station name value.
|
||||
* @pubstate reads name_.
|
||||
*/
|
||||
[[nodiscard]] const StationName& name() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief band — read the target RF band.
|
||||
*
|
||||
* @dname band
|
||||
* @return Dab or Fm band selector.
|
||||
* @pubstate reads band_.
|
||||
*/
|
||||
[[nodiscard]] TunerBand band() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief dabFreqIndex — read the Band III ensemble index.
|
||||
*
|
||||
* @dname dabFreqIndex
|
||||
* @return Ensemble index 0–37.
|
||||
* @pubstate reads dabFreqIndex_.
|
||||
*/
|
||||
[[nodiscard]] std::uint8_t dabFreqIndex() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief dabServiceId — read optional DAB service id for play().
|
||||
*
|
||||
* @dname dabServiceId
|
||||
* @return Service id when stored, otherwise empty.
|
||||
* @pubstate reads dabServiceId_.
|
||||
*/
|
||||
[[nodiscard]] std::optional<std::uint32_t> dabServiceId() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief dabComponentId — read optional DAB component id for play().
|
||||
*
|
||||
* @dname dabComponentId
|
||||
* @return Component id when stored, otherwise empty.
|
||||
* @pubstate reads dabComponentId_.
|
||||
*/
|
||||
[[nodiscard]] std::optional<std::uint32_t> dabComponentId() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief fmFrequency — read FM centre frequency when band is Fm.
|
||||
*
|
||||
* @dname fmFrequency
|
||||
* @return Frequency when stored, otherwise empty.
|
||||
* @pubstate reads fmFrequency_.
|
||||
*/
|
||||
[[nodiscard]] std::optional<FrequencyKHz> fmFrequency() const noexcept;
|
||||
|
||||
/**
|
||||
* @brief presetSlot — read optional hardware preset button slot.
|
||||
*
|
||||
* @dname presetSlot
|
||||
* @return Preset slot when assigned, otherwise empty.
|
||||
* @pubstate reads presetSlot_.
|
||||
*/
|
||||
[[nodiscard]] std::optional<PresetSlot> presetSlot() const noexcept;
|
||||
|
||||
/**
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
* @pubstate sets booted_ after Ping + AT+AUXCFG=1 both return OK.
|
||||
*
|
||||
* Sequence: hardware reset, UART @ 115200 with RTS/CTS, then
|
||||
* core::bootInitSequence() (Chapter~\ref{ch:bt1035}).
|
||||
* core::bootInitSequence() (see manual chapter bt1035).
|
||||
*
|
||||
* @author Michele Bigi
|
||||
* @date 2026-07-06
|
||||
|
||||
@@ -63,9 +63,12 @@ public:
|
||||
* @brief start — init platform and join stored Wi-Fi or open SoftAP.
|
||||
*
|
||||
* @dname start
|
||||
* @param store Secure store consulted for saved STA credentials.
|
||||
* @param tuner Tuner service exposed by the HTTP API.
|
||||
* @param audio Audio service exposed by the HTTP API.
|
||||
* @param store Secure store consulted for saved STA credentials.
|
||||
* @param tuner Tuner service exposed by the HTTP API.
|
||||
* @param audio Audio service exposed by the HTTP API.
|
||||
* @param bluetooth Bluetooth pairing service for REST routes.
|
||||
* @param stations Station preset service for REST routes.
|
||||
* @param companionChips Boot flags exposed on GET /api/health.
|
||||
* @return NetBootstrap on success, or a NetError.
|
||||
* @pubstate none
|
||||
*
|
||||
|
||||
@@ -137,8 +137,9 @@ public:
|
||||
* @param netState Active network phase exposed to handlers.
|
||||
* @param tuner Tuner service for the tuner REST routes.
|
||||
* @param audio Audio service for the audio REST routes.
|
||||
* @param bluetooth Bluetooth service for pairing REST routes.
|
||||
* @param stations Station preset service for list REST routes.
|
||||
* @param bluetooth Bluetooth service for pairing REST routes.
|
||||
* @param stations Station preset service for list REST routes.
|
||||
* @param companionChips Boot flags for GET /api/health.
|
||||
* @return Ok on success, or NetError::HttpServerStartFailed.
|
||||
* @pubstate writes server_, store_, netState_, and service pointers on success.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user