Add Slice 5 ADAU1701 runtime audio control (firmware 0.5.0).

Safeload mixer/EQ/master on the ADAU1701, persist AudioProfile in NVS,
expose /api/audio routes and web UI controls, with host tests and manual sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-06 16:47:58 +02:00
co-authored by Cursor
parent 4b931b0aad
commit ab3651e678
58 changed files with 3191 additions and 41 deletions
@@ -0,0 +1,42 @@
/**
* @file NvsAudioProfileStore.hpp
* @brief NVS-backed IAudioProfileStore for user audio settings.
*
* DigiRadio firmware — https://github.com/manvalan/DigiRadio
*
* Copyright 2026 Michele Bigi
* SPDX-License-Identifier: Apache-2.0
*
* @author Michele Bigi
* @date 2026-07-06
*/
#pragma once
#include "core/IAudioProfileStore.hpp"
namespace secure_store {
/**
* @brief NvsAudioProfileStore — persists AudioProfile JSON in NVS.
*
* @dname NvsAudioProfileStore
* @return n/a (type)
* @pubstate Uses namespace digiradio, key audio_profile_json.
*
* @author Michele Bigi
* @date 2026-07-06
*/
class NvsAudioProfileStore final : public core::IAudioProfileStore {
public:
[[nodiscard]] bool hasProfile() const override;
[[nodiscard]] std::expected<void, core::StoreError> saveProfile(
const core::AudioProfile& profile) override;
[[nodiscard]] std::expected<core::AudioProfile, core::StoreError>
loadProfile() const override;
[[nodiscard]] std::expected<void, core::StoreError> clearProfile() override;
};
} // namespace secure_store