openMSX
|
#include <DiskChanger.hh>
Public Member Functions | |
DiskChanger (MSXMotherBoard &board, std::string driveName, bool createCmd=true, bool doubleSidedDrive=true, std::function< void()> preChangeCallback={}) | |
DiskChanger (Reactor &reactor, std::string driveName) | |
~DiskChanger () override | |
void | createCommand () |
const std::string & | getDriveName () const |
const DiskName & | getDiskName () const |
bool | peekDiskChanged () const |
void | forceDiskChange () |
Disk & | getDisk () |
const Disk & | getDisk () const |
SectorAccessibleDisk * | getSectorAccessibleDisk () override |
std::string_view | getContainerName () const override |
bool | diskChanged () override |
int | insertDisk (const std::string &filename) override |
void | changeDisk (std::unique_ptr< Disk > newDisk) |
Scheduler * | getScheduler () const |
bool | isDoubleSidedDrive () const |
template<typename Archive > | |
void | serialize (Archive &ar, unsigned version) |
![]() | |
DiskContainer (const DiskContainer &)=delete | |
DiskContainer & | operator= (const DiskContainer &)=delete |
DiskContainer ()=default | |
virtual | ~DiskContainer ()=default |
virtual SectorAccessibleDisk * | getSectorAccessibleDisk ()=0 |
virtual std::string_view | getContainerName () const =0 |
virtual bool | diskChanged ()=0 |
virtual int | insertDisk (const std::string &filename)=0 |
bool | isRomDisk () const |
template<typename Archive > | |
void | serialize (Archive &, unsigned) |
Friends | |
class | DiskCommand |
Definition at line 40 of file DiskChanger.hh.
openmsx::DiskChanger::DiskChanger | ( | MSXMotherBoard & | board, |
std::string | driveName, | ||
bool | createCmd = true , |
||
bool | doubleSidedDrive = true , |
||
std::function< void()> | preChangeCallback = {} |
||
) |
Definition at line 35 of file DiskChanger.cc.
References openmsx::MSXMotherBoard::getMachineID(), and tmpStrCat().
openmsx::DiskChanger::DiskChanger | ( | Reactor & | reactor, |
std::string | driveName | ||
) |
Definition at line 51 of file DiskChanger.cc.
|
override |
Definition at line 79 of file DiskChanger.cc.
References openmsx::Reactor::getDiskManipulator(), openmsx::DiskManipulator::unregisterDrive(), and openmsx::StateChangeDistributor::unregisterListener().
void openmsx::DiskChanger::changeDisk | ( | std::unique_ptr< Disk > | newDisk | ) |
Definition at line 178 of file DiskChanger.cc.
References openmsx::CommandController::getCliComm(), getDiskName(), getDriveName(), openmsx::CliComm::MEDIA, and openmsx::CliComm::update().
void openmsx::DiskChanger::createCommand | ( | ) |
Definition at line 73 of file DiskChanger.cc.
|
overridevirtual |
Implements openmsx::DiskContainer.
Definition at line 93 of file DiskChanger.cc.
|
inline |
Definition at line 57 of file DiskChanger.hh.
Referenced by openmsx::DirAsDSK::readSectorImpl().
|
overridevirtual |
Implements openmsx::DiskContainer.
Definition at line 108 of file DiskChanger.cc.
References getDriveName().
|
inline |
Definition at line 58 of file DiskChanger.hh.
|
inline |
Definition at line 59 of file DiskChanger.hh.
const DiskName & openmsx::DiskChanger::getDiskName | ( | ) | const |
Definition at line 88 of file DiskChanger.cc.
Referenced by changeDisk(), and openmsx::DiskCommand::execute().
|
inline |
Definition at line 54 of file DiskChanger.hh.
Referenced by changeDisk(), openmsx::DiskCommand::execute(), getContainerName(), openmsx::DiskCommand::help(), openmsx::SerializeConstructorArgs< DiskChanger >::save(), and serialize().
|
inline |
Definition at line 71 of file DiskChanger.hh.
Referenced by openmsx::DirAsDSK::checkCaches(), openmsx::DirAsDSK::readSectorImpl(), and openmsx::DirAsDSK::writeSectorImpl().
|
overridevirtual |
Implements openmsx::DiskContainer.
Definition at line 100 of file DiskChanger.cc.
Referenced by serialize().
|
overridevirtual |
Implements openmsx::DiskContainer.
Definition at line 148 of file DiskChanger.cc.
References insertDisk().
Referenced by insertDisk(), and serialize().
|
inline |
Definition at line 72 of file DiskChanger.hh.
Referenced by openmsx::DirAsDSK::DirAsDSK().
|
inline |
Definition at line 56 of file DiskChanger.hh.
void openmsx::DiskChanger::serialize | ( | Archive & | ar, |
unsigned | version | ||
) |
Definition at line 300 of file DiskChanger.cc.
References openmsx::DISK, openmsx::DiskName, Math::e, openmsx::FileOperations::exists(), openmsx::Filename, openmsx::SectorAccessibleDisk::forceWriteProtect(), openmsx::CommandController::getCliComm(), getDriveName(), openmsx::FilePool::getFile(), openmsx::Reactor::getFilePool(), openmsx::Filename::getOriginal(), openmsx::SectorAccessibleDisk::getPatches(), openmsx::DiskName::getResolved(), getSectorAccessibleDisk(), openmsx::File::getURL(), insertDisk(), openmsx::CliComm::printWarning(), openmsx::Filename::serialize(), and openmsx::DiskName::updateAfterLoadState().
|
friend |
Definition at line 98 of file DiskChanger.hh.