mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Reformat all the things. Have fun with merge conflicts.
This commit is contained in:
@ -19,119 +19,119 @@ namespace DiscIO
|
||||
class IVolume
|
||||
{
|
||||
public:
|
||||
// Increment CACHE_REVISION if the enums below are modified (ISOFile.cpp & GameFile.cpp)
|
||||
enum EPlatform
|
||||
{
|
||||
GAMECUBE_DISC = 0,
|
||||
WII_DISC,
|
||||
WII_WAD,
|
||||
ELF_DOL,
|
||||
NUMBER_OF_PLATFORMS
|
||||
};
|
||||
// Increment CACHE_REVISION if the enums below are modified (ISOFile.cpp & GameFile.cpp)
|
||||
enum EPlatform
|
||||
{
|
||||
GAMECUBE_DISC = 0,
|
||||
WII_DISC,
|
||||
WII_WAD,
|
||||
ELF_DOL,
|
||||
NUMBER_OF_PLATFORMS
|
||||
};
|
||||
|
||||
enum ECountry
|
||||
{
|
||||
COUNTRY_EUROPE = 0,
|
||||
COUNTRY_JAPAN,
|
||||
COUNTRY_USA,
|
||||
COUNTRY_AUSTRALIA,
|
||||
COUNTRY_FRANCE,
|
||||
COUNTRY_GERMANY,
|
||||
COUNTRY_ITALY,
|
||||
COUNTRY_KOREA,
|
||||
COUNTRY_NETHERLANDS,
|
||||
COUNTRY_RUSSIA,
|
||||
COUNTRY_SPAIN,
|
||||
COUNTRY_TAIWAN,
|
||||
COUNTRY_WORLD,
|
||||
COUNTRY_UNKNOWN,
|
||||
NUMBER_OF_COUNTRIES
|
||||
};
|
||||
enum ECountry
|
||||
{
|
||||
COUNTRY_EUROPE = 0,
|
||||
COUNTRY_JAPAN,
|
||||
COUNTRY_USA,
|
||||
COUNTRY_AUSTRALIA,
|
||||
COUNTRY_FRANCE,
|
||||
COUNTRY_GERMANY,
|
||||
COUNTRY_ITALY,
|
||||
COUNTRY_KOREA,
|
||||
COUNTRY_NETHERLANDS,
|
||||
COUNTRY_RUSSIA,
|
||||
COUNTRY_SPAIN,
|
||||
COUNTRY_TAIWAN,
|
||||
COUNTRY_WORLD,
|
||||
COUNTRY_UNKNOWN,
|
||||
NUMBER_OF_COUNTRIES
|
||||
};
|
||||
|
||||
// Languages 0 - 9 match the official Wii language numbering.
|
||||
// Languages 1 - 6 match the official GC PAL languages 0 - 5.
|
||||
enum ELanguage
|
||||
{
|
||||
LANGUAGE_JAPANESE = 0,
|
||||
LANGUAGE_ENGLISH = 1,
|
||||
LANGUAGE_GERMAN = 2,
|
||||
LANGUAGE_FRENCH = 3,
|
||||
LANGUAGE_SPANISH = 4,
|
||||
LANGUAGE_ITALIAN = 5,
|
||||
LANGUAGE_DUTCH = 6,
|
||||
LANGUAGE_SIMPLIFIED_CHINESE = 7,
|
||||
LANGUAGE_TRADITIONAL_CHINESE = 8,
|
||||
LANGUAGE_KOREAN = 9,
|
||||
LANGUAGE_UNKNOWN
|
||||
};
|
||||
// Languages 0 - 9 match the official Wii language numbering.
|
||||
// Languages 1 - 6 match the official GC PAL languages 0 - 5.
|
||||
enum ELanguage
|
||||
{
|
||||
LANGUAGE_JAPANESE = 0,
|
||||
LANGUAGE_ENGLISH = 1,
|
||||
LANGUAGE_GERMAN = 2,
|
||||
LANGUAGE_FRENCH = 3,
|
||||
LANGUAGE_SPANISH = 4,
|
||||
LANGUAGE_ITALIAN = 5,
|
||||
LANGUAGE_DUTCH = 6,
|
||||
LANGUAGE_SIMPLIFIED_CHINESE = 7,
|
||||
LANGUAGE_TRADITIONAL_CHINESE = 8,
|
||||
LANGUAGE_KOREAN = 9,
|
||||
LANGUAGE_UNKNOWN
|
||||
};
|
||||
|
||||
IVolume() {}
|
||||
virtual ~IVolume() {}
|
||||
IVolume() {}
|
||||
virtual ~IVolume() {}
|
||||
// decrypt parameter must be false if not reading a Wii disc
|
||||
virtual bool Read(u64 _Offset, u64 _Length, u8* _pBuffer, bool decrypt) const = 0;
|
||||
template <typename T>
|
||||
bool ReadSwapped(u64 offset, T* buffer, bool decrypt) const
|
||||
{
|
||||
T temp;
|
||||
if (!Read(offset, sizeof(T), reinterpret_cast<u8*>(&temp), decrypt))
|
||||
return false;
|
||||
*buffer = Common::FromBigEndian(temp);
|
||||
return true;
|
||||
}
|
||||
|
||||
// decrypt parameter must be false if not reading a Wii disc
|
||||
virtual bool Read(u64 _Offset, u64 _Length, u8* _pBuffer, bool decrypt) const = 0;
|
||||
template <typename T>
|
||||
bool ReadSwapped(u64 offset, T* buffer, bool decrypt) const
|
||||
{
|
||||
T temp;
|
||||
if (!Read(offset, sizeof(T), reinterpret_cast<u8*>(&temp), decrypt))
|
||||
return false;
|
||||
*buffer = Common::FromBigEndian(temp);
|
||||
return true;
|
||||
}
|
||||
virtual bool GetTitleID(u64*) const { return false; }
|
||||
virtual std::vector<u8> GetTMD() const { return {}; }
|
||||
virtual std::string GetUniqueID() const = 0;
|
||||
virtual std::string GetMakerID() const = 0;
|
||||
virtual u16 GetRevision() const = 0;
|
||||
virtual std::string GetInternalName() const = 0;
|
||||
virtual std::map<ELanguage, std::string> GetNames(bool prefer_long) const = 0;
|
||||
virtual std::map<ELanguage, std::string> GetDescriptions() const
|
||||
{
|
||||
return std::map<ELanguage, std::string>();
|
||||
}
|
||||
virtual std::string GetCompany() const { return std::string(); }
|
||||
virtual std::vector<u32> GetBanner(int* width, int* height) const = 0;
|
||||
virtual u64 GetFSTSize() const = 0;
|
||||
virtual std::string GetApploaderDate() const = 0;
|
||||
// 0 is the first disc, 1 is the second disc
|
||||
virtual u8 GetDiscNumber() const { return 0; }
|
||||
virtual EPlatform GetVolumeType() const = 0;
|
||||
virtual bool SupportsIntegrityCheck() const { return false; }
|
||||
virtual bool CheckIntegrity() const { return false; }
|
||||
virtual bool ChangePartition(u64 offset) { return false; }
|
||||
virtual ECountry GetCountry() const = 0;
|
||||
virtual BlobType GetBlobType() const = 0;
|
||||
// Size of virtual disc (not always accurate)
|
||||
virtual u64 GetSize() const = 0;
|
||||
// Size on disc (compressed size)
|
||||
virtual u64 GetRawSize() const = 0;
|
||||
|
||||
virtual bool GetTitleID(u64*) const { return false; }
|
||||
virtual std::vector<u8> GetTMD() const { return {}; }
|
||||
virtual std::string GetUniqueID() const = 0;
|
||||
virtual std::string GetMakerID() const = 0;
|
||||
virtual u16 GetRevision() const = 0;
|
||||
virtual std::string GetInternalName() const = 0;
|
||||
virtual std::map<ELanguage, std::string> GetNames(bool prefer_long) const = 0;
|
||||
virtual std::map<ELanguage, std::string> GetDescriptions() const { return std::map<ELanguage, std::string>(); }
|
||||
virtual std::string GetCompany() const { return std::string(); }
|
||||
virtual std::vector<u32> GetBanner(int* width, int* height) const = 0;
|
||||
virtual u64 GetFSTSize() const = 0;
|
||||
virtual std::string GetApploaderDate() const = 0;
|
||||
// 0 is the first disc, 1 is the second disc
|
||||
virtual u8 GetDiscNumber() const { return 0; }
|
||||
|
||||
virtual EPlatform GetVolumeType() const = 0;
|
||||
virtual bool SupportsIntegrityCheck() const { return false; }
|
||||
virtual bool CheckIntegrity() const { return false; }
|
||||
virtual bool ChangePartition(u64 offset) { return false; }
|
||||
|
||||
virtual ECountry GetCountry() const = 0;
|
||||
virtual BlobType GetBlobType() const = 0;
|
||||
// Size of virtual disc (not always accurate)
|
||||
virtual u64 GetSize() const = 0;
|
||||
// Size on disc (compressed size)
|
||||
virtual u64 GetRawSize() const = 0;
|
||||
|
||||
static std::vector<u32> GetWiiBanner(int* width, int* height, u64 title_id);
|
||||
static std::vector<u32> GetWiiBanner(int* width, int* height, u64 title_id);
|
||||
|
||||
protected:
|
||||
template <u32 N>
|
||||
std::string DecodeString(const char(&data)[N]) const
|
||||
{
|
||||
// strnlen to trim NULLs
|
||||
std::string string(data, strnlen(data, sizeof(data)));
|
||||
template <u32 N>
|
||||
std::string DecodeString(const char (&data)[N]) const
|
||||
{
|
||||
// strnlen to trim NULLs
|
||||
std::string string(data, strnlen(data, sizeof(data)));
|
||||
|
||||
// There don't seem to be any GC discs with the country set to Taiwan...
|
||||
// But maybe they would use Shift_JIS if they existed? Not sure
|
||||
bool use_shift_jis = (COUNTRY_JAPAN == GetCountry() || COUNTRY_TAIWAN == GetCountry());
|
||||
// There don't seem to be any GC discs with the country set to Taiwan...
|
||||
// But maybe they would use Shift_JIS if they existed? Not sure
|
||||
bool use_shift_jis = (COUNTRY_JAPAN == GetCountry() || COUNTRY_TAIWAN == GetCountry());
|
||||
|
||||
if (use_shift_jis)
|
||||
return SHIFTJISToUTF8(string);
|
||||
else
|
||||
return CP1252ToUTF8(string);
|
||||
}
|
||||
if (use_shift_jis)
|
||||
return SHIFTJISToUTF8(string);
|
||||
else
|
||||
return CP1252ToUTF8(string);
|
||||
}
|
||||
|
||||
static std::map<IVolume::ELanguage, std::string> ReadWiiNames(const std::vector<u8>& data);
|
||||
static std::map<IVolume::ELanguage, std::string> ReadWiiNames(const std::vector<u8>& data);
|
||||
|
||||
static const size_t NUMBER_OF_LANGUAGES = 10;
|
||||
static const size_t NAME_STRING_LENGTH = 42;
|
||||
static const size_t NAME_BYTES_LENGTH = NAME_STRING_LENGTH * sizeof(u16);
|
||||
static const size_t NAMES_TOTAL_BYTES = NAME_BYTES_LENGTH * NUMBER_OF_LANGUAGES;
|
||||
static const size_t NUMBER_OF_LANGUAGES = 10;
|
||||
static const size_t NAME_STRING_LENGTH = 42;
|
||||
static const size_t NAME_BYTES_LENGTH = NAME_STRING_LENGTH * sizeof(u16);
|
||||
static const size_t NAMES_TOTAL_BYTES = NAME_BYTES_LENGTH * NUMBER_OF_LANGUAGES;
|
||||
};
|
||||
|
||||
// Generic Switch function for all volumes
|
||||
@ -139,4 +139,4 @@ IVolume::ECountry CountrySwitch(u8 country_code);
|
||||
u8 GetSysMenuRegion(u16 _TitleVersion);
|
||||
std::string GetCompanyFromID(const std::string& company_id);
|
||||
|
||||
} // namespace
|
||||
} // namespace
|
||||
|
Reference in New Issue
Block a user