The great CD-ROM clean-up and rewrite, fixes #5134.
This commit is contained in:
@@ -537,10 +537,7 @@ MediaMenu::cdromMount(int i, const QString &filename)
|
||||
if ((fn.data() != NULL) && (strlen(fn.data()) >= 1) && (fn.data()[strlen(fn.data()) - 1] == '\\'))
|
||||
fn.data()[strlen(fn.data()) - 1] = '/';
|
||||
#endif
|
||||
if ((fn.data() != nullptr) && fn.contains("ioctl://"))
|
||||
cdrom_ioctl_open(&(cdrom[i]), fn.data());
|
||||
else
|
||||
cdrom_image_open(&(cdrom[i]), fn.data());
|
||||
cdrom_load(&(cdrom[i]), fn.data(), 1);
|
||||
|
||||
/* Signal media change to the emulated machine. */
|
||||
if (cdrom[i].insert) {
|
||||
@@ -806,14 +803,21 @@ MediaMenu::zipSelectImage(int i, bool wp)
|
||||
void
|
||||
MediaMenu::zipMount(int i, const QString &filename, bool wp)
|
||||
{
|
||||
const auto dev = static_cast<zip_t *>(zip_drives[i].priv);
|
||||
const auto dev = static_cast<zip_t *>(zip_drives[i].priv);
|
||||
int was_empty = zip_is_empty(i);
|
||||
|
||||
zip_disk_close(dev);
|
||||
zip_drives[i].read_only = wp;
|
||||
if (!filename.isEmpty()) {
|
||||
QByteArray filenameBytes = filename.toUtf8();
|
||||
zip_load(dev, filenameBytes.data());
|
||||
zip_load(dev, filenameBytes.data(), 1);
|
||||
|
||||
/* Signal media change to the emulated machine. */
|
||||
zip_insert(dev);
|
||||
|
||||
/* The drive was previously empty, transition directly to UNIT ATTENTION. */
|
||||
if (was_empty)
|
||||
zip_insert(dev);
|
||||
}
|
||||
mhm.addImageToHistory(i, ui::MediaType::Zip, zip_drives[i].prev_image_path, zip_drives[i].image_path);
|
||||
|
||||
@@ -935,14 +939,21 @@ MediaMenu::moSelectImage(int i, bool wp)
|
||||
void
|
||||
MediaMenu::moMount(int i, const QString &filename, bool wp)
|
||||
{
|
||||
const auto dev = static_cast<mo_t *>(mo_drives[i].priv);
|
||||
const auto dev = static_cast<mo_t *>(mo_drives[i].priv);
|
||||
int was_empty = mo_is_empty(i);
|
||||
|
||||
mo_disk_close(dev);
|
||||
mo_drives[i].read_only = wp;
|
||||
if (!filename.isEmpty()) {
|
||||
QByteArray filenameBytes = filename.toUtf8();
|
||||
mo_load(dev, filenameBytes.data());
|
||||
mo_load(dev, filenameBytes.data(), 1);
|
||||
|
||||
/* Signal media change to the emulated machine. */
|
||||
mo_insert(dev);
|
||||
|
||||
/* The drive was previously empty, transition directly to UNIT ATTENTION. */
|
||||
if (was_empty)
|
||||
mo_insert(dev);
|
||||
}
|
||||
mhm.addImageToHistory(i, ui::MediaType::Mo, mo_drives[i].prev_image_path, mo_drives[i].image_path);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user