From 77a463e5d871000ef2435aa5ff3769fdb96f99ed Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:04:11 -0500 Subject: [PATCH 1/2] f.setBufferSize(FS_BUFSIZE); for buffered file functions --- wled00/file.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wled00/file.cpp b/wled00/file.cpp index 4e23d5ca..db416c66 100644 --- a/wled00/file.cpp +++ b/wled00/file.cpp @@ -66,6 +66,7 @@ static bool bufferedFind(const char *target, bool fromStart = true) { size_t index = 0; byte buf[FS_BUFSIZE]; + f.setBufferSize(FS_BUFSIZE); if (fromStart) f.seek(0); while (f.position() < f.size() -1) { @@ -107,6 +108,7 @@ static bool bufferedFindSpace(size_t targetLen, bool fromStart = true) { size_t index = 0; // better to use size_t instead if uint16_t byte buf[FS_BUFSIZE]; + f.setBufferSize(FS_BUFSIZE); if (fromStart) f.seek(0); while (f.position() < f.size() -1) { @@ -150,6 +152,7 @@ static bool bufferedFindObjectEnd() { uint16_t objDepth = 0; //num of '{' minus num of '}'. return once 0 //size_t start = f.position(); byte buf[FS_BUFSIZE]; + f.setBufferSize(FS_BUFSIZE); while (f.position() < f.size() -1) { size_t bufsize = f.read(buf, FS_BUFSIZE); // better to use size_t instead of uint16_t @@ -175,7 +178,7 @@ static void writeSpace(size_t l) { byte buf[FS_BUFSIZE]; memset(buf, ' ', FS_BUFSIZE); - + f.setBufferSize(FS_BUFSIZE); while (l > 0) { size_t block = (l>FS_BUFSIZE) ? FS_BUFSIZE : l; f.write(buf, block); From 167b3d380f324f020f1e28e23ee6381f1a54fd13 Mon Sep 17 00:00:00 2001 From: Troy <5659019+troyhacks@users.noreply.github.com> Date: Thu, 23 Jan 2025 14:15:53 -0500 Subject: [PATCH 2/2] IDFv4 logic for f.setBufferSize() --- wled00/file.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/wled00/file.cpp b/wled00/file.cpp index db416c66..39813ba0 100644 --- a/wled00/file.cpp +++ b/wled00/file.cpp @@ -66,7 +66,9 @@ static bool bufferedFind(const char *target, bool fromStart = true) { size_t index = 0; byte buf[FS_BUFSIZE]; + #if ESP_IDF_VERSION_MAJOR >= 4 f.setBufferSize(FS_BUFSIZE); + #endif if (fromStart) f.seek(0); while (f.position() < f.size() -1) { @@ -108,7 +110,9 @@ static bool bufferedFindSpace(size_t targetLen, bool fromStart = true) { size_t index = 0; // better to use size_t instead if uint16_t byte buf[FS_BUFSIZE]; + #if ESP_IDF_VERSION_MAJOR >= 4 f.setBufferSize(FS_BUFSIZE); + #endif if (fromStart) f.seek(0); while (f.position() < f.size() -1) { @@ -152,8 +156,9 @@ static bool bufferedFindObjectEnd() { uint16_t objDepth = 0; //num of '{' minus num of '}'. return once 0 //size_t start = f.position(); byte buf[FS_BUFSIZE]; + #if ESP_IDF_VERSION_MAJOR >= 4 f.setBufferSize(FS_BUFSIZE); - + #endif while (f.position() < f.size() -1) { size_t bufsize = f.read(buf, FS_BUFSIZE); // better to use size_t instead of uint16_t size_t count = 0; @@ -178,7 +183,9 @@ static void writeSpace(size_t l) { byte buf[FS_BUFSIZE]; memset(buf, ' ', FS_BUFSIZE); + #if ESP_IDF_VERSION_MAJOR >= 4 f.setBufferSize(FS_BUFSIZE); + #endif while (l > 0) { size_t block = (l>FS_BUFSIZE) ? FS_BUFSIZE : l; f.write(buf, block);