diff options
| author | hrydgard <hrydgard@gmail.com> | 2008-09-24 20:47:11 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2008-09-24 20:47:11 +0000 |
| commit | 08e81eddb97614a4e286a6f35092fe56c16a3113 (patch) | |
| tree | 01d26d48f75e6de46c30f07ec444fff7cdbc3bd1 /Source/Core/DiscIO | |
| parent | 3883ce6ee9df56787d67493a02745dd760e27c6c (diff) | |
Protect dvdread with a critical section, should fix crashes when running ikaruga from a compressed iso. Some coding standard stuff.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@672 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO')
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeGC.cpp | 55 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeGC.h | 40 | ||||
| -rw-r--r-- | Source/Core/DiscIO/Src/VolumeWiiCrypted.h | 46 |
3 files changed, 46 insertions, 95 deletions
diff --git a/Source/Core/DiscIO/Src/VolumeGC.cpp b/Source/Core/DiscIO/Src/VolumeGC.cpp index 3092f405c3..f942898e42 100644 --- a/Source/Core/DiscIO/Src/VolumeGC.cpp +++ b/Source/Core/DiscIO/Src/VolumeGC.cpp @@ -26,55 +26,37 @@ CVolumeGC::CVolumeGC(IBlobReader* _pReader) : m_pReader(_pReader)
{}
-
CVolumeGC::~CVolumeGC()
{
delete m_pReader;
}
-
-bool
-CVolumeGC::Read(u64 _Offset, u64 _Length, u8* _pBuffer) const
+bool CVolumeGC::Read(u64 _Offset, u64 _Length, u8* _pBuffer) const
{
if (m_pReader == NULL)
- {
- return(false);
- }
-
- return(m_pReader->Read(_Offset, _Length, _pBuffer));
+ return false;
+ return m_pReader->Read(_Offset, _Length, _pBuffer);
}
-
-std::string
-CVolumeGC::GetName() const
+std::string CVolumeGC::GetName() const
{
if (m_pReader == NULL)
- {
- return(false);
- }
+ return false;
char Name[128];
-
if (!Read(0x20, 0x60, (u8*)&Name))
- {
- return(false);
- }
+ return false;
- return(Name);
+ return Name;
}
-
-std::string
-CVolumeGC::GetUniqueID() const
+std::string CVolumeGC::GetUniqueID() const
{
static const std::string NO_UID("NO_UID");
if (m_pReader == NULL)
- {
return NO_UID;
- }
char id[6];
-
if (!Read(0, sizeof(id), reinterpret_cast<u8*>(id)))
{
PanicAlert("Failed to read unique ID from disc image");
@@ -84,14 +66,10 @@ CVolumeGC::GetUniqueID() const return std::string(id, sizeof(id));
}
-
-IVolume::ECountry
-CVolumeGC::GetCountry() const
+IVolume::ECountry CVolumeGC::GetCountry() const
{
if (!m_pReader)
- {
- return(COUNTRY_UNKNOWN);
- }
+ return COUNTRY_UNKNOWN;
u8 CountryCode;
m_pReader->Read(3, 1, &CountryCode);
@@ -141,17 +119,12 @@ CVolumeGC::GetCountry() const return(country);
}
-
-u64
-CVolumeGC::GetSize() const
+u64 CVolumeGC::GetSize() const
{
if (m_pReader)
- {
- return((size_t)m_pReader->GetDataSize());
- }
+ return (size_t)m_pReader->GetDataSize();
else
- {
- return(0);
- }
+ return 0;
}
+
} // namespace
diff --git a/Source/Core/DiscIO/Src/VolumeGC.h b/Source/Core/DiscIO/Src/VolumeGC.h index d481c7818b..a29f30db29 100644 --- a/Source/Core/DiscIO/Src/VolumeGC.h +++ b/Source/Core/DiscIO/Src/VolumeGC.h @@ -20,35 +20,23 @@ #include "Volume.h"
#include "Blob.h"
-//
-// --- this volume type is used for GC and for decrypted Wii images ---
-//
+// --- this volume type is used for GC disc images ---
namespace DiscIO
{
-class CVolumeGC
- : public IVolume
+class CVolumeGC : public IVolume
{
- public:
-
- CVolumeGC(IBlobReader* _pReader);
-
- ~CVolumeGC();
-
- bool Read(u64 _Offset, u64 _Length, u8* _pBuffer) const;
-
- std::string GetName() const;
-
- std::string GetUniqueID() const;
-
- ECountry GetCountry() const;
-
- u64 GetSize() const;
-
-
- private:
-
- IBlobReader* m_pReader;
+public:
+ CVolumeGC(IBlobReader* _pReader);
+ ~CVolumeGC();
+ bool Read(u64 _Offset, u64 _Length, u8* _pBuffer) const;
+ std::string GetName() const;
+ std::string GetUniqueID() const;
+ ECountry GetCountry() const;
+ u64 GetSize() const;
+
+private:
+ IBlobReader* m_pReader;
};
-} // namespace
+} // namespace
diff --git a/Source/Core/DiscIO/Src/VolumeWiiCrypted.h b/Source/Core/DiscIO/Src/VolumeWiiCrypted.h index aef579b0e8..63e9cad76e 100644 --- a/Source/Core/DiscIO/Src/VolumeWiiCrypted.h +++ b/Source/Core/DiscIO/Src/VolumeWiiCrypted.h @@ -22,43 +22,33 @@ #include "Blob.h"
#include "AES/aes.h"
-//
// --- this volume type is used for encrypted Wii images ---
-//
+
namespace DiscIO
{
-class CVolumeWiiCrypted
- : public IVolume
+class CVolumeWiiCrypted : public IVolume
{
- public:
-
- CVolumeWiiCrypted(IBlobReader* _pReader, u64 _VolumeOffset, const unsigned char* _pVolumeKey);
-
- ~CVolumeWiiCrypted();
-
- bool Read(u64 _Offset, u64 _Length, u8* _pBuffer) const;
-
- std::string GetName() const;
-
- std::string GetUniqueID() const;
+public:
+ CVolumeWiiCrypted(IBlobReader* _pReader, u64 _VolumeOffset, const unsigned char* _pVolumeKey);
+ ~CVolumeWiiCrypted();
+ bool Read(u64 _Offset, u64 _Length, u8* _pBuffer) const;
+ std::string GetName() const;
+ std::string GetUniqueID() const;
+ ECountry GetCountry() const;
+ u64 GetSize() const;
- ECountry GetCountry() const;
+private:
+ IBlobReader* m_pReader;
- u64 GetSize() const;
+ u8* m_pBuffer;
+ AES_KEY m_AES_KEY;
+ u64 m_VolumeOffset;
- private:
-
- IBlobReader* m_pReader;
-
- u8* m_pBuffer;
- AES_KEY m_AES_KEY;
-
- u64 m_VolumeOffset;
-
- mutable u64 m_LastDecryptedBlockOffset;
- mutable unsigned char m_LastDecryptedBlock[0x8000];
+ mutable u64 m_LastDecryptedBlockOffset;
+ mutable unsigned char m_LastDecryptedBlock[0x8000];
};
+
} // namespace
#endif
|
