CommonHostInterface: Add swap memory cards hotkey

This commit is contained in:
Connor McLaughlin
2021-05-18 14:36:55 +10:00
parent 2f8150f357
commit 67f352339c
6 changed files with 65 additions and 0 deletions

View File

@ -293,6 +293,14 @@ void Pad::SetMemoryCard(u32 slot, std::unique_ptr<MemoryCard> dev)
m_memory_cards[slot] = std::move(dev);
}
std::unique_ptr<MemoryCard> Pad::RemoveMemoryCard(u32 slot)
{
std::unique_ptr<MemoryCard> ret = std::move(m_memory_cards[slot]);
if (ret)
ret->Reset();
return ret;
}
u32 Pad::ReadRegister(u32 offset)
{
switch (offset)

View File

@ -28,6 +28,7 @@ public:
MemoryCard* GetMemoryCard(u32 slot) { return m_memory_cards[slot].get(); }
void SetMemoryCard(u32 slot, std::unique_ptr<MemoryCard> dev);
std::unique_ptr<MemoryCard> RemoveMemoryCard(u32 slot);
Multitap* GetMultitap(u32 slot) { return &m_multitaps[slot]; };

View File

@ -1836,6 +1836,19 @@ void UpdateMemoryCards()
}
}
bool HasMemoryCard(u32 slot)
{
return (g_pad.GetMemoryCard(slot) != nullptr);
}
void SwapMemoryCards()
{
std::unique_ptr<MemoryCard> first = g_pad.RemoveMemoryCard(0);
std::unique_ptr<MemoryCard> second = g_pad.RemoveMemoryCard(1);
g_pad.SetMemoryCard(0, std::move(second));
g_pad.SetMemoryCard(1, std::move(first));
}
void UpdateMultitaps()
{
switch (g_settings.multitap_mode)

View File

@ -181,6 +181,8 @@ void UpdateControllers();
void UpdateControllerSettings();
void ResetControllers();
void UpdateMemoryCards();
bool HasMemoryCard(u32 slot);
void SwapMemoryCards();
void UpdateMultitaps();
/// Dumps RAM to a file.