summaryrefslogtreecommitdiff
path: root/src/audio/fatfs_audio_input.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-01-30 15:52:54 +1100
committerjacqueline <me@jacqueline.id.au>2023-01-30 15:52:54 +1100
commitef8d404b15e6d32506617a95aa3161fbe59ecdaf (patch)
treef05d5f0a81b1477846e85bf44f0154db015b9789 /src/audio/fatfs_audio_input.cpp
parent2cc0a38a1ac7fc54d7333dafa8b99479a7f5dc86 (diff)
downloadtangara-fw-ef8d404b15e6d32506617a95aa3161fbe59ecdaf.tar.gz
Continue ironing out i2s pipeline
still at least one heap corruption issue, plus the i2s write method seems to block forever :/
Diffstat (limited to 'src/audio/fatfs_audio_input.cpp')
-rw-r--r--src/audio/fatfs_audio_input.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/audio/fatfs_audio_input.cpp b/src/audio/fatfs_audio_input.cpp
index 15823202..14176eae 100644
--- a/src/audio/fatfs_audio_input.cpp
+++ b/src/audio/fatfs_audio_input.cpp
@@ -20,7 +20,7 @@ static const char* kTag = "SRC";
namespace audio {
// 32KiB to match the minimum himen region size.
-static const std::size_t kChunkSize = 1024;
+static const std::size_t kChunkSize = 32 * 1024;
FatfsAudioInput::FatfsAudioInput(std::shared_ptr<drivers::SdStorage> storage)
: IAudioElement(),
@@ -48,6 +48,7 @@ auto FatfsAudioInput::ProcessStreamInfo(const StreamInfo& info)
std::string path = *info.path;
FRESULT res = f_open(&current_file_, path.c_str(), FA_READ);
if (res != FR_OK) {
+ ESP_LOGE(kTag, "failed to open file! res: %i", res);
return cpp::fail(IO_ERROR);
}
@@ -55,6 +56,7 @@ auto FatfsAudioInput::ProcessStreamInfo(const StreamInfo& info)
StreamInfo new_info(info);
new_info.chunk_size = kChunkSize;
+ ESP_LOGI(kTag, "chunk size: %u bytes", kChunkSize);
auto event = StreamEvent::CreateStreamInfo(input_events_, new_info);
SendOrBufferEvent(std::unique_ptr<StreamEvent>(event));
@@ -81,7 +83,7 @@ auto FatfsAudioInput::Process() -> cpp::result<void, AudioProcessingError> {
return cpp::fail(IO_ERROR);
}
- ESP_LOGI(kTag, "sending file data");
+ ESP_LOGI(kTag, "sending file data (%u bytes)", bytes_read);
dest_event->chunk_data.bytes =
dest_event->chunk_data.bytes.first(bytes_read);
SendOrBufferEvent(std::move(dest_event));