22namespace fs = ::std::filesystem;
28 virtual ~MediaFile() =
default;
36 static FileType type(
const fs::path &path);
39 static MediaFile *make(
const fs::path &path);
40 static MediaFile *make(
const fs::path &path, FileType type);
41 static MediaFile *make(
const u8 *buf, isize len, FileType type);
42 static MediaFile *make(
class FileSystem &fs, FileType type);
43 static MediaFile *make(
struct DriveAPI &drive, FileType type);
51 virtual FileType type()
const {
return FILETYPE_UNKNOWN; }
54 virtual isize getSize()
const = 0;
57 virtual u8 *getData()
const = 0;
60 virtual string name()
const = 0;
63 virtual u64 fnv()
const = 0;
66 virtual time_t timestamp()
const {
return time_t(0); }
69 virtual std::pair <isize,isize> previewImageSize()
const {
return { 0, 0 }; }
72 virtual const u32 *previewImageData()
const {
return nullptr; }
75 virtual void flash(u8 *buf, isize offset = 0)
const = 0;
84 virtual void readFromStream(std::istream &stream) = 0;
85 virtual void readFromFile(
const fs::path &path) = 0;
86 virtual void readFromBuffer(
const u8 *buf, isize len) = 0;
88 virtual void writeToStream(std::ostream &stream) = 0;
89 virtual void writeToFile(
const fs::path &path) = 0;
90 virtual void writeToBuffer(u8 *buf) = 0;
VirtualC64 project namespace.
Definition CmdQueue.cpp:16