From 530fd15e66a2c89c0dcd6edd1b2a318958c349a4 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Tue, 15 Nov 2022 13:25:58 +1100 Subject: WIP audio play and pause --- src/main/main.cpp | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'src/main/main.cpp') diff --git a/src/main/main.cpp b/src/main/main.cpp index d13a7407..8233b15f 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -8,6 +8,7 @@ #include "freertos/portmacro.h" #include "gpio-expander.hpp" #include "i2c.hpp" +#include "i2s_audio_output.hpp" #include "misc/lv_color.h" #include "misc/lv_timer.h" #include "playback.hpp" @@ -106,34 +107,34 @@ extern "C" void app_main(void) { } std::unique_ptr storage = std::move(storage_res.value()); - ESP_LOGI(TAG, "Init DAC"); - auto dac_res = drivers::AudioDac::create(expander); - if (storage_res.has_error()) { - ESP_LOGE(TAG, "Failed: %d", dac_res.error()); + LvglArgs* lvglArgs = (LvglArgs*)calloc(1, sizeof(LvglArgs)); + lvglArgs->gpio_expander = expander; + xTaskCreateStaticPinnedToCore(&lvgl_main, "LVGL", kLvglStackSize, + (void*)lvglArgs, 1, sLvglStack, + &sLvglTaskBuffer, 1); + + ESP_LOGI(TAG, "Init Audio Output (I2S)"); + auto sink_res = drivers::I2SAudioOutput::create(expander); + if (sink_res.has_error()) { + ESP_LOGE(TAG, "Failed: %d", sink_res.error()); return; } - std::unique_ptr dac = std::move(dac_res.value()); + std::unique_ptr sink = std::move(sink_res.value()); ESP_LOGI(TAG, "Init Audio Pipeline"); - auto playback_res = drivers::DacAudioPlayback::create(dac.get()); + auto playback_res = drivers::AudioPlayback::create(std::move(sink)); if (playback_res.has_error()) { ESP_LOGE(TAG, "Failed: %d", playback_res.error()); return; } - std::unique_ptr playback = + std::unique_ptr playback = std::move(playback_res.value()); ESP_LOGI(TAG, "Everything looks good! Waiting a mo for debugger."); vTaskDelay(pdMS_TO_TICKS(1500)); - LvglArgs* lvglArgs = (LvglArgs*)calloc(1, sizeof(LvglArgs)); - lvglArgs->gpio_expander = expander; - xTaskCreateStaticPinnedToCore(&lvgl_main, "LVGL", kLvglStackSize, - (void*)lvglArgs, 1, sLvglStack, - &sLvglTaskBuffer, 1); - while (1) { - // TODO: Find owners for everything so we can quit this task safely. - vTaskDelay(pdMS_TO_TICKS(1000)); + playback->ProcessEvents(5); + vTaskDelay(pdMS_TO_TICKS(100)); } } -- cgit v1.2.3