diff options
| author | fires.gc <fires.gc@gmail.com> | 2009-02-28 01:49:30 +0000 |
|---|---|---|
| committer | fires.gc <fires.gc@gmail.com> | 2009-02-28 01:49:30 +0000 |
| commit | cbd5345696a6808df8b53fc3963343fd544b221b (patch) | |
| tree | d345167f03f3ffc44b4aced6ffc1c7efe75b94a1 /Source/Core/DiscIO/Src/FileHandlerARC.cpp | |
| parent | 0e9a49af7f98df9a3cf025868d3bcc479f41c5ca (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.cpp | 21 |
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]; |
