summaryrefslogtreecommitdiff
path: root/src/audio/include/i2s_audio_output.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-02-21 14:40:18 +1100
committerjacqueline <me@jacqueline.id.au>2023-02-21 14:40:18 +1100
commit47ae601d417d0ef99eb6fe433ef695614d8d2786 (patch)
treef536ecc214c012c0d69b3a8d350a7a1cadb2f671 /src/audio/include/i2s_audio_output.hpp
parent941bafca17b13547a88668b787ce4c8e064ef7ff (diff)
downloadtangara-fw-47ae601d417d0ef99eb6fe433ef695614d8d2786.tar.gz
Tidy up pipeline and use arena capacity to test for overruns
Diffstat (limited to 'src/audio/include/i2s_audio_output.hpp')
-rw-r--r--src/audio/include/i2s_audio_output.hpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp
index de2f1f58..2bea091b 100644
--- a/src/audio/include/i2s_audio_output.hpp
+++ b/src/audio/include/i2s_audio_output.hpp
@@ -23,28 +23,23 @@ class I2SAudioOutput : public IAudioElement {
~I2SAudioOutput();
auto HasUnprocessedInput() -> bool override;
+ auto IsOverBuffered() -> bool override;
- auto ProcessStreamInfo(const StreamInfo& info)
- -> cpp::result<void, AudioProcessingError> override;
- auto ProcessChunk(const cpp::span<std::byte>& chunk)
- -> cpp::result<std::size_t, AudioProcessingError> override;
+ auto ProcessStreamInfo(const StreamInfo& info) -> void override;
+ auto ProcessChunk(const cpp::span<std::byte>& chunk) -> void override;
auto ProcessEndOfStream() -> void override;
auto ProcessLogStatus() -> void override;
- auto Process() -> cpp::result<void, AudioProcessingError> override;
+ auto Process() -> void override;
I2SAudioOutput(const I2SAudioOutput&) = delete;
I2SAudioOutput& operator=(const I2SAudioOutput&) = delete;
private:
auto SetVolume(uint8_t volume) -> void;
- auto SetSoftMute(bool enabled) -> void;
drivers::GpioExpander* expander_;
std::unique_ptr<drivers::AudioDac> dac_;
- uint8_t volume_;
- bool is_soft_muted_;
-
std::optional<ChunkReader> chunk_reader_;
cpp::span<std::byte> latest_chunk_;
};