diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-04-01 13:22:21 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-04-19 10:29:38 +1000 |
| commit | 7c6fd654f50e6665efa4226c6b927f9762734182 (patch) | |
| tree | 58ccb69068c550e9c2223c1b510cfa525690b731 /src/audio/include/audio_task.hpp | |
| parent | 3817ec0c77b8d44e54b35ea9f76e7bb4666c6c08 (diff) | |
| download | tangara-fw-7c6fd654f50e6665efa4226c6b927f9762734182.tar.gz | |
New pipeline building, still needs proper control
Diffstat (limited to 'src/audio/include/audio_task.hpp')
| -rw-r--r-- | src/audio/include/audio_task.hpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/audio/include/audio_task.hpp b/src/audio/include/audio_task.hpp index 8db99850..a7b7a0fa 100644 --- a/src/audio/include/audio_task.hpp +++ b/src/audio/include/audio_task.hpp @@ -5,38 +5,32 @@ #include <string> #include "audio_element.hpp" +#include "audio_sink.hpp" +#include "dac.hpp" #include "freertos/portmacro.h" #include "pipeline.hpp" +#include "stream_buffer.hpp" namespace audio { namespace task { + +enum Command { PLAY, PAUSE, QUIT }; + struct AudioTaskArgs { Pipeline* pipeline; - QueueHandle_t input; + IAudioSink* sink; +}; +struct AudioDrainArgs { + IAudioSink* sink; + std::atomic<Command>* command; }; extern "C" void AudioTaskMain(void* args); +extern "C" void AudioDrainMain(void* args); -enum Command { PLAY, PAUSE, QUIT }; - -class Handle { - public: - explicit Handle(QueueHandle_t input); - ~Handle(); - - auto SetStreamInfo() -> void; - auto Play() -> void; - auto Pause() -> void; - auto Quit() -> void; - - auto OutputBuffer() -> StreamBufferHandle_t; - - private: - QueueHandle_t input; -}; - -auto Start(Pipeline* pipeline) -> Handle*; +auto StartPipeline(Pipeline* pipeline, IAudioSink* sink) -> void; +auto StartDrain(IAudioSink* sink) -> void; } // namespace task |
