summaryrefslogtreecommitdiff
path: root/src/audio/audio_task.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-04-19 16:45:50 +1000
committerjacqueline <me@jacqueline.id.au>2023-04-19 16:45:50 +1000
commit4c77950e702a329f3136456a932efbea36e03d42 (patch)
tree5df7e8717b751846655c16b50c352712b642658b /src/audio/audio_task.cpp
parent561f9d2a07ee6ee1c2f18dc375125f87ea7b0d55 (diff)
downloadtangara-fw-4c77950e702a329f3136456a932efbea36e03d42.tar.gz
Pipeline working and outputting correctly, but noisy
Diffstat (limited to 'src/audio/audio_task.cpp')
-rw-r--r--src/audio/audio_task.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp
index 3a2a5941..1670f9f6 100644
--- a/src/audio/audio_task.cpp
+++ b/src/audio/audio_task.cpp
@@ -45,7 +45,7 @@ auto StartPipeline(Pipeline* pipeline, IAudioSink* sink) -> void {
ESP_LOGI(kTag, "starting audio pipeline task");
xTaskCreatePinnedToCore(&AudioTaskMain, "pipeline", kStackSize, args,
- kTaskPriorityAudio, NULL, kAudioCore);
+ kTaskPriorityAudioPipeline, NULL, kAudioCore);
}
auto StartDrain(IAudioSink* sink) -> void {
@@ -57,8 +57,8 @@ auto StartDrain(IAudioSink* sink) -> void {
};
ESP_LOGI(kTag, "starting audio drain task");
- xTaskCreatePinnedToCore(&AudioDrainMain, "drain", kDrainStackSize, drain_args,
- kTaskPriorityAudio, NULL, kAudioCore);
+ xTaskCreate(&AudioDrainMain, "drain", kDrainStackSize, drain_args,
+ kTaskPriorityAudioDrain, NULL);
}
void AudioTaskMain(void* args) {
@@ -134,7 +134,7 @@ void AudioTaskMain(void* args) {
// The format of the stream within the sink stream has changed. We
// need to reconfigure the sink, but shouldn't do so until we've fully
// drained the current buffer.
- if (xStreamBufferIsEmpty(sink->buffer())) {
+ if (xStreamBufferIsEmpty(*sink->buffer())) {
ESP_LOGI(kTag, "reconfiguring dac");
output_format = sink_stream.info().format;
sink->Configure(*output_format);
@@ -149,7 +149,7 @@ void AudioTaskMain(void* args) {
// throttle this task's CPU time. Maybe also hold off on the pipeline
// if the buffer is already close to full?
std::size_t sent = xStreamBufferSend(
- sink->buffer(), sink_stream.data().data(),
+ *sink->buffer(), sink_stream.data().data(),
sink_stream.data().size_bytes(), pdMS_TO_TICKS(10));
sink_stream.consume(sent);
}
@@ -172,7 +172,7 @@ void AudioDrainMain(void* args) {
// TODO(jacqueline): implement PAUSE without busy-waiting.
while (*command != QUIT) {
- std::size_t len = xStreamBufferReceive(sink->buffer(), sDrainBuf,
+ std::size_t len = xStreamBufferReceive(*sink->buffer(), sDrainBuf,
sizeof(sDrainBuf), portMAX_DELAY);
if (len > 0) {
sink->Send({sDrainBuf, len});