3#ifdef FILEIO_ENABLE_FATFS_READER
6#ifdef FILEIO_ENABLE_CSTDIO_READER
18 virtual size_t read(
void* dst,
21 virtual bool seek(uint32_t pos) = 0;
23 virtual uint32_t
size()
const = 0;
26#ifdef FILEIO_ENABLE_FATFS_READER
27class FileReader :
public IReader
30 explicit FileReader(FIL* f) : f_(f)
34 size_ =
static_cast<uint32_t
>(f_size(f_));
38 size_t read(
void* dst,
size_t bytes)
override
44 f_read(f_, dst, bytes, &br);
47 bool seek(uint32_t pos)
override
49 return f_lseek(f_,
static_cast<FSIZE_t
>(pos)) == FR_OK;
51 uint32_t position()
const override
54 return p < 0 ? 0u : static_cast<uint32_t>(p);
56 uint32_t size()
const override {
return size_; }
64#ifdef FILEIO_ENABLE_CSTDIO_READER
65class FileReader :
public IReader
68 explicit FileReader(FILE* f) : f_(f)
75 if(fseek(f_, 0, SEEK_END) == 0)
79 size_ =
static_cast<uint32_t
>(end);
81 fseek(f_, pos, SEEK_SET);
84 size_t read(
void* dst,
size_t bytes)
override
86 return fread(dst, 1, bytes, f_);
88 bool seek(uint32_t pos)
override
90 return fseek(f_,
static_cast<long>(pos), SEEK_SET) == 0;
92 uint32_t position()
const override
95 return p < 0 ? 0u : static_cast<uint32_t>(p);
97 uint32_t size()
const override {
return size_; }
Definition FileReader.h:15
virtual uint32_t size() const =0
virtual uint32_t position() const =0
virtual ~IReader()=default
virtual size_t read(void *dst, size_t bytes)=0
virtual bool seek(uint32_t pos)=0
Hardware defines and helpers for daisy field platform.
Definition index.h:2