Fork of Tangara with customizations
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tangara-fw/src/audio/include/audio_task.hpp

38 lines
696 B

#pragma once
#include <memory>
#include <optional>
#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;
IAudioSink* sink;
};
struct AudioDrainArgs {
IAudioSink* sink;
std::atomic<Command>* command;
};
extern "C" void AudioTaskMain(void* args);
extern "C" void AudioDrainMain(void* args);
auto StartPipeline(Pipeline* pipeline, IAudioSink* sink) -> void;
auto StartDrain(IAudioSink* sink) -> void;
} // namespace task
} // namespace audio