Soldered SD Card Arduino Library 1.0.0
Easily read and write files to and form the SD card breakout! A fork of the original SDFat library by Bill Greiman.
Loading...
Searching...
No Matches
FsVolume.h
Go to the documentation of this file.
1
25#ifndef FsVolume_h
26#define FsVolume_h
31#include "../ExFatLib/ExFatLib.h"
32#include "../FatLib/FatLib.h"
33#include "FsNew.h"
34
35class FsFile;
41{
42 public:
44 {
45 }
46
48 {
49 end();
50 }
51
57 bool begin(BlockDevice *blockDev);
58#ifndef DOXYGEN_SHOULD_SKIP_THIS
59 // Use sectorsPerCluster(). blocksPerCluster() will be removed in the future.
60 uint32_t blocksPerCluster() __attribute__((deprecated))
61 {
62 return sectorsPerCluster();
63 } // NOLINT
64#endif // DOXYGEN_SHOULD_SKIP_THIS
66 uint32_t bytesPerCluster() const
67 {
69 }
74 bool chdir()
75 {
76 return m_fVol ? m_fVol->chdir() : m_xVol ? m_xVol->chdir() : false;
77 }
83 bool chdir(const char *path)
84 {
85 return m_fVol ? m_fVol->chdir(path) : m_xVol ? m_xVol->chdir(path) : false;
86 }
88 void chvol()
89 {
90 m_cwv = this;
91 }
93 uint32_t clusterCount() const
94 {
95 return m_fVol ? m_fVol->clusterCount() : m_xVol ? m_xVol->clusterCount() : 0;
96 }
98 uint32_t dataStartSector() const
99 {
101 }
103 void end()
104 {
105 m_fVol = nullptr;
106 m_xVol = nullptr;
107 }
114 bool exists(const char *path)
115 {
116 return m_fVol ? m_fVol->exists(path) : m_xVol ? m_xVol->exists(path) : false;
117 }
119 uint32_t fatStartSector() const
120 {
122 }
126 uint8_t fatType() const
127 {
128 return m_fVol ? m_fVol->fatType() : m_xVol ? m_xVol->fatType() : 0;
129 }
131 uint32_t freeClusterCount() const
132 {
134 }
140 bool isBusy()
141 {
142 return m_fVol ? m_fVol->isBusy() : m_xVol ? m_xVol->isBusy() : false;
143 }
150 bool ls(print_t *pr)
151 {
152 return m_fVol ? m_fVol->ls(pr) : m_xVol ? m_xVol->ls(pr) : false;
153 }
167 bool ls(print_t *pr, uint8_t flags)
168 {
169 return m_fVol ? m_fVol->ls(pr, flags) : m_xVol ? m_xVol->ls(pr, flags) : false;
170 }
187 bool ls(print_t *pr, const char *path, uint8_t flags);
196 bool mkdir(const char *path, bool pFlag = true)
197 {
198 return m_fVol ? m_fVol->mkdir(path, pFlag) : m_xVol ? m_xVol->mkdir(path, pFlag) : false;
199 }
206 FsFile open(const char *path, oflag_t oflag = O_RDONLY);
213 bool remove(const char *path)
214 {
215 return m_fVol ? m_fVol->remove(path) : m_xVol ? m_xVol->remove(path) : false;
216 }
231 bool rename(const char *oldPath, const char *newPath)
232 {
233 return m_fVol ? m_fVol->rename(oldPath, newPath) : m_xVol ? m_xVol->rename(oldPath, newPath) : false;
234 }
243 bool rmdir(const char *path)
244 {
245 return m_fVol ? m_fVol->rmdir(path) : m_xVol ? m_xVol->rmdir(path) : false;
246 }
248 uint32_t sectorsPerCluster() const
249 {
251 }
252#if ENABLE_ARDUINO_SERIAL
256 bool ls()
257 {
258 return ls(&Serial);
259 }
272 bool ls(uint8_t flags)
273 {
274 return ls(&Serial, flags);
275 }
292 bool ls(const char *path, uint8_t flags = 0)
293 {
294 return ls(&Serial, path, flags);
295 }
296#endif // ENABLE_ARDUINO_SERIAL
297#if ENABLE_ARDUINO_STRING
303 bool chdir(const String &path)
304 {
305 return chdir(path.c_str());
306 }
313 bool exists(const String &path)
314 {
315 return exists(path.c_str());
316 }
325 bool mkdir(const String &path, bool pFlag = true)
326 {
327 return mkdir(path.c_str(), pFlag);
328 }
335 FsFile open(const String &path, oflag_t oflag = O_RDONLY);
342 bool remove(const String &path)
343 {
344 return remove(path.c_str());
345 }
360 bool rename(const String &oldPath, const String &newPath)
361 {
362 return rename(oldPath.c_str(), newPath.c_str());
363 }
372 bool rmdir(const String &path)
373 {
374 return rmdir(path.c_str());
375 }
390#endif // ENABLE_ARDUINO_STRING
391
392 protected:
394
395 private:
397 friend class FsBaseFile;
398 static FsVolume *cwv()
399 {
400 return m_cwv;
401 }
402 FsVolume(const FsVolume &from);
404
406 FatVolume *m_fVol = nullptr;
407 ExFatVolume *m_xVol = nullptr;
409};
410#endif // FsVolume_h
int oflag_t
Definition FsApiConstants.h:45
uint32_t newalign_t
Definition FsNew.h:31
union csd_t __attribute__
Print print_t
Definition SysCall.h:66
BlockDeviceInterface class.
Definition BlockDeviceInterface.h:39
uint32_t sectorsPerCluster() const
Definition ExFatPartition.h:134
uint32_t clusterCount() const
Definition ExFatPartition.h:81
uint32_t clusterHeapStartSector() const
Definition ExFatPartition.h:86
uint8_t fatType() const
Definition ExFatPartition.h:101
uint32_t fatStartSector() const
Definition ExFatPartition.h:96
uint32_t bytesPerCluster() const
Definition ExFatPartition.h:53
uint32_t freeClusterCount()
Definition ExFatPartition.cpp:287
bool isBusy()
Definition ExFatPartition.h:122
exFAT volume.
Definition ExFatVolume.h:35
bool mkdir(const ExChar_t *path, bool pFlag=true)
Definition ExFatVolume.h:146
bool remove(const ExChar_t *path)
Definition ExFatVolume.h:169
bool exists(const ExChar_t *path)
Definition ExFatVolume.h:92
bool rename(const ExChar_t *oldPath, const ExChar_t *newPath)
Definition ExFatVolume.h:188
bool rmdir(const ExChar_t *path)
Definition ExFatVolume.h:201
bool chdir()
Definition ExFatVolume.h:67
bool ls(print_t *pr, uint8_t flags=0)
Definition ExFatVolume.h:113
uint32_t fatStartSector() const
Definition FatPartition.h:145
uint32_t dataStartSector() const
Definition FatPartition.h:135
uint8_t sectorsPerCluster() const
Definition FatPartition.h:101
bool isBusy()
Definition FatPartition.h:201
uint32_t clusterCount() const
Definition FatPartition.h:125
uint16_t bytesPerCluster() const
Definition FatPartition.h:81
int32_t freeClusterCount()
Definition FatPartition.cpp:386
uint8_t fatType() const
Definition FatPartition.h:150
Integration class for the FatLib library.
Definition FatVolume.h:39
bool exists(const char *path)
Definition FatVolume.h:94
bool rename(const char *oldPath, const char *newPath)
Definition FatVolume.h:194
bool chdir()
Definition FatVolume.h:74
bool remove(const char *path)
Definition FatVolume.h:174
bool mkdir(const char *path, bool pFlag=true)
Definition FatVolume.h:149
bool ls(print_t *pr, uint8_t flags=0)
Definition FatVolume.h:114
bool rmdir(const char *path)
Definition FatVolume.h:208
FsBaseFile class.
Definition FsFile.h:39
FsBaseFile file with Arduino Stream.
Definition FsFile.h:865
FsVolume class.
Definition FsVolume.h:41
bool remove(const String &path)
Definition FsVolume.h:342
bool ls(const char *path, uint8_t flags=0)
Definition FsVolume.h:292
uint32_t freeClusterCount() const
Definition FsVolume.h:131
bool rmdir(const String &path)
Definition FsVolume.h:372
void chvol()
Definition FsVolume.h:88
static FsVolume * cwv()
Definition FsVolume.h:398
FsVolume()
Definition FsVolume.h:43
bool isBusy()
Definition FsVolume.h:140
bool exists(const String &path)
Definition FsVolume.h:313
bool ls(print_t *pr, uint8_t flags)
Definition FsVolume.h:167
bool mkdir(const String &path, bool pFlag=true)
Definition FsVolume.h:325
FsVolume(const FsVolume &from)
bool ls(print_t *pr)
Definition FsVolume.h:150
bool chdir(const String &path)
Definition FsVolume.h:303
FsFile open(const char *path, oflag_t oflag=O_RDONLY)
Definition FsVolume.cpp:58
FsVolume & operator=(const FsVolume &from)
uint32_t dataStartSector() const
Definition FsVolume.h:98
bool rename(const String &oldPath, const String &newPath)
Definition FsVolume.h:360
~FsVolume()
Definition FsVolume.h:47
ExFatVolume * m_xVol
Definition FsVolume.h:407
uint32_t clusterCount() const
Definition FsVolume.h:93
bool exists(const char *path)
Definition FsVolume.h:114
bool mkdir(const char *path, bool pFlag=true)
Definition FsVolume.h:196
bool remove(const char *path)
Definition FsVolume.h:213
bool ls()
Definition FsVolume.h:256
bool rename(const char *oldPath, const char *newPath)
Definition FsVolume.h:231
bool chdir()
Definition FsVolume.h:74
FatVolume * m_fVol
Definition FsVolume.h:406
bool chdir(const char *path)
Definition FsVolume.h:83
uint32_t fatStartSector() const
Definition FsVolume.h:119
void end()
Definition FsVolume.h:103
uint32_t sectorsPerCluster() const
Definition FsVolume.h:248
uint32_t blocksPerCluster() __attribute__((deprecated))
Definition FsVolume.h:60
bool rmdir(const char *path)
Definition FsVolume.h:243
uint8_t fatType() const
Definition FsVolume.h:126
newalign_t m_volMem[FS_ALIGN_DIM(ExFatVolume, FatVolume)]
Definition FsVolume.h:393
BlockDevice * m_blockDev
Definition FsVolume.h:408
bool begin(BlockDevice *blockDev)
Definition FsVolume.cpp:28
static FsVolume * m_cwv
Definition FsVolume.h:405
bool ls(uint8_t flags)
Definition FsVolume.h:272