From 12d2ffdab70df573610b81d8a24545da33bb67e3 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 21 Feb 2023 09:28:36 +1100 Subject: Add logging to the DAC --- src/audio/include/audio_element.hpp | 2 ++ src/audio/include/audio_playback.hpp | 2 ++ src/audio/include/i2s_audio_output.hpp | 1 + src/audio/include/stream_event.hpp | 2 ++ 4 files changed, 7 insertions(+) (limited to 'src/audio/include') diff --git a/src/audio/include/audio_element.hpp b/src/audio/include/audio_element.hpp index 0c80524c..b881404c 100644 --- a/src/audio/include/audio_element.hpp +++ b/src/audio/include/audio_element.hpp @@ -107,6 +107,8 @@ class IAudioElement { virtual auto ProcessEndOfStream() -> void = 0; + virtual auto ProcessLogStatus() -> void {} + /* * Called when there has been no data received over the input buffer for some * time. This could be used to synthesize output, or to save memory by diff --git a/src/audio/include/audio_playback.hpp b/src/audio/include/audio_playback.hpp index f05ca327..fc266c9b 100644 --- a/src/audio/include/audio_playback.hpp +++ b/src/audio/include/audio_playback.hpp @@ -37,6 +37,8 @@ class AudioPlayback { */ auto Play(const std::string& filename) -> void; + auto LogStatus() -> void; + // Not copyable or movable. AudioPlayback(const AudioPlayback&) = delete; AudioPlayback& operator=(const AudioPlayback&) = delete; diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index fc406665..de2f1f58 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -29,6 +29,7 @@ class I2SAudioOutput : public IAudioElement { auto ProcessChunk(const cpp::span& chunk) -> cpp::result override; auto ProcessEndOfStream() -> void override; + auto ProcessLogStatus() -> void override; auto Process() -> cpp::result override; I2SAudioOutput(const I2SAudioOutput&) = delete; diff --git a/src/audio/include/stream_event.hpp b/src/audio/include/stream_event.hpp index e84c8388..d42de411 100644 --- a/src/audio/include/stream_event.hpp +++ b/src/audio/include/stream_event.hpp @@ -17,6 +17,7 @@ struct StreamEvent { -> StreamEvent*; static auto CreateChunkNotification(QueueHandle_t source) -> StreamEvent*; static auto CreateEndOfStream(QueueHandle_t source) -> StreamEvent*; + static auto CreateLogStatus() -> StreamEvent*; StreamEvent(); ~StreamEvent(); @@ -30,6 +31,7 @@ struct StreamEvent { CHUNK_DATA, CHUNK_NOTIFICATION, END_OF_STREAM, + LOG_STATUS, } tag; union { -- cgit v1.2.3