From cd47e00a7ddc86d98fbca7c6473e9452ad2fc776 Mon Sep 17 00:00:00 2001 From: willem Date: Fri, 26 Nov 2021 11:12:56 +0100 Subject: [PATCH] esp32_s2 --- src/AudioFileSourceLittleFS.h | 6 +++--- src/AudioOutputI2S.cpp | 15 +++++++++++---- src/AudioOutputSPDIF.cpp | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/AudioFileSourceLittleFS.h b/src/AudioFileSourceLittleFS.h index cbdb8da..345ae3a 100644 --- a/src/AudioFileSourceLittleFS.h +++ b/src/AudioFileSourceLittleFS.h @@ -24,7 +24,7 @@ //#ifndef ESP32 // No LittleFS there, yet #include -#include +#include #include "AudioFileSource.h" #include "AudioFileSourceFS.h" @@ -32,8 +32,8 @@ class AudioFileSourceLittleFS : public AudioFileSourceFS { public: - AudioFileSourceLittleFS() : AudioFileSourceFS(LITTLEFS) { }; - AudioFileSourceLittleFS(const char *filename) : AudioFileSourceFS(LITTLEFS, filename) {}; + AudioFileSourceLittleFS() : AudioFileSourceFS(LittleFS) { }; + AudioFileSourceLittleFS(const char *filename) : AudioFileSourceFS(LittleFS, filename) {}; // Others are inherited from base }; diff --git a/src/AudioOutputI2S.cpp b/src/AudioOutputI2S.cpp index 65362cb..88ef7c5 100644 --- a/src/AudioOutputI2S.cpp +++ b/src/AudioOutputI2S.cpp @@ -21,6 +21,7 @@ #include #ifdef ESP32 #include "driver/i2s.h" + #include "soc/soc_caps.h" #elif defined(ARDUINO_ARCH_RP2040) || defined(ESP8266) #include #endif @@ -166,17 +167,21 @@ bool AudioOutputI2S::begin(bool txDAC) i2s_mode_t mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX); if (output_mode == INTERNAL_DAC) { - mode = (i2s_mode_t)(mode | I2S_MODE_DAC_BUILT_IN); + #if SOC_I2S_SUPPORTS_DAC + mode = (i2s_mode_t)(mode | I2S_MODE_DAC_BUILT_IN); + #endif } else if (output_mode == INTERNAL_PDM) { mode = (i2s_mode_t)(mode | I2S_MODE_PDM); } - i2s_comm_format_t comm_fmt = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB); + i2s_comm_format_t comm_fmt = (i2s_comm_format_t)(I2S_COMM_FORMAT_STAND_I2S); if (output_mode == INTERNAL_DAC) { + #if SOC_I2S_SUPPORTS_DAC comm_fmt = (i2s_comm_format_t)I2S_COMM_FORMAT_I2S_MSB; + #endif } i2s_config_t i2s_config_dac = { @@ -197,8 +202,10 @@ bool AudioOutputI2S::begin(bool txDAC) } if (output_mode == INTERNAL_DAC || output_mode == INTERNAL_PDM) { - i2s_set_pin((i2s_port_t)portNo, NULL); - i2s_set_dac_mode(I2S_DAC_CHANNEL_BOTH_EN); + #if SOC_I2S_SUPPORTS_DAC + i2s_set_pin((i2s_port_t)portNo, NULL); + i2s_set_dac_mode(I2S_DAC_CHANNEL_BOTH_EN); + #endif } else { diff --git a/src/AudioOutputSPDIF.cpp b/src/AudioOutputSPDIF.cpp index 53483d4..ff379a7 100644 --- a/src/AudioOutputSPDIF.cpp +++ b/src/AudioOutputSPDIF.cpp @@ -94,7 +94,7 @@ AudioOutputSPDIF::AudioOutputSPDIF(int dout_pin, int port, int dma_buf_count) .sample_rate = 88200, // 2 x sampling_rate .bits_per_sample = I2S_BITS_PER_SAMPLE_32BIT, // 32bit words .channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, // Right than left - .communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_I2S | I2S_COMM_FORMAT_I2S_MSB), + .communication_format = (i2s_comm_format_t)(I2S_COMM_FORMAT_STAND_I2S), .intr_alloc_flags = ESP_INTR_FLAG_LEVEL1, // lowest interrupt priority .dma_buf_count = dma_buf_count, .dma_buf_len = DMA_BUF_SIZE_DEFAULT, // bigger buffers, reduces interrupts