summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/FileBlob.cpp
diff options
context:
space:
mode:
authorJules Blok <jules.blok@gmail.com>2015-06-10 00:00:12 +0200
committerJules Blok <jules.blok@gmail.com>2015-06-10 00:00:12 +0200
commit7dfced21a2e5aac7195e0e1ad76468e30306766b (patch)
treebd671b639d3d911460b767caabad8fc8a759a6bf /Source/Core/DiscIO/FileBlob.cpp
parentc25be031fc1031d795157d8344b87b7841145197 (diff)
parent7b0a65e295c784f9d573f2ef52d4e2a7b9bb2889 (diff)
Merge branch 'master' into stable
Diffstat (limited to 'Source/Core/DiscIO/FileBlob.cpp')
-rw-r--r--Source/Core/DiscIO/FileBlob.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/FileBlob.cpp b/Source/Core/DiscIO/FileBlob.cpp
new file mode 100644
index 0000000000..3e702d650c
--- /dev/null
+++ b/Source/Core/DiscIO/FileBlob.cpp
@@ -0,0 +1,39 @@
+// Copyright 2008 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include <string>
+#include "DiscIO/FileBlob.h"
+
+namespace DiscIO
+{
+
+PlainFileReader::PlainFileReader(std::FILE* file)
+ : m_file(file)
+{
+ m_size = m_file.GetSize();
+}
+
+PlainFileReader* PlainFileReader::Create(const std::string& filename)
+{
+ File::IOFile f(filename, "rb");
+ if (f)
+ return new PlainFileReader(f.ReleaseHandle());
+ else
+ return nullptr;
+}
+
+bool PlainFileReader::Read(u64 offset, u64 nbytes, u8* out_ptr)
+{
+ if (m_file.Seek(offset, SEEK_SET) && m_file.ReadBytes(out_ptr, nbytes))
+ {
+ return true;
+ }
+ else
+ {
+ m_file.Clear();
+ return false;
+ }
+}
+
+} // namespace