remove unnecessary buffer

This commit is contained in:
steve 2023-09-30 12:51:19 +01:00
parent b3e9fb9c2f
commit 279bbc6b5a
2 changed files with 22 additions and 14 deletions

View File

@ -25,10 +25,10 @@ static Dir dir;
bool flash_filer::seek(uint32_t pos) bool flash_filer::seek(uint32_t pos)
{ {
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS) #if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS)
_pos = _len = 0;
return file.seek(pos); return file.seek(pos);
#endif #else
return false; return false;
#endif
} }
bool flash_filer::start() bool flash_filer::start()
@ -41,7 +41,6 @@ bool flash_filer::start()
return false; return false;
#endif #endif
_pos = _len = 0;
return true; return true;
} }
@ -54,15 +53,25 @@ void flash_filer::stop()
bool flash_filer::more() bool flash_filer::more()
{ {
if (_pos >= _len) {
_pos = 0;
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS) #if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS)
_len = file.read(_buf, sizeof(_buf)); return file.available() > 0;
#else
return false;
#endif
}
uint8_t flash_filer::read() {
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS)
return file.read();
#else
return 0xff;
#endif
}
void flash_filer::write(uint8_t b) {
#if defined(USE_SD) || defined(USE_SPIFFS) || defined(USE_FS)
file.write(b);
#endif #endif
if (_len == 0) // eof
return false;
}
return true;
} }
const char *flash_filer::advance() { const char *flash_filer::advance() {
@ -73,7 +82,7 @@ const char *flash_filer::advance() {
static char buf[32]; static char buf[32];
while (true) { while (true) {
if (dir.next()) { if (dir.next()) {
file = dir.openFile("r"); file = dir.openFile("rb+");
break; break;
} }
dir = SPIFFS.openDir(_programs); dir = SPIFFS.openDir(_programs);

View File

@ -17,12 +17,11 @@ public:
void stop(); void stop();
bool seek(uint32_t pos); bool seek(uint32_t pos);
uint8_t read() { return _buf[_pos++]; }
bool more(); bool more();
uint8_t read();
void write(uint8_t);
private: private:
const char *_programs; const char *_programs;
unsigned _pos, _len;
uint8_t _buf[128];
}; };
#endif #endif