diff options
| author | JosJuice <josjuice@gmail.com> | 2015-10-03 13:42:26 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2015-12-14 09:38:23 +0100 |
| commit | c01265db34492341308eba6bb3fb5dace67dba26 (patch) | |
| tree | a29078e6a985bb4b5e08c612ea50faf17d6471cf /Source/Core/DiscIO | |
| parent | c7e747d775567838cfd0101f22f106df9d3b38df (diff) | |
DiscIO: Unify CBlobBigEndianReader
Diffstat (limited to 'Source/Core/DiscIO')
| -rw-r--r-- | Source/Core/DiscIO/Blob.h | 31 | ||||
| -rw-r--r-- | Source/Core/DiscIO/VolumeCreator.cpp | 27 | ||||
| -rw-r--r-- | Source/Core/DiscIO/WiiWad.cpp | 16 |
3 files changed, 31 insertions, 43 deletions
diff --git a/Source/Core/DiscIO/Blob.h b/Source/Core/DiscIO/Blob.h index 29a8ced696..fe15543e80 100644 --- a/Source/Core/DiscIO/Blob.h +++ b/Source/Core/DiscIO/Blob.h @@ -17,6 +17,7 @@ #include <array> #include <memory> #include <string> +#include "Common/CommonFuncs.h" #include "Common/CommonTypes.h" namespace DiscIO @@ -77,6 +78,36 @@ private: std::array<u64, CACHE_SIZE> m_cache_tags; }; +class CBlobBigEndianReader +{ +public: + CBlobBigEndianReader(IBlobReader& reader) : m_reader(reader) {} + + u32 Read32(u64 offset) const + { + u32 temp; + m_reader.Read(offset, sizeof(u32), reinterpret_cast<u8*>(&temp)); + return Common::swap32(temp); + } + + u16 Read16(u64 offset) const + { + u16 temp; + m_reader.Read(offset, sizeof(u16), reinterpret_cast<u8*>(&temp)); + return Common::swap16(temp); + } + + u8 Read8(u64 offset) const + { + u8 temp; + m_reader.Read(offset, sizeof(u8), &temp); + return temp; + } + +private: + IBlobReader& m_reader; +}; + // Factory function - examines the path to choose the right type of IBlobReader, and returns one. std::unique_ptr<IBlobReader> CreateBlobReader(const std::string& filename); diff --git a/Source/Core/DiscIO/VolumeCreator.cpp b/Source/Core/DiscIO/VolumeCreator.cpp index a6305941ac..636a7159e7 100644 --- a/Source/Core/DiscIO/VolumeCreator.cpp +++ b/Source/Core/DiscIO/VolumeCreator.cpp @@ -34,33 +34,6 @@ enum EDiscType DISC_TYPE_WAD }; -class CBlobBigEndianReader -{ -public: - CBlobBigEndianReader(IBlobReader& _rReader) : m_rReader(_rReader) {} - - u32 Read32(u64 _Offset) - { - u32 Temp; - m_rReader.Read(_Offset, 4, (u8*)&Temp); - return Common::swap32(Temp); - } - u16 Read16(u64 _Offset) - { - u16 Temp; - m_rReader.Read(_Offset, 2, (u8*)&Temp); - return Common::swap16(Temp); - } - u8 Read8(u64 _Offset) - { - u8 Temp; - m_rReader.Read(_Offset, 1, &Temp); - return Temp; - } -private: - IBlobReader& m_rReader; -}; - static const unsigned char s_master_key[16] = { 0xeb,0xe4,0x2a,0x22,0x5e,0x85,0x93,0xe4, 0x48,0xd9,0xc5,0x45,0x73,0x81,0xaa,0xf7 diff --git a/Source/Core/DiscIO/WiiWad.cpp b/Source/Core/DiscIO/WiiWad.cpp index d3d145faff..62232ff8c0 100644 --- a/Source/Core/DiscIO/WiiWad.cpp +++ b/Source/Core/DiscIO/WiiWad.cpp @@ -18,22 +18,6 @@ namespace DiscIO { -class CBlobBigEndianReader -{ -public: - CBlobBigEndianReader(DiscIO::IBlobReader& _rReader) : m_rReader(_rReader) {} - - u32 Read32(u64 _Offset) - { - u32 Temp; - m_rReader.Read(_Offset, 4, (u8*)&Temp); - return(Common::swap32(Temp)); - } - -private: - DiscIO::IBlobReader& m_rReader; -}; - WiiWAD::WiiWAD(const std::string& name) { std::unique_ptr<IBlobReader> reader(DiscIO::CreateBlobReader(name)); |
