diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-02-10 15:32:21 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-02-10 15:32:21 +1100 |
| commit | 61c91b3cdb2c9dd655f3adf0f461f5cefb3b2e9b (patch) | |
| tree | 8d0bb288781f86455f02219d0b7ac8cee493eeb3 /src/audio/audio_task.cpp | |
| parent | cabfd4b75ecc733bdf36997606a686c4d2bc277d (diff) | |
| download | tangara-fw-61c91b3cdb2c9dd655f3adf0f461f5cefb3b2e9b.tar.gz | |
Mostly working pipeline, including proper EOF signalling
Diffstat (limited to 'src/audio/audio_task.cpp')
| -rw-r--r-- | src/audio/audio_task.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/audio/audio_task.cpp b/src/audio/audio_task.cpp index 47b115cc..078aa461 100644 --- a/src/audio/audio_task.cpp +++ b/src/audio/audio_task.cpp @@ -28,6 +28,7 @@ namespace audio { static const char* kTag = "task"; auto StartAudioTask(const std::string& name, + std::optional<BaseType_t> core_id, std::shared_ptr<IAudioElement> element) -> std::unique_ptr<AudioElementHandle> { auto task_handle = std::make_unique<TaskHandle_t>(); @@ -36,8 +37,13 @@ auto StartAudioTask(const std::string& name, AudioTaskArgs* args = new AudioTaskArgs{.element = element}; ESP_LOGI(kTag, "starting audio task %s", name.c_str()); - xTaskCreate(&AudioTaskMain, name.c_str(), element->StackSizeBytes(), args, - kTaskPriorityAudio, task_handle.get()); + if (core_id) { + xTaskCreatePinnedToCore(&AudioTaskMain, name.c_str(), element->StackSizeBytes(), args, + kTaskPriorityAudio, task_handle.get(), *core_id); + } else { + xTaskCreate(&AudioTaskMain, name.c_str(), element->StackSizeBytes(), args, + kTaskPriorityAudio, task_handle.get()); + } return std::make_unique<AudioElementHandle>(std::move(task_handle), element); } |
