openMSX
|
#include <CartridgeSlotManager.hh>
Public Member Functions | |
CartridgeSlotManager (MSXMotherBoard &motherBoard) | |
~CartridgeSlotManager () | |
void | createExternalSlot (int ps) |
void | createExternalSlot (int ps, int ss) |
void | removeExternalSlot (int ps) |
void | removeExternalSlot (int ps, int ss) |
void | testRemoveExternalSlot (int ps, const HardwareConfig &allowed) const |
void | testRemoveExternalSlot (int ps, int ss, const HardwareConfig &allowed) const |
void | getSpecificSlot (unsigned slot, int &ps, int &ss) const |
void | getAnyFreeSlot (int &ps, int &ss) const |
void | allocateSlot (int ps, int ss, const HardwareConfig &hwConfig) |
void | freeSlot (int ps, int ss, const HardwareConfig &hwConfig) |
int | allocateAnyPrimarySlot (const HardwareConfig &hwConfig) |
int | allocateSpecificPrimarySlot (unsigned slot, const HardwareConfig &hwConfig) |
void | freePrimarySlot (int ps, const HardwareConfig &hwConfig) |
bool | isExternalSlot (int ps, int ss, bool convert) const |
bool | slotExists (unsigned slot) const |
int | getNumberOfSlots () const |
const HardwareConfig * | getConfigForSlot (unsigned slot) const |
std::pair< int, int > | getPsSs (unsigned slot) const |
std::string | getPsSsString (unsigned slot) const |
std::optional< unsigned > | findSlotWith (const HardwareConfig &config) const |
Static Public Member Functions | |
static int | getSlotNum (std::string_view slot) |
Static Public Attributes | |
static constexpr unsigned | MAX_SLOTS = 16 + 4 |
Definition at line 22 of file CartridgeSlotManager.hh.
|
explicit |
Definition at line 76 of file CartridgeSlotManager.cc.
openmsx::CartridgeSlotManager::~CartridgeSlotManager | ( | ) |
Definition at line 83 of file CartridgeSlotManager.cc.
int openmsx::CartridgeSlotManager::allocateAnyPrimarySlot | ( | const HardwareConfig & | hwConfig | ) |
Definition at line 242 of file CartridgeSlotManager.cc.
void openmsx::CartridgeSlotManager::allocateSlot | ( | int | ps, |
int | ss, | ||
const HardwareConfig & | hwConfig | ||
) |
Definition at line 266 of file CartridgeSlotManager.cc.
int openmsx::CartridgeSlotManager::allocateSpecificPrimarySlot | ( | unsigned | slot, |
const HardwareConfig & | hwConfig | ||
) |
Definition at line 205 of file CartridgeSlotManager.cc.
References MAX_SLOTS.
void openmsx::CartridgeSlotManager::createExternalSlot | ( | int | ps | ) |
Definition at line 112 of file CartridgeSlotManager.cc.
References createExternalSlot().
Referenced by createExternalSlot().
void openmsx::CartridgeSlotManager::createExternalSlot | ( | int | ps, |
int | ss | ||
) |
Definition at line 117 of file CartridgeSlotManager.cc.
References openmsx::MSXMotherBoard::getCPUInterface(), openmsx::MSXMotherBoard::getMSXCliComm(), openmsx::CliComm::HARDWARE, isExternalSlot(), MAX_SLOTS, openmsx::MSXMotherBoard::registerMediaInfo(), UNREACHABLE, openmsx::MSXCliComm::update(), and xrange().
|
inline |
Definition at line 75 of file CartridgeSlotManager.hh.
References MAX_SLOTS, and xrange().
Referenced by openmsx::ImGuiMedia::slotAndNameForHardwareConfig().
void openmsx::CartridgeSlotManager::freePrimarySlot | ( | int | ps, |
const HardwareConfig & | hwConfig | ||
) |
Definition at line 256 of file CartridgeSlotManager.cc.
void openmsx::CartridgeSlotManager::freeSlot | ( | int | ps, |
int | ss, | ||
const HardwareConfig & | hwConfig | ||
) |
Definition at line 288 of file CartridgeSlotManager.cc.
void openmsx::CartridgeSlotManager::getAnyFreeSlot | ( | int & | ps, |
int & | ss | ||
) | const |
Definition at line 223 of file CartridgeSlotManager.cc.
|
inline |
Definition at line 61 of file CartridgeSlotManager.hh.
References MAX_SLOTS.
Referenced by openmsx::ImGuiMedia::displayNameForSlotContent().
|
inline |
Definition at line 58 of file CartridgeSlotManager.hh.
References ranges::count_if().
|
inline |
Definition at line 65 of file CartridgeSlotManager.hh.
References MAX_SLOTS.
Referenced by getPsSsString(), and openmsx::ImGuiMedia::showMenu().
|
inline |
Definition at line 69 of file CartridgeSlotManager.hh.
References getPsSs(), strAppend(), and strCat().
Referenced by openmsx::ImGuiMedia::slotAndNameForHardwareConfig().
|
static |
Definition at line 92 of file CartridgeSlotManager.cc.
Referenced by openmsx::HardwareConfig::parseSlots().
void openmsx::CartridgeSlotManager::getSpecificSlot | ( | unsigned | slot, |
int & | ps, | ||
int & | ss | ||
) | const |
Definition at line 192 of file CartridgeSlotManager.cc.
References MAX_SLOTS.
bool openmsx::CartridgeSlotManager::isExternalSlot | ( | int | ps, |
int | ss, | ||
bool | convert | ||
) | const |
Definition at line 306 of file CartridgeSlotManager.cc.
References ranges::any_of(), MAX_SLOTS, and xrange().
Referenced by createExternalSlot().
void openmsx::CartridgeSlotManager::removeExternalSlot | ( | int | ps | ) |
Definition at line 175 of file CartridgeSlotManager.cc.
References removeExternalSlot().
Referenced by removeExternalSlot(), and openmsx::HardwareConfig::~HardwareConfig().
void openmsx::CartridgeSlotManager::removeExternalSlot | ( | int | ps, |
int | ss | ||
) |
Definition at line 180 of file CartridgeSlotManager.cc.
References openmsx::MSXMotherBoard::getMSXCliComm(), openmsx::CliComm::HARDWARE, openmsx::MSXMotherBoard::unregisterMediaInfo(), and openmsx::MSXCliComm::update().
|
inline |
Definition at line 54 of file CartridgeSlotManager.hh.
References MAX_SLOTS.
void openmsx::CartridgeSlotManager::testRemoveExternalSlot | ( | int | ps, |
const HardwareConfig & | allowed | ||
) | const |
Definition at line 160 of file CartridgeSlotManager.cc.
References testRemoveExternalSlot().
Referenced by openmsx::HardwareConfig::testRemove(), and testRemoveExternalSlot().
void openmsx::CartridgeSlotManager::testRemoveExternalSlot | ( | int | ps, |
int | ss, | ||
const HardwareConfig & | allowed | ||
) | const |
Definition at line 166 of file CartridgeSlotManager.cc.
|
staticconstexpr |
Definition at line 25 of file CartridgeSlotManager.hh.
Referenced by allocateAnyPrimarySlot(), allocateSlot(), allocateSpecificPrimarySlot(), createExternalSlot(), findSlotWith(), freeSlot(), getAnyFreeSlot(), getConfigForSlot(), getPsSs(), getSpecificSlot(), isExternalSlot(), openmsx::ImGuiMedia::showMenu(), slotExists(), and ~CartridgeSlotManager().