Merge pull request #159 from Tilka/misc

Cleanup stuff
This commit is contained in:
Matthew Parlane 2014-03-17 17:43:20 +13:00
commit 6445e02d53
36 changed files with 249 additions and 241 deletions

2
.gitignore vendored
View File

@ -5,7 +5,7 @@ Thumbs.db
# Ignore autogenerated source files # Ignore autogenerated source files
Source/Core/Common/scmrev.h Source/Core/Common/scmrev.h
# Ignore files output by build # Ignore files output by build
/[Bb]uild[-_]*/ /[Bb]uild*/
/[Bb]inary/ /[Bb]inary/
/obj/ /obj/
# Ignore various files created by visual studio/msbuild # Ignore various files created by visual studio/msbuild

View File

@ -114,7 +114,7 @@ bool IniFile::Section::Get(const std::string& key, std::string* value, const std
return false; return false;
} }
bool IniFile::Section::Get(const std::string& key, std::vector<std::string>& out) bool IniFile::Section::Get(const std::string& key, std::vector<std::string>* out)
{ {
std::string temp; std::string temp;
bool retval = Get(key, &temp); bool retval = Get(key, &temp);
@ -132,7 +132,7 @@ bool IniFile::Section::Get(const std::string& key, std::vector<std::string>& out
size_t subEnd = temp.find_first_of(",", subStart); size_t subEnd = temp.find_first_of(",", subStart);
if (subStart != subEnd) if (subStart != subEnd)
// take from first char until next , // take from first char until next ,
out.push_back(StripSpaces(temp.substr(subStart, subEnd - subStart))); out->push_back(StripSpaces(temp.substr(subStart, subEnd - subStart)));
// Find the next non , char // Find the next non , char
subStart = temp.find_first_not_of(",", subEnd); subStart = temp.find_first_not_of(",", subEnd);
} }
@ -273,23 +273,25 @@ bool IniFile::DeleteKey(const std::string& sectionName, const std::string& key)
} }
// Return a list of all keys in a section // Return a list of all keys in a section
bool IniFile::GetKeys(const std::string& sectionName, std::vector<std::string>& keys) const bool IniFile::GetKeys(const std::string& sectionName, std::vector<std::string>* keys) const
{ {
const Section* section = GetSection(sectionName); const Section* section = GetSection(sectionName);
if (!section) if (!section)
{
return false; return false;
keys = section->keys_order; }
*keys = section->keys_order;
return true; return true;
} }
// Return a list of all lines in a section // Return a list of all lines in a section
bool IniFile::GetLines(const std::string& sectionName, std::vector<std::string>& lines, const bool remove_comments) const bool IniFile::GetLines(const std::string& sectionName, std::vector<std::string>* lines, const bool remove_comments) const
{ {
const Section* section = GetSection(sectionName); const Section* section = GetSection(sectionName);
if (!section) if (!section)
return false; return false;
lines.clear(); lines->clear();
for (std::string line : section->lines) for (std::string line : section->lines)
{ {
line = StripSpaces(line); line = StripSpaces(line);
@ -308,7 +310,7 @@ bool IniFile::GetLines(const std::string& sectionName, std::vector<std::string>&
} }
} }
lines.push_back(line); lines->push_back(line);
} }
return true; return true;
@ -426,7 +428,7 @@ bool IniFile::Save(const std::string& filename)
return File::RenameSync(temp, filename); return File::RenameSync(temp, filename);
} }
bool IniFile::Get(const std::string& sectionName, const std::string& key, std::vector<std::string>& values) bool IniFile::Get(const std::string& sectionName, const std::string& key, std::vector<std::string>* values)
{ {
Section *section = GetSection(sectionName); Section *section = GetSection(sectionName);
if (!section) if (!section)

View File

@ -66,7 +66,7 @@ public:
bool Get(const std::string& key, bool* value, bool defaultValue = false); bool Get(const std::string& key, bool* value, bool defaultValue = false);
bool Get(const std::string& key, float* value, float defaultValue = false); bool Get(const std::string& key, float* value, float defaultValue = false);
bool Get(const std::string& key, double* value, double defaultValue = false); bool Get(const std::string& key, double* value, double defaultValue = false);
bool Get(const std::string& key, std::vector<std::string>& values); bool Get(const std::string& key, std::vector<std::string>* values);
bool operator < (const Section& other) const { bool operator < (const Section& other) const {
return name < other.name; return name < other.name;
@ -116,7 +116,7 @@ public:
bool Get(const std::string& sectionName, const std::string& key, int* value, int defaultValue = 0); bool Get(const std::string& sectionName, const std::string& key, int* value, int defaultValue = 0);
bool Get(const std::string& sectionName, const std::string& key, u32* value, u32 defaultValue = 0); bool Get(const std::string& sectionName, const std::string& key, u32* value, u32 defaultValue = 0);
bool Get(const std::string& sectionName, const std::string& key, bool* value, bool defaultValue = false); bool Get(const std::string& sectionName, const std::string& key, bool* value, bool defaultValue = false);
bool Get(const std::string& sectionName, const std::string& key, std::vector<std::string>& values); bool Get(const std::string& sectionName, const std::string& key, std::vector<std::string>* values);
bool Get(const std::string& sectionName, const std::string& key, std::string* value, const std::string& defaultValue = NULL_STRING); bool Get(const std::string& sectionName, const std::string& key, std::string* value, const std::string& defaultValue = NULL_STRING);
template<typename T> bool GetIfExists(const std::string& sectionName, const std::string& key, T value) template<typename T> bool GetIfExists(const std::string& sectionName, const std::string& key, T value)
@ -126,10 +126,10 @@ public:
return false; return false;
} }
bool GetKeys(const std::string& sectionName, std::vector<std::string>& keys) const; bool GetKeys(const std::string& sectionName, std::vector<std::string>* keys) const;
void SetLines(const std::string& sectionName, const std::vector<std::string> &lines); void SetLines(const std::string& sectionName, const std::vector<std::string>& lines);
bool GetLines(const std::string& sectionName, std::vector<std::string>& lines, const bool remove_comments = true) const; bool GetLines(const std::string& sectionName, std::vector<std::string>* lines, const bool remove_comments = true) const;
bool DeleteKey(const std::string& sectionName, const std::string& key); bool DeleteKey(const std::string& sectionName, const std::string& key);
bool DeleteSection(const std::string& sectionName); bool DeleteSection(const std::string& sectionName);

View File

@ -123,8 +123,8 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, bool forceLoad
std::vector<std::string> enabledLines; std::vector<std::string> enabledLines;
std::set<std::string> enabledNames; std::set<std::string> enabledNames;
localIni.GetLines("ActionReplay_Enabled", enabledLines); localIni.GetLines("ActionReplay_Enabled", &enabledLines);
for (auto& line : enabledLines) for (const std::string& line : enabledLines)
{ {
if (line.size() != 0 && line[0] == '$') if (line.size() != 0 && line[0] == '$')
{ {
@ -140,12 +140,14 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, bool forceLoad
std::vector<std::string> encryptedLines; std::vector<std::string> encryptedLines;
ARCode currentCode; ARCode currentCode;
ini->GetLines("ActionReplay", lines); ini->GetLines("ActionReplay", &lines);
for (std::string line : lines) for (const std::string& line : lines)
{ {
if (line.empty()) if (line.empty())
{
continue; continue;
}
std::vector<std::string> pieces; std::vector<std::string> pieces;
@ -283,13 +285,10 @@ bool RunCode(const ARCode &arcode)
LogInfo("Code Name: %s", arcode.name.c_str()); LogInfo("Code Name: %s", arcode.name.c_str());
LogInfo("Number of codes: %i", arcode.ops.size()); LogInfo("Number of codes: %i", arcode.ops.size());
std::vector<AREntry>::const_iterator for (const AREntry& entry : arcode.ops)
iter = arcode.ops.begin(),
ops_end = arcode.ops.end();
for (; iter != ops_end; ++iter)
{ {
const ARAddr& addr = *(ARAddr*)&iter->cmd_addr; const ARAddr& addr = *(ARAddr*)&entry.cmd_addr;
const u32 data = iter->value; const u32 data = entry.value;
// after a conditional code, skip lines if needed // after a conditional code, skip lines if needed
if (skip_count) if (skip_count)

View File

@ -20,7 +20,7 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, std::vector<Ge
for (const IniFile* ini : inis) for (const IniFile* ini : inis)
{ {
std::vector<std::string> lines; std::vector<std::string> lines;
ini->GetLines("Gecko", lines, false); ini->GetLines("Gecko", &lines, false);
GeckoCode gcode; GeckoCode gcode;
@ -72,19 +72,25 @@ void LoadCodes(const IniFile& globalIni, const IniFile& localIni, std::vector<Ge
// add the last code // add the last code
if (gcode.name.size()) if (gcode.name.size())
{
gcodes.push_back(gcode); gcodes.push_back(gcode);
}
ini->GetLines("Gecko_Enabled", lines, false); ini->GetLines("Gecko_Enabled", &lines, false);
for (auto line : lines) for (const std::string& line : lines)
{ {
if (line.size() == 0 || line[0] != '$') if (line.size() == 0 || line[0] != '$')
{
continue; continue;
}
std::string name = line.substr(1); std::string name = line.substr(1);
for (auto& ogcode : gcodes) for (GeckoCode& ogcode : gcodes)
{ {
if (ogcode.name == name) if (ogcode.name == name)
{
ogcode.enabled = true; ogcode.enabled = true;
}
} }
} }
} }

View File

@ -669,7 +669,6 @@ void CUCode_AX::HandleMail(u32 mail)
{ {
CopyCmdList(mail, cmdlist_size); CopyCmdList(mail, cmdlist_size);
StartWorking(); StartWorking();
NotifyAXThread();
} }
else if (m_UploadSetupInProgress) else if (m_UploadSetupInProgress)
{ {

View File

@ -57,10 +57,6 @@ void CUCode_Rom::HandleMail(u32 _uMail)
m_CurrentUCode.m_Length = _uMail & 0xffff; m_CurrentUCode.m_Length = _uMail & 0xffff;
break; break;
case 0x80F3C002:
m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff;
break;
case 0x80F3B002: case 0x80F3B002:
m_CurrentUCode.m_DMEMLength = _uMail & 0xffff; m_CurrentUCode.m_DMEMLength = _uMail & 0xffff;
if (m_CurrentUCode.m_DMEMLength) { if (m_CurrentUCode.m_DMEMLength) {
@ -68,16 +64,17 @@ void CUCode_Rom::HandleMail(u32 _uMail)
} }
break; break;
case 0x80F3C002:
m_CurrentUCode.m_IMEMAddress = _uMail & 0xffff;
break;
case 0x80F3D001: case 0x80F3D001:
{
m_CurrentUCode.m_StartPC = _uMail & 0xffff; m_CurrentUCode.m_StartPC = _uMail & 0xffff;
BootUCode(); BootUCode();
return; // Important! BootUCode indirectly does "delete this;". Must exit immediately. return; // Important! BootUCode indirectly does "delete this;". Must exit immediately.
}
break;
default: default:
break; break;
} }
// THE GODDAMN OVERWRITE WAS HERE. Without the return above, since BootUCode may delete "this", well ... // THE GODDAMN OVERWRITE WAS HERE. Without the return above, since BootUCode may delete "this", well ...

View File

@ -58,7 +58,7 @@ CUCode_Zelda::CUCode_Zelda(DSPHLE *dsp_hle, u32 _CRC)
if (IsLightVersion()) if (IsLightVersion())
{ {
NOTICE_LOG(DSPHLE, "Luigi Stylee!"); DEBUG_LOG(DSPHLE, "Luigi Stylee!");
m_rMailHandler.PushMail(0x88881111); m_rMailHandler.PushMail(0x88881111);
} }
else else
@ -92,9 +92,9 @@ CUCode_Zelda::~CUCode_Zelda()
u8 *CUCode_Zelda::GetARAMPointer(u32 address) u8 *CUCode_Zelda::GetARAMPointer(u32 address)
{ {
if (IsDMAVersion()) if (IsDMAVersion())
return (u8 *)(Memory::GetPointer(m_DMABaseAddr)) + address; return Memory::GetPointer(m_DMABaseAddr) + address;
else else
return (u8 *)(DSP::GetARAMPtr()) + address; return DSP::GetARAMPtr() + address;
} }
void CUCode_Zelda::Update(int cycles) void CUCode_Zelda::Update(int cycles)

View File

@ -24,11 +24,10 @@ InputPlugin *GetPlugin()
void Shutdown() void Shutdown()
{ {
std::vector<ControllerEmu*>::const_iterator for (const ControllerEmu* i : g_plugin.controllers)
i = g_plugin.controllers.begin(), {
e = g_plugin.controllers.end(); delete i;
for ( ; i!=e; ++i ) }
delete *i;
g_plugin.controllers.clear(); g_plugin.controllers.clear();
WiimoteReal::Stop(); WiimoteReal::Stop();

View File

@ -130,7 +130,7 @@ void Nunchuk::GetState(u8* const data, const bool focus)
{ {
u8 mask; u8 mask;
float x, y; float x, y;
m_udpWrap->inst->getNunchuck(x, y, mask); m_udpWrap->inst->getNunchuck(&x, &y, &mask);
// buttons // buttons
if (mask & UDPWM_NC) if (mask & UDPWM_NC)
ncdata->bt &= ~WiimoteEmu::Nunchuk::BUTTON_C; ncdata->bt &= ~WiimoteEmu::Nunchuk::BUTTON_C;
@ -146,7 +146,7 @@ void Nunchuk::GetState(u8* const data, const bool focus)
if (m_udpWrap->updNunAccel) if (m_udpWrap->updNunAccel)
{ {
float x, y, z; float x, y, z;
m_udpWrap->inst->getNunchuckAccel(x, y, z); m_udpWrap->inst->getNunchuckAccel(&x, &y, &z);
accel.x = x; accel.x = x;
accel.y = y; accel.y = y;
accel.z = z; accel.z = z;

View File

@ -34,7 +34,7 @@ namespace UDPTLayer
if (!(m->inst)) return; if (!(m->inst)) return;
if (!(m->updAccel)) return; if (!(m->updAccel)) return;
float x, y, z; float x, y, z;
m->inst->getAccel(x, y, z); m->inst->getAccel(&x, &y, &z);
data->x = x; data->x = x;
data->y = y; data->y = y;
data->z = z; data->z = z;
@ -46,7 +46,7 @@ namespace UDPTLayer
if (!(m->updIR)) return; if (!(m->updIR)) return;
if ((*x >= -0.999) && (*x <= 0.999) && (*y >= -0.999) && (*y <= 0.999)) return; //the received values are used ONLY when the normal pointer is offscreen if ((*x >= -0.999) && (*x <= 0.999) && (*y >= -0.999) && (*y <= 0.999)) return; //the received values are used ONLY when the normal pointer is offscreen
float _x, _y; float _x, _y;
m->inst->getIR(_x, _y); m->inst->getIR(&_x, &_y);
*x = _x * 2 - 1; *x = _x * 2 - 1;
*y = -(_y * 2 - 1); *y = -(_y * 2 - 1);
*z = 0; *z = 0;

View File

@ -53,7 +53,7 @@ void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, I
std::string enabledSectionName = section + "_Enabled"; std::string enabledSectionName = section + "_Enabled";
std::vector<std::string> enabledLines; std::vector<std::string> enabledLines;
std::set<std::string> enabledNames; std::set<std::string> enabledNames;
localIni.GetLines(enabledSectionName, enabledLines); localIni.GetLines(enabledSectionName, &enabledLines);
for (const std::string& line : enabledLines) for (const std::string& line : enabledLines)
{ {
if (line.size() != 0 && line[0] == '$') if (line.size() != 0 && line[0] == '$')
@ -69,7 +69,7 @@ void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, I
{ {
std::vector<std::string> lines; std::vector<std::string> lines;
Patch currentPatch; Patch currentPatch;
ini->GetLines(section, lines); ini->GetLines(section, &lines);
for (std::string& line : lines) for (std::string& line : lines)
{ {
@ -80,7 +80,9 @@ void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, I
{ {
// Take care of the previous code // Take care of the previous code
if (currentPatch.name.size()) if (currentPatch.name.size())
{
patches.push_back(currentPatch); patches.push_back(currentPatch);
}
currentPatch.entries.clear(); currentPatch.entries.clear();
// Set active and name // Set active and name
@ -93,7 +95,9 @@ void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, I
std::string::size_type loc = line.find_first_of('=', 0); std::string::size_type loc = line.find_first_of('=', 0);
if (loc != std::string::npos) if (loc != std::string::npos)
{
line[loc] = ':'; line[loc] = ':';
}
std::vector<std::string> items; std::vector<std::string> items;
SplitString(line, ':', items); SplitString(line, ':', items);
@ -108,33 +112,41 @@ void LoadPatchSection(const std::string& section, std::vector<Patch>& patches, I
pE.type = PatchType(std::find(PatchTypeStrings, PatchTypeStrings + 3, items[1]) - PatchTypeStrings); pE.type = PatchType(std::find(PatchTypeStrings, PatchTypeStrings + 3, items[1]) - PatchTypeStrings);
success &= (pE.type != (PatchType)3); success &= (pE.type != (PatchType)3);
if (success) if (success)
{
currentPatch.entries.push_back(pE); currentPatch.entries.push_back(pE);
}
} }
} }
} }
if (currentPatch.name.size() && currentPatch.entries.size()) if (currentPatch.name.size() && currentPatch.entries.size())
{
patches.push_back(currentPatch); patches.push_back(currentPatch);
}
} }
} }
static void LoadDiscList(const char *section, std::vector<std::string> &_discList, IniFile &ini) static void LoadDiscList(const std::string& section, IniFile& ini)
{ {
std::vector<std::string> lines; std::vector<std::string> lines;
if (!ini.GetLines(section, lines)) if (!ini.GetLines(section, &lines))
{
return; return;
}
for (const std::string& line : lines) for (const std::string& line : lines)
{ {
if (!line.empty()) if (!line.empty())
_discList.push_back(line); {
discList.push_back(line);
}
} }
} }
static void LoadSpeedhacks(const char *section, std::map<u32, int> &hacks, IniFile &ini) static void LoadSpeedhacks(const std::string& section, IniFile& ini)
{ {
std::vector<std::string> keys; std::vector<std::string> keys;
ini.GetKeys(section, keys); ini.GetKeys(section, &keys);
for (const std::string& key : keys) for (const std::string& key : keys)
{ {
std::string value; std::string value;
@ -146,7 +158,8 @@ static void LoadSpeedhacks(const char *section, std::map<u32, int> &hacks, IniFi
bool success = true; bool success = true;
success &= TryParse(key, &address); success &= TryParse(key, &address);
success &= TryParse(value, &cycles); success &= TryParse(value, &cycles);
if (success) { if (success)
{
speedHacks[address] = (int)cycles; speedHacks[address] = (int)cycles;
} }
} }
@ -176,8 +189,8 @@ void LoadPatches()
Gecko::LoadCodes(globalIni, localIni, gcodes); Gecko::LoadCodes(globalIni, localIni, gcodes);
Gecko::SetActiveCodes(gcodes); Gecko::SetActiveCodes(gcodes);
LoadSpeedhacks("Speedhacks", speedHacks, merged); LoadSpeedhacks("Speedhacks", merged);
LoadDiscList("DiscList", discList, merged); LoadDiscList("DiscList", merged);
} }
void ApplyPatches(const std::vector<Patch> &patches) void ApplyPatches(const std::vector<Patch> &patches)

View File

@ -206,7 +206,6 @@ public:
static void stwcxd(UGeckoInstruction _inst); static void stwcxd(UGeckoInstruction _inst);
static void stwux(UGeckoInstruction _inst); static void stwux(UGeckoInstruction _inst);
static void stwx(UGeckoInstruction _inst); static void stwx(UGeckoInstruction _inst);
static void sync(UGeckoInstruction _inst);
static void tlbia(UGeckoInstruction _inst); static void tlbia(UGeckoInstruction _inst);
static void tlbie(UGeckoInstruction _inst); static void tlbie(UGeckoInstruction _inst);
static void tlbsync(UGeckoInstruction _inst); static void tlbsync(UGeckoInstruction _inst);
@ -281,21 +280,33 @@ public:
static void mcrf(UGeckoInstruction _inst); static void mcrf(UGeckoInstruction _inst);
static void rfi(UGeckoInstruction _inst); static void rfi(UGeckoInstruction _inst);
static void rfid(UGeckoInstruction _inst); static void rfid(UGeckoInstruction _inst);
// static void sync(UGeckoInstruction _inst); static void sync(UGeckoInstruction _inst);
static void isync(UGeckoInstruction _inst); static void isync(UGeckoInstruction _inst);
static _interpreterInstruction m_opTable[64];
static _interpreterInstruction m_opTable4[1024];
static _interpreterInstruction m_opTable19[1024];
static _interpreterInstruction m_opTable31[1024];
static _interpreterInstruction m_opTable59[32];
static _interpreterInstruction m_opTable63[1024];
// singleton
static Interpreter* getInstance();
static void RunTable4(UGeckoInstruction _instCode); static void RunTable4(UGeckoInstruction _instCode);
static void RunTable19(UGeckoInstruction _instCode); static void RunTable19(UGeckoInstruction _instCode);
static void RunTable31(UGeckoInstruction _instCode); static void RunTable31(UGeckoInstruction _instCode);
static void RunTable59(UGeckoInstruction _instCode); static void RunTable59(UGeckoInstruction _instCode);
static void RunTable63(UGeckoInstruction _instCode); static void RunTable63(UGeckoInstruction _instCode);
static u32 Helper_Carry(u32 _uValue1, u32 _uValue2);
private:
// flag helper // flag helper
static void Helper_UpdateCR0(u32 _uValue); static void Helper_UpdateCR0(u32 _uValue);
static void Helper_UpdateCR1(double _fValue); static void Helper_UpdateCR1(double _fValue);
static void Helper_UpdateCR1(float _fValue); static void Helper_UpdateCR1(float _fValue);
static void Helper_UpdateCRx(int _x, u32 _uValue); static void Helper_UpdateCRx(int _x, u32 _uValue);
static u32 Helper_Carry(u32 _uValue1, u32 _uValue2);
// address helper // address helper
static u32 Helper_Get_EA (const UGeckoInstruction _inst); static u32 Helper_Get_EA (const UGeckoInstruction _inst);
@ -310,22 +321,6 @@ public:
// other helper // other helper
static u32 Helper_Mask(int mb, int me); static u32 Helper_Mask(int mb, int me);
static _interpreterInstruction m_opTable[64];
static _interpreterInstruction m_opTable4[1024];
static _interpreterInstruction m_opTable19[1024];
static _interpreterInstruction m_opTable31[1024];
static _interpreterInstruction m_opTable59[32];
static _interpreterInstruction m_opTable63[1024];
// singleton
static Interpreter *getInstance();
private:
Interpreter() { }
~Interpreter() { }
Interpreter(const Interpreter &);
Interpreter & operator=(const Interpreter &);
static void Helper_FloatCompareOrdered(UGeckoInstruction _inst, double a, double b); static void Helper_FloatCompareOrdered(UGeckoInstruction _inst, double a, double b);
static void Helper_FloatCompareUnordered(UGeckoInstruction _inst, double a, double b); static void Helper_FloatCompareUnordered(UGeckoInstruction _inst, double a, double b);

View File

@ -547,12 +547,9 @@ void CheatSearchTab::UpdateCheatSearchResultsList()
} }
else else
{ {
std::vector<CheatSearchResult>::const_iterator for (const CheatSearchResult& result : search_results)
i = search_results.begin(),
e = search_results.end();
for (; i!=e; ++i)
{ {
u32 display_value = i->old_value; u32 display_value = result.old_value;
// #ifdef LIL_ENDIAN :p // #ifdef LIL_ENDIAN :p
switch (search_type_size) switch (search_type_size)
@ -574,7 +571,7 @@ void CheatSearchTab::UpdateCheatSearchResultsList()
rowfmt[14] = (wxChar)(wxT('0') + search_type_size*2); rowfmt[14] = (wxChar)(wxT('0') + search_type_size*2);
lbox_search_results->Append( lbox_search_results->Append(
wxString::Format(rowfmt, i->address, display_value, display_value, display_value)); wxString::Format(rowfmt, result.address, display_value, display_value, display_value));
} }
} }

View File

@ -112,7 +112,7 @@ CBreakPointWindow::CBreakPointWindow(CCodeWindow* _pCodeWindow, wxWindow* parent
m_BreakPointListView = new CBreakPointView(this, wxID_ANY); m_BreakPointListView = new CBreakPointView(this, wxID_ANY);
m_mgr.AddPane(new CBreakPointBar(this, wxID_ANY), wxAuiPaneInfo().ToolbarPane().Top(). m_mgr.AddPane(new CBreakPointBar(this, wxID_ANY), wxAuiPaneInfo().ToolbarPane().Top().
LeftDockable(false).RightDockable(false).BottomDockable(false).Floatable(false)); LeftDockable(false).RightDockable(false).BottomDockable(false).Floatable(false));
m_mgr.AddPane(m_BreakPointListView, wxAuiPaneInfo().CenterPane()); m_mgr.AddPane(m_BreakPointListView, wxAuiPaneInfo().CenterPane());
m_mgr.Update(); m_mgr.Update();
} }
@ -195,12 +195,19 @@ void CBreakPointWindow::LoadAll(wxCommandEvent& WXUNUSED(event))
MemChecks::TMemChecksStr newmcs; MemChecks::TMemChecksStr newmcs;
if (!ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX))) if (!ini.Load(File::GetUserPath(F_DEBUGGERCONFIG_IDX)))
{
return; return;
}
if (ini.GetLines("BreakPoints", newbps, false)) if (ini.GetLines("BreakPoints", &newbps, false))
{
PowerPC::breakpoints.AddFromStrings(newbps); PowerPC::breakpoints.AddFromStrings(newbps);
if (ini.GetLines("MemoryChecks", newmcs, false)) }
if (ini.GetLines("MemoryChecks", &newmcs, false))
{
PowerPC::memchecks.AddFromStrings(newmcs); PowerPC::memchecks.AddFromStrings(newmcs);
}
NotifyUpdate(); NotifyUpdate();
} }

View File

@ -851,7 +851,9 @@ void CFrame::LoadIniPerspectives()
// Don't save a blank perspective // Don't save a blank perspective
if (Tmp.Name.empty()) if (Tmp.Name.empty())
{
continue; continue;
}
_Section = StringFromFormat("P - %s", Tmp.Name.c_str()); _Section = StringFromFormat("P - %s", Tmp.Name.c_str());
ini.Get(_Section, "Perspective", &_Perspective, ini.Get(_Section, "Perspective", &_Perspective,

View File

@ -88,14 +88,13 @@ void CodeConfigPanel::UpdateCodeList(bool checkRunning)
m_listbox_gcodes->Clear(); m_listbox_gcodes->Clear();
// add the codes to the listbox // add the codes to the listbox
std::vector<GeckoCode>::const_iterator for (const GeckoCode& code : m_gcodes)
gcodes_iter = m_gcodes.begin(),
gcodes_end = m_gcodes.end();
for (; gcodes_iter!=gcodes_end; ++gcodes_iter)
{ {
m_listbox_gcodes->Append(StrToWxStr(gcodes_iter->name)); m_listbox_gcodes->Append(StrToWxStr(code.name));
if (gcodes_iter->enabled) if (code.enabled)
{
m_listbox_gcodes->Check(m_listbox_gcodes->GetCount()-1, true); m_listbox_gcodes->Check(m_listbox_gcodes->GetCount()-1, true);
}
} }
wxCommandEvent evt; wxCommandEvent evt;
@ -131,21 +130,19 @@ void CodeConfigPanel::UpdateInfoBox(wxCommandEvent&)
// notes textctrl // notes textctrl
m_infobox.textctrl_notes->Clear(); m_infobox.textctrl_notes->Clear();
std::vector<std::string>::const_iterator for (const std::string& note : m_gcodes[sel].notes)
notes_iter = m_gcodes[sel].notes.begin(), {
notes_end = m_gcodes[sel].notes.end(); m_infobox.textctrl_notes->AppendText(StrToWxStr(note));
for (; notes_iter!=notes_end; ++notes_iter) }
m_infobox.textctrl_notes->AppendText(StrToWxStr(*notes_iter));
m_infobox.textctrl_notes->ScrollLines(-99); // silly m_infobox.textctrl_notes->ScrollLines(-99); // silly
m_infobox.label_creator->SetLabel(wxGetTranslation(wxstr_creator) + StrToWxStr(m_gcodes[sel].creator)); m_infobox.label_creator->SetLabel(wxGetTranslation(wxstr_creator) + StrToWxStr(m_gcodes[sel].creator));
// add codes to info listbox // add codes to info listbox
std::vector<GeckoCode::Code>::const_iterator for (const GeckoCode::Code& code : m_gcodes[sel].codes)
codes_iter = m_gcodes[sel].codes.begin(), {
codes_end = m_gcodes[sel].codes.end(); m_infobox.listbox_codes->Append(wxString::Format(wxT("%08X %08X"), code.address, code.data));
for (; codes_iter!=codes_end; ++codes_iter) }
m_infobox.listbox_codes->Append(wxString::Format(wxT("%08X %08X"), codes_iter->address, codes_iter->data));
} }
else else
{ {
@ -281,10 +278,7 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
unsigned long added_count = 0; unsigned long added_count = 0;
// append the codes to the code list // append the codes to the code list
std::vector<GeckoCode>::const_iterator for (const GeckoCode& code : gcodes)
gcodes_iter = gcodes.begin(),
gcodes_end = gcodes.end();
for (; gcodes_iter!= gcodes_end; ++gcodes_iter)
{ {
// only add codes which do not already exist // only add codes which do not already exist
std::vector<GeckoCode>::const_iterator std::vector<GeckoCode>::const_iterator
@ -294,13 +288,13 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
{ {
if (existing_gcodes_end == existing_gcodes_iter) if (existing_gcodes_end == existing_gcodes_iter)
{ {
m_gcodes.push_back(*gcodes_iter); m_gcodes.push_back(code);
++added_count; ++added_count;
break; break;
} }
// code exists // code exists
if (existing_gcodes_iter->Compare(*gcodes_iter)) if (existing_gcodes_iter->Compare(code))
break; break;
} }
} }

View File

@ -235,11 +235,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
choice_backend = new wxChoice(page_general, wxID_ANY); choice_backend = new wxChoice(page_general, wxID_ANY);
RegisterControl(choice_backend, wxGetTranslation(backend_desc)); RegisterControl(choice_backend, wxGetTranslation(backend_desc));
std::vector<VideoBackend*>::const_iterator for (const VideoBackend* backend : g_available_video_backends)
it = g_available_video_backends.begin(), {
itend = g_available_video_backends.end(); choice_backend->AppendString(wxGetTranslation(StrToWxStr(backend->GetDisplayName())));
for (; it != itend; ++it) }
choice_backend->AppendString(wxGetTranslation(StrToWxStr((*it)->GetDisplayName())));
choice_backend->SetStringSelection(wxGetTranslation(StrToWxStr(g_video_backend->GetDisplayName()))); choice_backend->SetStringSelection(wxGetTranslation(StrToWxStr(g_video_backend->GetDisplayName())));
choice_backend->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_Backend, this); choice_backend->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &VideoConfigDiag::Event_Backend, this);
@ -259,11 +258,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
{ {
wxChoice* const choice_adapter = CreateChoice(page_general, vconfig.iAdapter, wxGetTranslation(adapter_desc)); wxChoice* const choice_adapter = CreateChoice(page_general, vconfig.iAdapter, wxGetTranslation(adapter_desc));
std::vector<std::string>::const_iterator for (const std::string& adapter : vconfig.backend_info.Adapters)
it = vconfig.backend_info.Adapters.begin(), {
itend = vconfig.backend_info.Adapters.end(); choice_adapter->AppendString(StrToWxStr(adapter));
for (; it != itend; ++it) }
choice_adapter->AppendString(StrToWxStr(*it));
choice_adapter->Select(vconfig.iAdapter); choice_adapter->Select(vconfig.iAdapter);
@ -381,11 +379,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
text_aamode = new wxStaticText(page_enh, -1, _("Anti-Aliasing:")); text_aamode = new wxStaticText(page_enh, -1, _("Anti-Aliasing:"));
choice_aamode = CreateChoice(page_enh, vconfig.iMultisampleMode, wxGetTranslation(aa_desc)); choice_aamode = CreateChoice(page_enh, vconfig.iMultisampleMode, wxGetTranslation(aa_desc));
std::vector<std::string>::const_iterator for (const std::string& mode : vconfig.backend_info.AAModes)
it = vconfig.backend_info.AAModes.begin(), {
itend = vconfig.backend_info.AAModes.end(); choice_aamode->AppendString(wxGetTranslation(StrToWxStr(mode)));
for (; it != itend; ++it) }
choice_aamode->AppendString(wxGetTranslation(StrToWxStr(*it)));
choice_aamode->Select(vconfig.iMultisampleMode); choice_aamode->Select(vconfig.iMultisampleMode);
szr_enh->Add(text_aamode, 1, wxALIGN_CENTER_VERTICAL, 0); szr_enh->Add(text_aamode, 1, wxALIGN_CENTER_VERTICAL, 0);
@ -406,11 +403,10 @@ VideoConfigDiag::VideoConfigDiag(wxWindow* parent, const std::string &title, con
RegisterControl(choice_ppshader, wxGetTranslation(ppshader_desc)); RegisterControl(choice_ppshader, wxGetTranslation(ppshader_desc));
choice_ppshader->AppendString(_("(off)")); choice_ppshader->AppendString(_("(off)"));
std::vector<std::string>::const_iterator for (const std::string& shader : vconfig.backend_info.PPShaders)
it = vconfig.backend_info.PPShaders.begin(), {
itend = vconfig.backend_info.PPShaders.end(); choice_ppshader->AppendString(StrToWxStr(shader));
for (; it != itend; ++it) }
choice_ppshader->AppendString(StrToWxStr(*it));
if (vconfig.sPostProcessingShader.empty()) if (vconfig.sPostProcessingShader.empty())
choice_ppshader->Select(0); choice_ppshader->Select(0);

View File

@ -65,9 +65,9 @@ struct UDPWiimote::_d
int UDPWiimote::noinst = 0; int UDPWiimote::noinst = 0;
UDPWiimote::UDPWiimote(const std::string& _port, const std::string& name, int _index) : UDPWiimote::UDPWiimote(const std::string& _port, const std::string& name, int _index) :
port(_port), displayName(name), port(_port), displayName(name), d(new _d),
d(new _d) ,x(0), y(0), z(1.0f), naX(0), naY(0), naZ(-1.0f), nunX(0), nunY(0), waX(0), waY(0), waZ(1), naX(0), naY(0), naZ(-1), nunX(0), nunY(0),
pointerX(1001.0f / 2), pointerY(0), nunMask(0), mask(0), index(_index), int_port(atoi(_port.c_str())) pointerX(1001.0f / 2), pointerY(0), nunMask(0), wiimoteMask(0), index(_index), int_port(atoi(_port.c_str()))
{ {
static bool sranded=false; static bool sranded=false;
@ -275,9 +275,9 @@ int UDPWiimote::pharsePacket(u8 * bf, size_t size)
ux=(double)((s32)ntohl(*p)); p++; ux=(double)((s32)ntohl(*p)); p++;
uy=(double)((s32)ntohl(*p)); p++; uy=(double)((s32)ntohl(*p)); p++;
uz=(double)((s32)ntohl(*p)); p++; uz=(double)((s32)ntohl(*p)); p++;
x=ux/1048576; //packet accel data waX=ux/1048576; //packet accel data
y=uy/1048576; waY=uy/1048576;
z=uz/1048576; waZ=uz/1048576;
} }
if (bf[2] & BUTT_FLAG) if (bf[2] & BUTT_FLAG)
@ -285,7 +285,7 @@ int UDPWiimote::pharsePacket(u8 * bf, size_t size)
if ((size-(((u8*)p)-bf)) < 4) if ((size-(((u8*)p)-bf)) < 4)
return -1; return -1;
mask=ntohl(*p); p++; wiimoteMask = ntohl(*p); p++;
} }
if (bf[2] & IR_FLAG) if (bf[2] & IR_FLAG)
@ -388,43 +388,43 @@ void UDPWiimote::broadcastPresence()
broadcastIPv6(bf,7+slen); broadcastIPv6(bf,7+slen);
} }
void UDPWiimote::getAccel(float &_x, float &_y, float &_z) void UDPWiimote::getAccel(float* x, float* y, float* z)
{ {
std::lock_guard<std::mutex> lk(d->mutex); std::lock_guard<std::mutex> lk(d->mutex);
_x=(float)x; *x = (float)waX;
_y=(float)y; *y = (float)waY;
_z=(float)z; *z = (float)waZ;
} }
u32 UDPWiimote::getButtons() u32 UDPWiimote::getButtons()
{ {
u32 msk; u32 msk;
std::lock_guard<std::mutex> lk(d->mutex); std::lock_guard<std::mutex> lk(d->mutex);
msk=mask; msk = wiimoteMask;
return msk; return msk;
} }
void UDPWiimote::getIR(float& _x, float& _y) void UDPWiimote::getIR(float* x, float* y)
{ {
std::lock_guard<std::mutex> lk(d->mutex); std::lock_guard<std::mutex> lk(d->mutex);
_x=(float)pointerX; *x = (float)pointerX;
_y=(float)pointerY; *y = (float)pointerY;
} }
void UDPWiimote::getNunchuck(float &_x, float &_y, u8 &_mask) void UDPWiimote::getNunchuck(float* x, float* y, u8* mask)
{ {
std::lock_guard<std::mutex> lk(d->mutex); std::lock_guard<std::mutex> lk(d->mutex);
_x=(float)nunX; *x = (float)nunX;
_y=(float)nunY; *y = (float)nunY;
_mask=nunMask; *mask = nunMask;
} }
void UDPWiimote::getNunchuckAccel(float& _x, float& _y, float& _z) void UDPWiimote::getNunchuckAccel(float* x, float* y, float* z)
{ {
std::lock_guard<std::mutex> lk(d->mutex); std::lock_guard<std::mutex> lk(d->mutex);
_x = (float)naX; *x = (float)naX;
_y = (float)naY; *y = (float)naY;
_z = (float)naZ; *z = (float)naZ;
} }
const std::string& UDPWiimote::getPort() const std::string& UDPWiimote::getPort()

View File

@ -27,12 +27,15 @@ class UDPWiimote
public: public:
UDPWiimote(const std::string& port, const std::string& name, int index); UDPWiimote(const std::string& port, const std::string& name, int index);
virtual ~UDPWiimote(); virtual ~UDPWiimote();
void getAccel(float& x, float& y, float& z); void getAccel(float* x, float* y, float* z);
u32 getButtons(); u32 getButtons();
void getNunchuck(float& x, float& y, u8& mask); void getNunchuck(float* x, float* y, u8* mask);
void getIR(float& x, float& y); void getIR(float* x, float* y);
void getNunchuckAccel(float& x, float& y, float& z); void getNunchuckAccel(float* x, float* y, float* z);
int getErrNo() { return err; } int getErrNo()
{
return err;
}
const std::string& getPort(); const std::string& getPort();
void changeName(const std::string& name); void changeName(const std::string& name);
@ -42,12 +45,12 @@ private:
int pharsePacket(u8* data, size_t size); int pharsePacket(u8* data, size_t size);
struct _d; //using pimpl because Winsock2.h doesn't have include guards -_- struct _d; //using pimpl because Winsock2.h doesn't have include guards -_-
_d* d; _d* d;
double x,y,z; double waX, waY, waZ;
double naX,naY,naZ; double naX, naY, naZ;
double nunX,nunY; double nunX, nunY;
double pointerX,pointerY; double pointerX, pointerY;
u8 nunMask; u8 nunMask;
u32 mask; u32 wiimoteMask;
u16 bcastMagic; u16 bcastMagic;
int err; int err;
int index; int index;

View File

@ -49,9 +49,9 @@ struct XFBSource : public XFBSourceBase
~XFBSource() { tex->Release(); } ~XFBSource() { tex->Release(); }
void Draw(const MathUtil::Rectangle<int> &sourcerc, void Draw(const MathUtil::Rectangle<int> &sourcerc,
const MathUtil::Rectangle<float> &drawrc) const; const MathUtil::Rectangle<float> &drawrc) const override;
void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight); void DecodeToTexture(u32 xfbAddr, u32 fbWidth, u32 fbHeight) override;
void CopyEFB(float Gamma); void CopyEFB(float Gamma) override;
D3DTexture2D* const tex; D3DTexture2D* const tex;
}; };
@ -81,10 +81,10 @@ public:
} }
private: private:
XFBSourceBase* CreateXFBSource(unsigned int target_width, unsigned int target_height); XFBSourceBase* CreateXFBSource(unsigned int target_width, unsigned int target_height) override;
void GetTargetSize(unsigned int *width, unsigned int *height, const EFBRectangle& sourceRc); void GetTargetSize(unsigned int *width, unsigned int *height, const EFBRectangle& sourceRc) override;
void CopyToRealXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc,float Gamma); void CopyToRealXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc,float Gamma) override;
static struct Efb static struct Efb
{ {

View File

@ -12,12 +12,12 @@ public:
PerfQuery(); PerfQuery();
~PerfQuery(); ~PerfQuery();
void EnableQuery(PerfQueryGroup type); void EnableQuery(PerfQueryGroup type) override;
void DisableQuery(PerfQueryGroup type); void DisableQuery(PerfQueryGroup type) override;
void ResetQuery(); void ResetQuery() override;
u32 GetQueryResult(PerfQueryType type); u32 GetQueryResult(PerfQueryType type) override;
void FlushResults(); void FlushResults() override;
bool IsFlushed() const; bool IsFlushed() const override;
private: private:
struct ActiveQuery struct ActiveQuery

View File

@ -12,41 +12,41 @@ public:
Renderer(); Renderer();
~Renderer(); ~Renderer();
void SetColorMask(); void SetColorMask() override;
void SetBlendMode(bool forceUpdate); void SetBlendMode(bool forceUpdate) override;
void SetScissorRect(const EFBRectangle& rc); void SetScissorRect(const EFBRectangle& rc) override;
void SetGenerationMode(); void SetGenerationMode() override;
void SetDepthMode(); void SetDepthMode() override;
void SetLogicOpMode(); void SetLogicOpMode() override;
void SetDitherMode(); void SetDitherMode() override;
void SetLineWidth(); void SetLineWidth() override;
void SetSamplerState(int stage,int texindex); void SetSamplerState(int stage,int texindex) override;
void SetInterlacingMode(); void SetInterlacingMode() override;
void SetViewport(); void SetViewport() override;
// TODO: Fix confusing names (see ResetAPIState and RestoreAPIState) // TODO: Fix confusing names (see ResetAPIState and RestoreAPIState)
void ApplyState(bool bUseDstAlpha); void ApplyState(bool bUseDstAlpha) override;
void RestoreState(); void RestoreState() override;
void ApplyCullDisable(); void ApplyCullDisable();
void RestoreCull(); void RestoreCull();
void RenderText(const std::string& text, int left, int top, u32 color); void RenderText(const std::string& text, int left, int top, u32 color) override;
u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data); u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) override;
void ResetAPIState(); void ResetAPIState() override;
void RestoreAPIState(); void RestoreAPIState() override;
TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc); TargetRectangle ConvertEFBRectangle(const EFBRectangle& rc) override;
void SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& rc,float Gamma); void SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& rc,float Gamma) override;
void ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaEnable, bool zEnable, u32 color, u32 z); void ClearScreen(const EFBRectangle& rc, bool colorEnable, bool alphaEnable, bool zEnable, u32 color, u32 z) override;
void ReinterpretPixelData(unsigned int convtype); void ReinterpretPixelData(unsigned int convtype) override;
bool SaveScreenshot(const std::string &filename, const TargetRectangle &rc); bool SaveScreenshot(const std::string &filename, const TargetRectangle &rc) override;
static bool CheckForResize(); static bool CheckForResize();
}; };

View File

@ -27,21 +27,21 @@ private:
~TCacheEntry(); ~TCacheEntry();
void Load(unsigned int width, unsigned int height, void Load(unsigned int width, unsigned int height,
unsigned int expanded_width, unsigned int levels); unsigned int expanded_width, unsigned int levels) override;
void FromRenderTarget(u32 dstAddr, unsigned int dstFormat, void FromRenderTarget(u32 dstAddr, unsigned int dstFormat,
unsigned int srcFormat, const EFBRectangle& srcRect, unsigned int srcFormat, const EFBRectangle& srcRect,
bool isIntensity, bool scaleByHalf, unsigned int cbufid, bool isIntensity, bool scaleByHalf, unsigned int cbufid,
const float *colmat); const float *colmat) override;
void Bind(unsigned int stage); void Bind(unsigned int stage) override;
bool Save(const std::string& filename, unsigned int level); bool Save(const std::string& filename, unsigned int level) override;
}; };
TCacheEntryBase* CreateTexture(unsigned int width, unsigned int height, TCacheEntryBase* CreateTexture(unsigned int width, unsigned int height,
unsigned int expanded_width, unsigned int tex_levels, PC_TexFormat pcfmt); unsigned int expanded_width, unsigned int tex_levels, PC_TexFormat pcfmt) override;
TCacheEntryBase* CreateRenderTargetTexture(unsigned int scaled_tex_w, unsigned int scaled_tex_h); TCacheEntryBase* CreateRenderTargetTexture(unsigned int scaled_tex_w, unsigned int scaled_tex_h) override;
u64 EncodeToRamFromTexture(u32 address, void* source_texture, u32 SourceW, u32 SourceH, bool bFromZBuffer, bool bIsIntensityFmt, u32 copyfmt, int bScaleByHalf, const EFBRectangle& source) {return 0;}; u64 EncodeToRamFromTexture(u32 address, void* source_texture, u32 SourceW, u32 SourceH, bool bFromZBuffer, bool bIsIntensityFmt, u32 copyfmt, int bScaleByHalf, const EFBRectangle& source) {return 0;};
}; };

View File

@ -17,12 +17,12 @@ public:
VertexManager(); VertexManager();
~VertexManager(); ~VertexManager();
NativeVertexFormat* CreateNativeVertexFormat(); NativeVertexFormat* CreateNativeVertexFormat() override;
void CreateDeviceObjects(); void CreateDeviceObjects() override;
void DestroyDeviceObjects(); void DestroyDeviceObjects() override;
protected: protected:
virtual void ResetBuffer(u32 stride); virtual void ResetBuffer(u32 stride) override;
u16* GetIndexBuffer() { return &LocalIBuffer[0]; } u16* GetIndexBuffer() { return &LocalIBuffer[0]; }
private: private:
@ -30,7 +30,7 @@ private:
void PrepareDrawBuffers(); void PrepareDrawBuffers();
void Draw(u32 stride); void Draw(u32 stride);
// temp // temp
void vFlush(bool useDstAlpha); void vFlush(bool useDstAlpha) override;
u32 m_vertex_buffer_cursor; u32 m_vertex_buffer_cursor;
u32 m_vertex_draw_offset; u32 m_vertex_draw_offset;

View File

@ -8,19 +8,19 @@ namespace DX11
class VideoBackend : public VideoBackendHardware class VideoBackend : public VideoBackendHardware
{ {
bool Initialize(void *&); bool Initialize(void *&) override;
void Shutdown(); void Shutdown() override;
std::string GetName(); std::string GetName() const override;
std::string GetDisplayName(); std::string GetDisplayName() const override;
void Video_Prepare(); void Video_Prepare() override;
void Video_Cleanup(); void Video_Cleanup() override;
void ShowConfig(void* parent); void ShowConfig(void* parent) override;
void UpdateFPSDisplay(const std::string&); void UpdateFPSDisplay(const std::string&) override;
unsigned int PeekMessages(); unsigned int PeekMessages() override;
}; };
} }

View File

@ -61,12 +61,12 @@ void VideoBackend::UpdateFPSDisplay(const std::string& text)
EmuWindow::SetWindowText(StringFromFormat("%s | D3D | %s", scm_rev_str, text.c_str())); EmuWindow::SetWindowText(StringFromFormat("%s | D3D | %s", scm_rev_str, text.c_str()));
} }
std::string VideoBackend::GetName() std::string VideoBackend::GetName() const
{ {
return "D3D"; return "D3D";
} }
std::string VideoBackend::GetDisplayName() std::string VideoBackend::GetDisplayName() const
{ {
return "Direct3D"; return "Direct3D";
} }

View File

@ -11,8 +11,8 @@ class VideoBackend : public VideoBackendHardware
bool Initialize(void *&) override; bool Initialize(void *&) override;
void Shutdown() override; void Shutdown() override;
std::string GetName() override; std::string GetName() const override;
std::string GetDisplayName() override; std::string GetDisplayName() const override;
void Video_Prepare() override; void Video_Prepare() override;
void Video_Cleanup() override; void Video_Cleanup() override;

View File

@ -92,12 +92,12 @@ Make AA apply instantly during gameplay if possible
namespace OGL namespace OGL
{ {
std::string VideoBackend::GetName() std::string VideoBackend::GetName() const
{ {
return "OGL"; return "OGL";
} }
std::string VideoBackend::GetDisplayName() std::string VideoBackend::GetDisplayName() const
{ {
if (GLInterface != nullptr && GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3) if (GLInterface != nullptr && GLInterface->GetMode() == GLInterfaceMode::MODE_OPENGLES3)
return "OpenGLES"; return "OpenGLES";

View File

@ -56,7 +56,7 @@ static volatile bool fifoStateRun = false;
static volatile bool emuRunningState = false; static volatile bool emuRunningState = false;
static std::mutex m_csSWVidOccupied; static std::mutex m_csSWVidOccupied;
std::string VideoSoftware::GetName() std::string VideoSoftware::GetName() const
{ {
return _trans("Software Renderer"); return _trans("Software Renderer");
} }

View File

@ -13,7 +13,7 @@ class VideoSoftware : public VideoBackend
bool Initialize(void *&) override; bool Initialize(void *&) override;
void Shutdown() override; void Shutdown() override;
std::string GetName() override; std::string GetName() const override;
void EmuStateChange(EMUSTATE_CHANGE newState) override; void EmuStateChange(EMUSTATE_CHANGE newState) override;

View File

@ -47,11 +47,10 @@ VideoConfigDialog::VideoConfigDialog(wxWindow* parent, const std::string& title,
wxStaticText* const label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:")); wxStaticText* const label_backend = new wxStaticText(page_general, wxID_ANY, _("Backend:"));
wxChoice* const choice_backend = new wxChoice(page_general, wxID_ANY, wxDefaultPosition); wxChoice* const choice_backend = new wxChoice(page_general, wxID_ANY, wxDefaultPosition);
std::vector<VideoBackend*>::const_iterator for (const VideoBackend* backend : g_available_video_backends)
it = g_available_video_backends.begin(), {
itend = g_available_video_backends.end(); choice_backend->AppendString(StrToWxStr(backend->GetDisplayName()));
for (; it != itend; ++it) }
choice_backend->AppendString(StrToWxStr((*it)->GetDisplayName()));
// TODO: How to get the translated plugin name? // TODO: How to get the translated plugin name?
choice_backend->SetStringSelection(StrToWxStr(g_video_backend->GetName())); choice_backend->SetStringSelection(StrToWxStr(g_video_backend->GetName()));

View File

@ -80,8 +80,8 @@ public:
virtual void Shutdown() = 0; virtual void Shutdown() = 0;
virtual void RunLoop(bool enable) = 0; virtual void RunLoop(bool enable) = 0;
virtual std::string GetName() = 0; virtual std::string GetName() const = 0;
virtual std::string GetDisplayName() { return GetName(); } virtual std::string GetDisplayName() const { return GetName(); }
virtual void ShowConfig(void*) {} virtual void ShowConfig(void*) {}

View File

@ -11,8 +11,8 @@ TEST(CommonFuncs, ArraySizeMacro)
char test[4]; char test[4];
u32 test2[42]; u32 test2[42];
EXPECT_EQ(4, ArraySize(test)); EXPECT_EQ(4u, ArraySize(test));
EXPECT_EQ(42, ArraySize(test2)); EXPECT_EQ(42u, ArraySize(test2));
} }
TEST(CommonFuncs, RoundUpPow2Macro) TEST(CommonFuncs, RoundUpPow2Macro)
@ -41,6 +41,6 @@ TEST(CommonFuncs, Swap)
{ {
EXPECT_EQ(0xf0, Common::swap8(0xf0)); EXPECT_EQ(0xf0, Common::swap8(0xf0));
EXPECT_EQ(0x1234, Common::swap16(0x3412)); EXPECT_EQ(0x1234, Common::swap16(0x3412));
EXPECT_EQ(0x12345678, Common::swap32(0x78563412)); EXPECT_EQ(0x12345678u, Common::swap32(0x78563412));
EXPECT_EQ(0x123456789abcdef0ull, Common::swap64(0xf0debc9a78563412ull)); EXPECT_EQ(0x123456789abcdef0ull, Common::swap64(0xf0debc9a78563412ull));
} }

View File

@ -11,22 +11,22 @@ TEST(FifoQueue, Simple)
{ {
Common::FifoQueue<u32> q; Common::FifoQueue<u32> q;
EXPECT_EQ(0, q.Size()); EXPECT_EQ(0u, q.Size());
EXPECT_TRUE(q.Empty()); EXPECT_TRUE(q.Empty());
q.Push(1); q.Push(1);
EXPECT_EQ(1, q.Size()); EXPECT_EQ(1u, q.Size());
EXPECT_FALSE(q.Empty()); EXPECT_FALSE(q.Empty());
u32 v; q.Pop(v); u32 v; q.Pop(v);
EXPECT_EQ(1, v); EXPECT_EQ(1u, v);
EXPECT_EQ(0, q.Size()); EXPECT_EQ(0u, q.Size());
EXPECT_TRUE(q.Empty()); EXPECT_TRUE(q.Empty());
// Test the FIFO order. // Test the FIFO order.
for (u32 i = 0; i < 1000; ++i) for (u32 i = 0; i < 1000; ++i)
q.Push(i); q.Push(i);
EXPECT_EQ(1000, q.Size()); EXPECT_EQ(1000u, q.Size());
for (u32 i = 0; i < 1000; ++i) for (u32 i = 0; i < 1000; ++i)
{ {
u32 v2; q.Pop(v2); u32 v2; q.Pop(v2);

View File

@ -10,7 +10,7 @@ TEST(FixedSizeQueue, Simple)
{ {
FixedSizeQueue<int, 5> q; FixedSizeQueue<int, 5> q;
EXPECT_EQ(0, q.size()); EXPECT_EQ(0u, q.size());
q.push(0); q.push(0);
q.push(1); q.push(1);
@ -29,5 +29,5 @@ TEST(FixedSizeQueue, Simple)
EXPECT_EQ(1003, q.pop_front()); EXPECT_EQ(1003, q.pop_front());
EXPECT_EQ(1004, q.pop_front()); EXPECT_EQ(1004, q.pop_front());
EXPECT_EQ(0, q.size()); EXPECT_EQ(0u, q.size());
} }