mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-21 05:09:34 -06:00
Replace TEXIDevices with an enum class
This commit is contained in:
@ -54,6 +54,8 @@ GameCubePane::GameCubePane()
|
||||
|
||||
void GameCubePane::CreateWidgets()
|
||||
{
|
||||
using ExpansionInterface::EXIDeviceType;
|
||||
|
||||
QVBoxLayout* layout = new QVBoxLayout(this);
|
||||
|
||||
// IPL Settings
|
||||
@ -95,32 +97,31 @@ void GameCubePane::CreateWidgets()
|
||||
}
|
||||
|
||||
// Add slot devices
|
||||
for (const auto& entry :
|
||||
{std::make_pair(tr("<Nothing>"), ExpansionInterface::EXIDEVICE_NONE),
|
||||
std::make_pair(tr("Dummy"), ExpansionInterface::EXIDEVICE_DUMMY),
|
||||
std::make_pair(tr("Memory Card"), ExpansionInterface::EXIDEVICE_MEMORYCARD),
|
||||
std::make_pair(tr("GCI Folder"), ExpansionInterface::EXIDEVICE_MEMORYCARDFOLDER),
|
||||
std::make_pair(tr("USB Gecko"), ExpansionInterface::EXIDEVICE_GECKO),
|
||||
std::make_pair(tr("Advance Game Port"), ExpansionInterface::EXIDEVICE_AGP),
|
||||
std::make_pair(tr("Microphone"), ExpansionInterface::EXIDEVICE_MIC)})
|
||||
for (const auto& entry : {std::make_pair(tr("<Nothing>"), EXIDeviceType::None),
|
||||
std::make_pair(tr("Dummy"), EXIDeviceType::Dummy),
|
||||
std::make_pair(tr("Memory Card"), EXIDeviceType::MemoryCard),
|
||||
std::make_pair(tr("GCI Folder"), EXIDeviceType::MemoryCardFolder),
|
||||
std::make_pair(tr("USB Gecko"), EXIDeviceType::Gecko),
|
||||
std::make_pair(tr("Advance Game Port"), EXIDeviceType::AGP),
|
||||
std::make_pair(tr("Microphone"), EXIDeviceType::Microphone)})
|
||||
{
|
||||
m_slot_combos[0]->addItem(entry.first, entry.second);
|
||||
m_slot_combos[1]->addItem(entry.first, entry.second);
|
||||
m_slot_combos[0]->addItem(entry.first, static_cast<int>(entry.second));
|
||||
m_slot_combos[1]->addItem(entry.first, static_cast<int>(entry.second));
|
||||
}
|
||||
|
||||
// Add SP1 devices
|
||||
std::vector<std::pair<QString, ExpansionInterface::TEXIDevices>> sp1Entries{
|
||||
std::make_pair(tr("<Nothing>"), ExpansionInterface::EXIDEVICE_NONE),
|
||||
std::make_pair(tr("Dummy"), ExpansionInterface::EXIDEVICE_DUMMY),
|
||||
std::make_pair(tr("Broadband Adapter (TAP)"), ExpansionInterface::EXIDEVICE_ETH),
|
||||
std::make_pair(tr("Broadband Adapter (XLink Kai)"), ExpansionInterface::EXIDEVICE_ETHXLINK)};
|
||||
std::vector<std::pair<QString, EXIDeviceType>> sp1Entries{
|
||||
std::make_pair(tr("<Nothing>"), EXIDeviceType::None),
|
||||
std::make_pair(tr("Dummy"), EXIDeviceType::Dummy),
|
||||
std::make_pair(tr("Broadband Adapter (TAP)"), EXIDeviceType::Ethernet),
|
||||
std::make_pair(tr("Broadband Adapter (XLink Kai)"), EXIDeviceType::EthernetXLink)};
|
||||
#if defined(__APPLE__)
|
||||
sp1Entries.emplace_back(std::make_pair(tr("Broadband Adapter (tapserver)"),
|
||||
ExpansionInterface::EXIDEVICE_ETHTAPSERVER));
|
||||
ExpansionInterface::EXIDeviceType::EthernetTapServer));
|
||||
#endif
|
||||
for (const auto& entry : sp1Entries)
|
||||
{
|
||||
m_slot_combos[2]->addItem(entry.first, entry.second);
|
||||
m_slot_combos[2]->addItem(entry.first, static_cast<int>(entry.second));
|
||||
}
|
||||
|
||||
device_layout->addWidget(new QLabel(tr("Slot A:")), 0, 0);
|
||||
@ -242,20 +243,21 @@ void GameCubePane::OnEmulationStateChanged()
|
||||
|
||||
void GameCubePane::UpdateButton(int slot)
|
||||
{
|
||||
const auto value = m_slot_combos[slot]->currentData().toInt();
|
||||
const auto device =
|
||||
static_cast<ExpansionInterface::EXIDeviceType>(m_slot_combos[slot]->currentData().toInt());
|
||||
bool has_config = false;
|
||||
|
||||
switch (slot)
|
||||
{
|
||||
case SLOT_A_INDEX:
|
||||
case SLOT_B_INDEX:
|
||||
has_config =
|
||||
(value == ExpansionInterface::EXIDEVICE_MEMORYCARD ||
|
||||
value == ExpansionInterface::EXIDEVICE_AGP || value == ExpansionInterface::EXIDEVICE_MIC);
|
||||
has_config = (device == ExpansionInterface::EXIDeviceType::MemoryCard ||
|
||||
device == ExpansionInterface::EXIDeviceType::AGP ||
|
||||
device == ExpansionInterface::EXIDeviceType::Microphone);
|
||||
break;
|
||||
case SLOT_SP1_INDEX:
|
||||
has_config = (value == ExpansionInterface::EXIDEVICE_ETH ||
|
||||
value == ExpansionInterface::EXIDEVICE_ETHXLINK);
|
||||
has_config = (device == ExpansionInterface::EXIDeviceType::Ethernet ||
|
||||
device == ExpansionInterface::EXIDeviceType::EthernetXLink);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -267,30 +269,34 @@ void GameCubePane::OnConfigPressed(int slot)
|
||||
QString filter;
|
||||
bool memcard = false;
|
||||
|
||||
switch (m_slot_combos[slot]->currentData().toInt())
|
||||
const ExpansionInterface::EXIDeviceType device =
|
||||
static_cast<ExpansionInterface::EXIDeviceType>(m_slot_combos[slot]->currentData().toInt());
|
||||
|
||||
switch (device)
|
||||
{
|
||||
case ExpansionInterface::EXIDEVICE_MEMORYCARD:
|
||||
case ExpansionInterface::EXIDeviceType::MemoryCard:
|
||||
filter = tr("GameCube Memory Cards (*.raw *.gcp)");
|
||||
memcard = true;
|
||||
break;
|
||||
case ExpansionInterface::EXIDEVICE_AGP:
|
||||
case ExpansionInterface::EXIDeviceType::AGP:
|
||||
filter = tr("Game Boy Advance Carts (*.gba)");
|
||||
break;
|
||||
case ExpansionInterface::EXIDEVICE_MIC:
|
||||
case ExpansionInterface::EXIDeviceType::Microphone:
|
||||
MappingWindow(this, MappingWindow::Type::MAPPING_GC_MICROPHONE, slot).exec();
|
||||
return;
|
||||
case ExpansionInterface::EXIDEVICE_ETH:
|
||||
case ExpansionInterface::EXIDeviceType::Ethernet:
|
||||
{
|
||||
BroadbandAdapterSettingsDialog(this, BroadbandAdapterSettingsDialog::Type::Ethernet).exec();
|
||||
return;
|
||||
}
|
||||
case ExpansionInterface::EXIDEVICE_ETHXLINK:
|
||||
case ExpansionInterface::EXIDeviceType::EthernetXLink:
|
||||
{
|
||||
BroadbandAdapterSettingsDialog(this, BroadbandAdapterSettingsDialog::Type::XLinkKai).exec();
|
||||
return;
|
||||
}
|
||||
default:
|
||||
qFatal("unknown settings pressed");
|
||||
PanicAlertFmt("Unknown settings pressed for {}", device);
|
||||
return;
|
||||
}
|
||||
|
||||
QString filename = DolphinFileDialog::getSaveFileName(
|
||||
@ -322,7 +328,7 @@ void GameCubePane::OnConfigPressed(int slot)
|
||||
|
||||
bool other_slot_memcard =
|
||||
m_slot_combos[slot == SLOT_A_INDEX ? SLOT_B_INDEX : SLOT_A_INDEX]->currentData().toInt() ==
|
||||
ExpansionInterface::EXIDEVICE_MEMORYCARD;
|
||||
static_cast<int>(ExpansionInterface::EXIDeviceType::MemoryCard);
|
||||
if (other_slot_memcard)
|
||||
{
|
||||
QString path_b =
|
||||
@ -384,7 +390,8 @@ void GameCubePane::OnConfigPressed(int slot)
|
||||
// SlotB is on channel 1, slotA and SP1 are on 0
|
||||
slot,
|
||||
// The device enum to change to
|
||||
memcard ? ExpansionInterface::EXIDEVICE_MEMORYCARD : ExpansionInterface::EXIDEVICE_AGP,
|
||||
memcard ? ExpansionInterface::EXIDeviceType::MemoryCard :
|
||||
ExpansionInterface::EXIDeviceType::AGP,
|
||||
// SP1 is device 2, slots are device 0
|
||||
0);
|
||||
}
|
||||
@ -458,8 +465,9 @@ void GameCubePane::LoadSettings()
|
||||
for (int i = 0; i < SLOT_COUNT; i++)
|
||||
{
|
||||
QSignalBlocker blocker(m_slot_combos[i]);
|
||||
const ExpansionInterface::TEXIDevices exi_device = Config::Get(Config::GetInfoForEXIDevice(i));
|
||||
m_slot_combos[i]->setCurrentIndex(m_slot_combos[i]->findData(exi_device));
|
||||
const ExpansionInterface::EXIDeviceType exi_device =
|
||||
Config::Get(Config::GetInfoForEXIDevice(i));
|
||||
m_slot_combos[i]->setCurrentIndex(m_slot_combos[i]->findData(static_cast<int>(exi_device)));
|
||||
UpdateButton(i);
|
||||
}
|
||||
|
||||
@ -485,8 +493,9 @@ void GameCubePane::SaveSettings()
|
||||
// Device Settings
|
||||
for (int i = 0; i < SLOT_COUNT; i++)
|
||||
{
|
||||
const auto dev = ExpansionInterface::TEXIDevices(m_slot_combos[i]->currentData().toInt());
|
||||
const ExpansionInterface::TEXIDevices current_exi_device =
|
||||
const auto dev =
|
||||
static_cast<ExpansionInterface::EXIDeviceType>(m_slot_combos[i]->currentData().toInt());
|
||||
const ExpansionInterface::EXIDeviceType current_exi_device =
|
||||
Config::Get(Config::GetInfoForEXIDevice(i));
|
||||
|
||||
if (Core::IsRunning() && current_exi_device != dev)
|
||||
|
Reference in New Issue
Block a user