-
-
Save mcspr/7b87fbcc1df71937be474ff3c0b97e9a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/libraries/SDFS/src/SDFS.cpp b/libraries/SDFS/src/SDFS.cpp | |
index 5725a6ae..c0416331 100644 | |
--- a/libraries/SDFS/src/SDFS.cpp | |
+++ b/libraries/SDFS/src/SDFS.cpp | |
@@ -64,13 +64,13 @@ FileImplPtr SDFSImpl::open(const char* path, OpenMode openMode, AccessMode acces | |
} | |
free(pathStr); | |
} | |
- File32 fd = _fs.open(path, flags); | |
+ FsFile fd = _fs.open(path, flags); | |
if (!fd) { | |
DEBUGV("SDFSImpl::openFile: fd=%p path=`%s` openMode=%d accessMode=%d", | |
&fd, path, openMode, accessMode); | |
return FileImplPtr(); | |
} | |
- auto sharedFd = std::make_shared<File32>(fd); | |
+ auto sharedFd = std::make_shared<FsFile>(fd); | |
return std::make_shared<SDFSFileImpl>(this, sharedFd, path); | |
} | |
@@ -90,7 +90,7 @@ DirImplPtr SDFSImpl::openDir(const char* path) | |
} | |
// At this point we have a name of "/blah/blah/blah" or "blah" or "" | |
// If that references a directory, just open it and we're done. | |
- File32 dirFile; | |
+ FsFile dirFile; | |
const char *filter = ""; | |
if (!pathStr[0]) { | |
// openDir("") === openDir("/") | |
@@ -135,7 +135,7 @@ DirImplPtr SDFSImpl::openDir(const char* path) | |
DEBUGV("SDFSImpl::openDir: path=`%s`\n", path); | |
return DirImplPtr(); | |
} | |
- auto sharedDir = std::make_shared<File32>(dirFile); | |
+ auto sharedDir = std::make_shared<FsFile>(dirFile); | |
auto ret = std::make_shared<SDFSDirImpl>(filter, this, sharedDir, pathStr); | |
free(pathStr); | |
return ret; | |
diff --git a/libraries/SDFS/src/SDFS.h b/libraries/SDFS/src/SDFS.h | |
index 6e13cdf2..77d6fb2c 100644 | |
--- a/libraries/SDFS/src/SDFS.h | |
+++ b/libraries/SDFS/src/SDFS.h | |
@@ -229,7 +229,7 @@ protected: | |
friend class SDFileImpl; | |
friend class SDFSDirImpl; | |
- SdFat* getFs() { | |
+ SdFs* getFs() { | |
return &_fs; | |
} | |
@@ -255,7 +255,7 @@ protected: | |
return mode; | |
} | |
- SdFat _fs; | |
+ SdFs _fs; | |
SDFSConfig _cfg; | |
bool _mounted; | |
}; | |
@@ -264,7 +264,7 @@ protected: | |
class SDFSFileImpl : public FileImpl | |
{ | |
public: | |
- SDFSFileImpl(SDFSImpl *fs, std::shared_ptr<File32> fd, const char *name) | |
+ SDFSFileImpl(SDFSImpl *fs, std::shared_ptr<FsFile> fd, const char *name) | |
: _fs(fs), _fd(fd), _opened(true) | |
{ | |
_name = std::shared_ptr<char>(new char[strlen(name) + 1], std::default_delete<char[]>()); | |
@@ -279,7 +279,7 @@ public: | |
int availableForWrite() override | |
{ | |
- return _opened ? _fd->availableSpaceForWrite() : 0; | |
+ return _opened ? _fd->availableForWrite() : 0; | |
} | |
size_t write(const uint8_t *buf, size_t size) override | |
@@ -380,10 +380,10 @@ public: | |
time_t getLastWrite() override { | |
time_t ftime = 0; | |
if (_opened && _fd) { | |
- DirFat_t tmp; | |
- if (_fd.get()->dirEntry(&tmp)) { | |
- ftime = SDFSImpl::FatToTimeT(*(uint16_t*)tmp.modifyDate, *(uint16_t*)tmp.modifyTime); | |
- } | |
+ uint16_t pdate; | |
+ uint16_t ptime; | |
+ _fd->getModifyDateTime(&pdate, &ptime); | |
+ ftime = SDFSImpl::FatToTimeT(pdate, ptime); | |
} | |
return ftime; | |
} | |
@@ -391,17 +391,17 @@ public: | |
time_t getCreationTime() override { | |
time_t ftime = 0; | |
if (_opened && _fd) { | |
- DirFat_t tmp; | |
- if (_fd.get()->dirEntry(&tmp)) { | |
- ftime = SDFSImpl::FatToTimeT(*(uint16_t*)tmp.createDate, *(uint16_t*)tmp.createTime); | |
- } | |
+ uint16_t pdate; | |
+ uint16_t ptime; | |
+ _fd->getCreateDateTime(&pdate, &ptime); | |
+ ftime = SDFSImpl::FatToTimeT(pdate, ptime); | |
} | |
return ftime; | |
} | |
protected: | |
SDFSImpl* _fs; | |
- std::shared_ptr<File32> _fd; | |
+ std::shared_ptr<FsFile> _fd; | |
std::shared_ptr<char> _name; | |
bool _opened; | |
}; | |
@@ -409,7 +409,7 @@ protected: | |
class SDFSDirImpl : public DirImpl | |
{ | |
public: | |
- SDFSDirImpl(const String& pattern, SDFSImpl* fs, std::shared_ptr<File32> dir, const char *dirPath = nullptr) | |
+ SDFSDirImpl(const String& pattern, SDFSImpl* fs, std::shared_ptr<FsFile> dir, const char *dirPath = nullptr) | |
: _pattern(pattern), _fs(fs), _dir(dir), _valid(false), _dirPath(nullptr) | |
{ | |
if (dirPath) { | |
@@ -484,21 +484,23 @@ public: | |
{ | |
const int n = _pattern.length(); | |
do { | |
- File32 file; | |
+ FsFile file; | |
file.openNext(_dir.get(), O_READ); | |
if (file) { | |
_valid = 1; | |
_size = file.fileSize(); | |
_isFile = file.isFile(); | |
_isDirectory = file.isDir(); | |
- DirFat_t tmp; | |
- if (file.dirEntry(&tmp)) { | |
- _time = SDFSImpl::FatToTimeT(*(uint16_t*)tmp.modifyDate, *(uint16_t*)tmp.modifyTime); | |
- _creation = SDFSImpl::FatToTimeT(*(uint16_t*)tmp.createDate, *(uint16_t*)tmp.createTime); | |
- } else { | |
- _time = 0; | |
- _creation = 0; | |
- } | |
+ | |
+ uint16_t pdate; | |
+ uint16_t ptime; | |
+ | |
+ file.getModifyDateTime(&pdate, &ptime); | |
+ _time = SDFSImpl::FatToTimeT(pdate, ptime); | |
+ | |
+ file.getCreateDateTime(&pdate, &ptime); | |
+ _creation = SDFSImpl::FatToTimeT(pdate, ptime); | |
+ | |
file.getName(_lfn, sizeof(_lfn)); | |
file.close(); | |
} else { | |
@@ -518,7 +520,7 @@ public: | |
protected: | |
String _pattern; | |
SDFSImpl* _fs; | |
- std::shared_ptr<File32> _dir; | |
+ std::shared_ptr<FsFile> _dir; | |
bool _valid; | |
char _lfn[64]; | |
time_t _time; | |
~\.\p\f\l\SDFS> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment