JosJuice ee694e327a Get rid of banner loaders and move their functionality to volumes
Having some data available in banner loaders and some other data
data available in volumes gets messy, especially with GetNames(),
which is available in both but returns different results
depending on which one is used. This change drops support
for reading names and descriptions from Wii save data.
2015-04-28 23:44:29 +02:00

92 lines
2.2 KiB
C++

// Copyright 2013 Dolphin Emulator Project
// Licensed under GPLv2
// Refer to the license.txt file included.
#pragma once
#include <string>
#include <utility>
#include <vector>
#include "Common/Common.h"
#include "DiscIO/Volume.h"
#if defined(HAVE_WX) && HAVE_WX
#include <wx/image.h>
#include <wx/bitmap.h>
#endif
class PointerWrap;
class GameListItem : NonCopyable
{
public:
GameListItem(const std::string& _rFileName);
~GameListItem();
bool IsValid() const {return m_Valid;}
const std::string& GetFileName() const {return m_FileName;}
std::string GetName(IVolume::ELanguage language) const;
std::string GetName() const;
std::string GetDescription(IVolume::ELanguage language) const;
std::string GetDescription() const;
std::vector<IVolume::ELanguage> GetLanguages() const;
std::string GetCompany() const;
int GetRevision() const { return m_Revision; }
const std::string& GetUniqueID() const {return m_UniqueID;}
const std::string GetWiiFSPath() const;
DiscIO::IVolume::ECountry GetCountry() const {return m_Country;}
int GetPlatform() const {return m_Platform;}
const std::string& GetIssues() const { return m_issues; }
int GetEmuState() const { return m_emu_state; }
bool IsCompressed() const {return m_BlobCompressed;}
u64 GetFileSize() const {return m_FileSize;}
u64 GetVolumeSize() const {return m_VolumeSize;}
bool IsDiscTwo() const {return m_IsDiscTwo;}
#if defined(HAVE_WX) && HAVE_WX
const wxBitmap& GetBitmap() const {return m_Bitmap;}
#endif
void DoState(PointerWrap &p);
enum
{
GAMECUBE_DISC = 0,
WII_DISC,
WII_WAD,
NUMBER_OF_PLATFORMS
};
private:
std::string m_FileName;
std::map<IVolume::ELanguage, std::string> m_names;
std::map<IVolume::ELanguage, std::string> m_descriptions;
std::string m_company;
std::string m_UniqueID;
std::string m_issues;
int m_emu_state;
u64 m_FileSize;
u64 m_VolumeSize;
DiscIO::IVolume::ECountry m_Country;
int m_Platform;
int m_Revision;
#if defined(HAVE_WX) && HAVE_WX
wxBitmap m_Bitmap;
#endif
bool m_Valid;
bool m_BlobCompressed;
std::vector<u8> m_pImage;
int m_ImageWidth, m_ImageHeight;
bool m_IsDiscTwo;
bool LoadFromCache();
void SaveToCache();
std::string CreateCacheFilename();
};