aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/dc/dc-fs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/dc/dc-fs.cpp')
-rw-r--r--backends/platform/dc/dc-fs.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp
index c1b31d4815..c4f1d76f10 100644
--- a/backends/platform/dc/dc-fs.cpp
+++ b/backends/platform/dc/dc-fs.cpp
@@ -24,6 +24,7 @@
#include "dc.h"
#include "backends/fs/abstract-fs.h"
+#include "backends/fs/stdiostream.h"
#include <ronin/cdfs.h>
#include <stdio.h>
@@ -52,6 +53,9 @@ public:
virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const { return false; }
virtual AbstractFilesystemNode *getParent() const;
+ virtual Common::SeekableReadStream *openForReading();
+ virtual Common::WriteStream *openForWriting();
+
static AbstractFilesystemNode *makeFileNodePath(const Common::String &path);
};
@@ -143,6 +147,15 @@ AbstractFilesystemNode *RoninCDFileNode::getParent() const {
return new RoninCDDirectoryNode(Common::String(start, end - start));
}
+
+Common::SeekableReadStream *RoninCDFileNode::openForReading() {
+ return StdioStream::makeFromPath(getPath().c_str(), false);
+}
+
+Common::WriteStream *RoninCDFileNode::openForWriting() {
+ return StdioStream::makeFromPath(getPath().c_str(), true);
+}
+
AbstractFilesystemNode *OSystem_Dreamcast::makeRootFileNode() const {
return new RoninCDDirectoryNode("/");
}