Skip to content

Commit

Permalink
Display all compressed formats in blue in GUI
Browse files Browse the repository at this point in the history
In the past, only GCZ was shown as compressed, not CISO and WBFS.
  • Loading branch information
JosJuice committed Sep 26, 2015
1 parent 94ee720 commit 6935d28
Show file tree
Hide file tree
Showing 17 changed files with 36 additions and 5 deletions.
3 changes: 2 additions & 1 deletion Source/Core/DiscIO/Blob.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ class IBlobReader
public:
virtual ~IBlobReader() {}

virtual u64 GetRawSize() const = 0;
virtual bool IsCompressed() const = 0;
virtual u64 GetRawSize() const = 0;
virtual u64 GetDataSize() const = 0;
// NOT thread-safe - can't call this from multiple threads.
virtual bool Read(u64 offset, u64 size, u8* out_ptr) = 0;
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/CISOBlob.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class CISOFileReader : public IBlobReader
public:
static CISOFileReader* Create(const std::string& filename);

bool IsCompressed() const override { return true; }
u64 GetDataSize() const override;
u64 GetRawSize() const override;
bool Read(u64 offset, u64 nbytes, u8* out_ptr) override;
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/CompressedBlob.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class CompressedBlobReader : public SectorReader
static CompressedBlobReader* Create(const std::string& filename);
~CompressedBlobReader();
const CompressedBlobHeader &GetHeader() const { return m_header; }
bool IsCompressed() const override { return true; }
u64 GetDataSize() const override { return m_header.data_size; }
u64 GetRawSize() const override { return m_file_size; }
u64 GetBlockCompressedSize(u64 block_num) const;
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/DriveBlob.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class DriveReader : public SectorReader
public:
static DriveReader* Create(const std::string& drive);
~DriveReader();
bool IsCompressed() const override { return false; }
u64 GetDataSize() const override { return m_size; }
u64 GetRawSize() const override { return m_size; }

Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/FileBlob.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class PlainFileReader : public IBlobReader
public:
static PlainFileReader* Create(const std::string& filename);

bool IsCompressed() const override { return false; }
u64 GetDataSize() const override { return m_size; }
u64 GetRawSize() const override { return m_size; }
bool Read(u64 offset, u64 nbytes, u8* out_ptr) override;
Expand Down
3 changes: 2 additions & 1 deletion Source/Core/DiscIO/Volume.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,9 @@ class IVolume
virtual bool ChangePartition(u64 offset) { return false; }

virtual ECountry GetCountry() const = 0;
virtual bool IsCompressed() const = 0;
// Size of virtual disc (not always accurate)
virtual u64 GetSize() const = 0;

// Size on disc (compressed size)
virtual u64 GetRawSize() const = 0;

Expand Down
5 changes: 5 additions & 0 deletions Source/Core/DiscIO/VolumeDirectory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,11 @@ IVolume::EPlatform CVolumeDirectory::GetVolumeType() const
return m_is_wii ? WII_DISC : GAMECUBE_DISC;
}

bool CVolumeDirectory::IsCompressed() const
{
return false;
}

u64 CVolumeDirectory::GetSize() const
{
return 0;
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/VolumeDirectory.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ class CVolumeDirectory : public IVolume

ECountry GetCountry() const override;

bool IsCompressed() const override;
u64 GetSize() const override;
u64 GetRawSize() const override;

Expand Down
5 changes: 5 additions & 0 deletions Source/Core/DiscIO/VolumeGC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,11 @@ std::string CVolumeGC::GetApploaderDate() const
return DecodeString(date);
}

bool CVolumeGC::IsCompressed() const
{
return m_pReader ? m_pReader->IsCompressed() : false;
}

u64 CVolumeGC::GetSize() const
{
if (m_pReader)
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/VolumeGC.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ class CVolumeGC : public IVolume

EPlatform GetVolumeType() const override;
ECountry GetCountry() const override;
bool IsCompressed() const override;
u64 GetSize() const override;
u64 GetRawSize() const override;

Expand Down
5 changes: 5 additions & 0 deletions Source/Core/DiscIO/VolumeWad.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,11 @@ std::map<IVolume::ELanguage, std::string> CVolumeWAD::GetNames(bool prefer_long)
return ReadWiiNames(name_data);
}

bool CVolumeWAD::IsCompressed() const
{
return m_pReader ? m_pReader->IsCompressed() : false;
}

u64 CVolumeWAD::GetSize() const
{
if (m_pReader)
Expand Down
3 changes: 2 additions & 1 deletion Source/Core/DiscIO/VolumeWad.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,9 @@ class CVolumeWAD : public IVolume
std::string GetApploaderDate() const override { return ""; }

EPlatform GetVolumeType() const override;

ECountry GetCountry() const override;

bool IsCompressed() const override;
u64 GetSize() const override;
u64 GetRawSize() const override;

Expand Down
5 changes: 5 additions & 0 deletions Source/Core/DiscIO/VolumeWiiCrypted.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -250,6 +250,11 @@ u8 CVolumeWiiCrypted::GetDiscNumber() const
return disc_number;
}

bool CVolumeWiiCrypted::IsCompressed() const
{
return m_pReader ? m_pReader->IsCompressed() : false;
}

u64 CVolumeWiiCrypted::GetSize() const
{
if (m_pReader)
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/VolumeWiiCrypted.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ class CVolumeWiiCrypted : public IVolume
bool ChangePartition(u64 offset) override;

ECountry GetCountry() const override;
bool IsCompressed() const override;
u64 GetSize() const override;
u64 GetRawSize() const override;

Expand Down
1 change: 1 addition & 0 deletions Source/Core/DiscIO/WbfsBlob.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ class WbfsFileReader : public IBlobReader
public:
static WbfsFileReader* Create(const std::string& filename);

bool IsCompressed() const override { return true; }
u64 GetDataSize() const override { return m_size; }
u64 GetRawSize() const override { return m_size; }
bool Read(u64 offset, u64 nbytes, u8* out_ptr) override;
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/DolphinQt/GameList/GameFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ GameFile::GameFile(const QString& fileName)
m_volume_size = volume->GetSize();

m_unique_id = QString::fromStdString(volume->GetUniqueID());
m_compressed = DiscIO::IsGCZBlob(fileName.toStdString());
m_compressed = volume->IsCompressed();
m_disc_number = volume->GetDiscNumber();
m_revision = volume->GetRevision();

Expand Down
2 changes: 1 addition & 1 deletion Source/Core/DolphinWX/ISOFile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ GameListItem::GameListItem(const std::string& _rFileName, const std::unordered_m
m_VolumeSize = pVolume->GetSize();

m_UniqueID = pVolume->GetUniqueID();
m_BlobCompressed = DiscIO::IsGCZBlob(_rFileName);
m_BlobCompressed = pVolume->IsCompressed();
m_disc_number = pVolume->GetDiscNumber();
m_Revision = pVolume->GetRevision();

Expand Down

0 comments on commit 6935d28

Please sign in to comment.