diff options
| author | jacqueline <me@jacqueline.id.au> | 2022-11-15 13:25:58 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2022-11-15 13:25:58 +1100 |
| commit | 530fd15e66a2c89c0dcd6edd1b2a318958c349a4 (patch) | |
| tree | 2b4b75a644587440a6a5cf6620f1b6e36f81c2d6 /src/main | |
| parent | 37041b810fbd10aab0834a33ae1dbd9edbb8bcb9 (diff) | |
| download | tangara-fw-530fd15e66a2c89c0dcd6edd1b2a318958c349a4.tar.gz | |
WIP audio play and pause
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/main.cpp | 31 |
1 files changed, 16 insertions, 15 deletions
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<drivers::SdStorage> 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<drivers::AudioDac> dac = std::move(dac_res.value()); + std::unique_ptr<drivers::AudioOutput> 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<drivers::DacAudioPlayback> playback = + std::unique_ptr<drivers::AudioPlayback> 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)); } } |
