diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-08-16 11:40:49 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-08-16 11:40:49 +1000 |
| commit | c635d5011c37c02246135fe0df404631ec111bd6 (patch) | |
| tree | b0373eeeb2722b852c75fb28c9df5b30e0f861e0 /src/audio/audio_task.cpp | |
| parent | 4e27de21e49900963ffa61cc9c0a676bb028f992 (diff) | |
| download | tangara-fw-c635d5011c37c02246135fe0df404631ec111bd6.tar.gz | |
Put more audio pipeline wiring in control of the audio fsm
Diffstat (limited to 'src/audio/audio_task.cpp')
| -rw-r--r-- | src/audio/audio_task.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp index 1ebd4e46..99b1c170 100644 --- a/src/audio/audio_task.cpp +++ b/src/audio/audio_task.cpp @@ -76,19 +76,16 @@ auto Timer::AddSamples(std::size_t samples) -> void { } } -auto AudioTask::Start(IAudioSource* source, IAudioSink* sink) -> AudioTask* { +auto AudioTask::Start(std::shared_ptr<IAudioSource> source, + std::shared_ptr<SinkMixer> sink) -> AudioTask* { AudioTask* task = new AudioTask(source, sink); tasks::StartPersistent<tasks::Type::kAudio>([=]() { task->Main(); }); return task; } -AudioTask::AudioTask(IAudioSource* source, IAudioSink* sink) - : source_(source), - sink_(sink), - codec_(), - mixer_(new SinkMixer(sink)), - timer_(), - current_format_() { +AudioTask::AudioTask(std::shared_ptr<IAudioSource> source, + std::shared_ptr<SinkMixer> mixer) + : source_(source), mixer_(mixer), codec_(), timer_(), current_format_() { codec_buffer_ = { reinterpret_cast<sample::Sample*>(heap_caps_calloc( kCodecBufferLength, sizeof(sample::Sample), MALLOC_CAP_SPIRAM)), @@ -133,7 +130,7 @@ auto AudioTask::BeginDecoding(std::shared_ptr<codecs::IStream> stream) -> bool { timer_.reset(); } - current_sink_format_ = IAudioSink::Format{ + current_sink_format_ = IAudioOutput::Format{ .sample_rate = open_res->sample_rate_hz, .num_channels = open_res->num_channels, .bits_per_sample = 16, |
