summaryrefslogtreecommitdiff
path: root/src/audio/include/audio_task.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-16 11:40:49 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-16 11:40:49 +1000
commitc635d5011c37c02246135fe0df404631ec111bd6 (patch)
treeb0373eeeb2722b852c75fb28c9df5b30e0f861e0 /src/audio/include/audio_task.hpp
parent4e27de21e49900963ffa61cc9c0a676bb028f992 (diff)
downloadtangara-fw-c635d5011c37c02246135fe0df404631ec111bd6.tar.gz
Put more audio pipeline wiring in control of the audio fsm
Diffstat (limited to 'src/audio/include/audio_task.hpp')
-rw-r--r--src/audio/include/audio_task.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/audio/include/audio_task.hpp b/src/audio/include/audio_task.hpp
index d2c25add..08c5769c 100644
--- a/src/audio/include/audio_task.hpp
+++ b/src/audio/include/audio_task.hpp
@@ -34,7 +34,8 @@ class Timer {
class AudioTask {
public:
- static auto Start(IAudioSource* source, IAudioSink* sink) -> AudioTask*;
+ static auto Start(std::shared_ptr<IAudioSource> source,
+ std::shared_ptr<SinkMixer> mixer) -> AudioTask*;
auto Main() -> void;
@@ -42,21 +43,21 @@ class AudioTask {
AudioTask& operator=(const AudioTask&) = delete;
private:
- AudioTask(IAudioSource* source, IAudioSink* sink);
+ AudioTask(std::shared_ptr<IAudioSource> source,
+ std::shared_ptr<SinkMixer> mixer);
auto BeginDecoding(std::shared_ptr<codecs::IStream>) -> bool;
auto ContinueDecoding() -> bool;
- IAudioSource* source_;
- IAudioSink* sink_;
+ std::shared_ptr<IAudioSource> source_;
+ std::shared_ptr<SinkMixer> mixer_;
std::shared_ptr<codecs::IStream> stream_;
std::unique_ptr<codecs::ICodec> codec_;
- std::unique_ptr<SinkMixer> mixer_;
std::unique_ptr<Timer> timer_;
std::optional<codecs::ICodec::OutputFormat> current_format_;
- std::optional<IAudioSink::Format> current_sink_format_;
+ std::optional<IAudioOutput::Format> current_sink_format_;
cpp::span<sample::Sample> codec_buffer_;
};