summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/Src/FileHandlerARC.cpp
diff options
context:
space:
mode:
authorfires.gc <fires.gc@gmail.com>2009-02-28 01:49:30 +0000
committerfires.gc <fires.gc@gmail.com>2009-02-28 01:49:30 +0000
commitcbd5345696a6808df8b53fc3963343fd544b221b (patch)
treed345167f03f3ffc44b4aced6ffc1c7efe75b94a1 /Source/Core/DiscIO/Src/FileHandlerARC.cpp
parent0e9a49af7f98df9a3cf025868d3bcc479f41c5ca (diff)
improved FileHandlerARC
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2461 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO/Src/FileHandlerARC.cpp')
-rw-r--r--Source/Core/DiscIO/Src/FileHandlerARC.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/Source/Core/DiscIO/Src/FileHandlerARC.cpp b/Source/Core/DiscIO/Src/FileHandlerARC.cpp
index 435cbbf272..ae8b96ac6d 100644
--- a/Source/Core/DiscIO/Src/FileHandlerARC.cpp
+++ b/Source/Core/DiscIO/Src/FileHandlerARC.cpp
@@ -20,15 +20,32 @@
#include "FileHandlerARC.h"
#include "StringUtil.h"
+#include "Blob.h"
#define ARC_ID 0x55aa382d
namespace DiscIO
{
+CARCFile::CARCFile(const std::string& _rFilename)
+ : m_pBuffer(NULL)
+ , m_Initialized(false)
+{
+ DiscIO::IBlobReader* pReader = DiscIO::CreateBlobReader(_rFilename.c_str());
+ if (pReader != NULL)
+ {
+ u64 FileSize = pReader->GetDataSize();
+ m_pBuffer = new u8[FileSize];
+ pReader->Read(0, FileSize, m_pBuffer);
+ delete pReader;
+
+ m_Initialized = ParseBuffer();
+ }
+}
+
CARCFile::CARCFile(const u8* _pBuffer, size_t _BufferSize)
- : m_pBuffer(NULL),
- m_Initialized(false)
+ : m_pBuffer(NULL)
+ , m_Initialized(false)
{
m_pBuffer = new u8[_BufferSize];