Added option to configure scsi.device support from GUI
This commit is contained in:
parent
a76b2e8a23
commit
558bc5a2e4
2 changed files with 22 additions and 9 deletions
|
@ -193,10 +193,11 @@ static NavigationMap navMap[] =
|
||||||
{"cmdDel4", "cmdProp4", "Hard drives/CD", "cmdDel3", "cmdAddHDF"},
|
{"cmdDel4", "cmdProp4", "Hard drives/CD", "cmdDel3", "cmdAddHDF"},
|
||||||
{"cmdAddDir", "Hard drives/CD", "cmdAddHDF", "cmdProp4", "chkHDRO"},
|
{"cmdAddDir", "Hard drives/CD", "cmdAddHDF", "cmdProp4", "chkHDRO"},
|
||||||
{"cmdAddHDF", "cmdAddDir", "cmdCreateHDF", "cmdDel4", "chkHDRO"},
|
{"cmdAddHDF", "cmdAddDir", "cmdCreateHDF", "cmdDel4", "chkHDRO"},
|
||||||
{"cmdCreateHDF", "cmdAddHDF", "Hard drives/CD", "cmdDel4", "chkHDRO"},
|
{"cmdCreateHDF", "cmdAddHDF", "Hard drives / CD", "cmdDel4", "chkSCSI" },
|
||||||
{"chkHDRO", "Hard drives/CD", "Hard drives/CD", "cmdAddDir", "CD drive"},
|
{"chkHDRO", "Hard drives / CD", "chkSCSI", "cmdAddDir", "CD drive" },
|
||||||
|
{"chkSCSI", "chkHDRO", "Hard drives / CD", "cmdCreateHDF", "cdEject" },
|
||||||
{"CD drive", "Hard drives/CD", "cdEject", "chkHDRO", "cboCD"},
|
{"CD drive", "Hard drives/CD", "cdEject", "chkHDRO", "cboCD"},
|
||||||
{"cdEject", "CD drive", "CDSelect", "cmdCreateHDF", "cboCD"},
|
{"cdEject", "CD drive", "CDSelect", "chkSCSI", "cboCD" },
|
||||||
{"CDSelect", "cdEject", "Hard drives/CD", "cmdCreateHDF", "cboCD"},
|
{"CDSelect", "cdEject", "Hard drives/CD", "cmdCreateHDF", "cboCD"},
|
||||||
{"cboCD", "Hard drives/CD", "Hard drives/CD", "CD drive", "CDVol"},
|
{"cboCD", "Hard drives/CD", "Hard drives/CD", "CD drive", "CDVol"},
|
||||||
{"CDVol", "", "", "cboCD", "cmdProp0"},
|
{"CDVol", "", "", "cboCD", "cmdProp0"},
|
||||||
|
|
|
@ -43,6 +43,7 @@ static const int COLUMN_SIZE[] =
|
||||||
|
|
||||||
static const char* cdfile_filter[] = {".cue", ".ccd", ".iso", "\0"};
|
static const char* cdfile_filter[] = {".cue", ".ccd", ".iso", "\0"};
|
||||||
static void AdjustDropDownControls();
|
static void AdjustDropDownControls();
|
||||||
|
static bool bIgnoreListChange = false;
|
||||||
|
|
||||||
static gcn::Label* lblList[COL_COUNT];
|
static gcn::Label* lblList[COL_COUNT];
|
||||||
static gcn::Container* listEntry[MAX_HD_DEVICES];
|
static gcn::Container* listEntry[MAX_HD_DEVICES];
|
||||||
|
@ -53,6 +54,7 @@ static gcn::Button* cmdAddDirectory;
|
||||||
static gcn::Button* cmdAddHardfile;
|
static gcn::Button* cmdAddHardfile;
|
||||||
static gcn::Button* cmdCreateHardfile;
|
static gcn::Button* cmdCreateHardfile;
|
||||||
static gcn::CheckBox* chkHDReadOnly;
|
static gcn::CheckBox* chkHDReadOnly;
|
||||||
|
static gcn::CheckBox* chkScsi;
|
||||||
static gcn::CheckBox* chkCD;
|
static gcn::CheckBox* chkCD;
|
||||||
static gcn::DropDown* cboCDFile;
|
static gcn::DropDown* cboCDFile;
|
||||||
static gcn::Button* cmdCDEject;
|
static gcn::Button* cmdCDEject;
|
||||||
|
@ -292,14 +294,15 @@ public:
|
||||||
{
|
{
|
||||||
changed_prefs.harddrive_read_only = chkHDReadOnly->isSelected();
|
changed_prefs.harddrive_read_only = chkHDReadOnly->isSelected();
|
||||||
}
|
}
|
||||||
|
else if (actionEvent.getSource() == chkScsi)
|
||||||
|
{
|
||||||
|
changed_prefs.scsi = chkScsi->isSelected();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
GenericActionListener* genericActionListener;
|
GenericActionListener* genericActionListener;
|
||||||
|
|
||||||
|
|
||||||
static bool bIgnoreListChange = false;
|
|
||||||
|
|
||||||
class CDFileActionListener : public gcn::ActionListener
|
class CDFileActionListener : public gcn::ActionListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -412,6 +415,10 @@ void InitPanelHD(const struct _ConfigCategory& category)
|
||||||
chkHDReadOnly->setId("chkHDRO");
|
chkHDReadOnly->setId("chkHDRO");
|
||||||
chkHDReadOnly->addActionListener(genericActionListener);
|
chkHDReadOnly->addActionListener(genericActionListener);
|
||||||
|
|
||||||
|
chkScsi = new gcn::CheckBox("scsi.device emulation");
|
||||||
|
chkScsi->setId("chkSCSI");
|
||||||
|
chkScsi->addActionListener(genericActionListener);
|
||||||
|
|
||||||
chkCD = new gcn::CheckBox("CD drive");
|
chkCD = new gcn::CheckBox("CD drive");
|
||||||
chkCD->setId("CD drive");
|
chkCD->setId("CD drive");
|
||||||
chkCD->addActionListener(cdCheckActionListener);
|
chkCD->addActionListener(cdCheckActionListener);
|
||||||
|
@ -477,6 +484,7 @@ void InitPanelHD(const struct _ConfigCategory& category)
|
||||||
posY += cmdAddDirectory->getHeight() + DISTANCE_NEXT_Y;
|
posY += cmdAddDirectory->getHeight() + DISTANCE_NEXT_Y;
|
||||||
|
|
||||||
category.panel->add(chkHDReadOnly, DISTANCE_BORDER, posY);
|
category.panel->add(chkHDReadOnly, DISTANCE_BORDER, posY);
|
||||||
|
category.panel->add(chkScsi, cmdCreateHardfile->getX() + cmdCreateHardfile->getWidth(), posY);
|
||||||
posY += chkHDReadOnly->getHeight() + DISTANCE_NEXT_Y;
|
posY += chkHDReadOnly->getHeight() + DISTANCE_NEXT_Y;
|
||||||
|
|
||||||
category.panel->add(chkCD, DISTANCE_BORDER, posY + 2);
|
category.panel->add(chkCD, DISTANCE_BORDER, posY + 2);
|
||||||
|
@ -518,6 +526,7 @@ void ExitPanelHD()
|
||||||
delete cmdAddHardfile;
|
delete cmdAddHardfile;
|
||||||
delete cmdCreateHardfile;
|
delete cmdCreateHardfile;
|
||||||
delete chkHDReadOnly;
|
delete chkHDReadOnly;
|
||||||
|
delete chkScsi;
|
||||||
|
|
||||||
delete chkCD;
|
delete chkCD;
|
||||||
delete cmdCDEject;
|
delete cmdCDEject;
|
||||||
|
@ -542,6 +551,8 @@ void ExitPanelHD()
|
||||||
|
|
||||||
static void AdjustDropDownControls()
|
static void AdjustDropDownControls()
|
||||||
{
|
{
|
||||||
|
bIgnoreListChange = true;
|
||||||
|
|
||||||
cboCDFile->clearSelected();
|
cboCDFile->clearSelected();
|
||||||
if (changed_prefs.cdslots[0].inuse && strlen(changed_prefs.cdslots[0].name) > 0)
|
if (changed_prefs.cdslots[0].inuse && strlen(changed_prefs.cdslots[0].name) > 0)
|
||||||
{
|
{
|
||||||
|
@ -554,6 +565,7 @@ static void AdjustDropDownControls()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
bIgnoreListChange = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RefreshPanelHD()
|
void RefreshPanelHD()
|
||||||
|
@ -604,9 +616,9 @@ void RefreshPanelHD()
|
||||||
if (nosize)
|
if (nosize)
|
||||||
snprintf(tmp, 32, "n/a");
|
snprintf(tmp, 32, "n/a");
|
||||||
else if (mi.size >= 1024 * 1024 * 1024)
|
else if (mi.size >= 1024 * 1024 * 1024)
|
||||||
snprintf(tmp, 32, "%.1fG", double(uae_u32(mi.size / (1024 * 1024))) / 1024.0);
|
snprintf(tmp, 32, "%.1fG", static_cast<double>(uae_u32(mi.size / (1024 * 1024))) / 1024.0);
|
||||||
else
|
else
|
||||||
snprintf(tmp, 32, "%.1fM", double(uae_u32(mi.size / 1024)) / 1024.0);
|
snprintf(tmp, 32, "%.1fM", static_cast<double>(uae_u32(mi.size / 1024)) / 1024.0);
|
||||||
listCells[row][COL_SIZE]->setText(tmp);
|
listCells[row][COL_SIZE]->setText(tmp);
|
||||||
snprintf(tmp, 32, "%d", ci->bootpri);
|
snprintf(tmp, 32, "%d", ci->bootpri);
|
||||||
listCells[row][COL_BOOTPRI]->setText(tmp);
|
listCells[row][COL_BOOTPRI]->setText(tmp);
|
||||||
|
@ -625,7 +637,7 @@ void RefreshPanelHD()
|
||||||
}
|
}
|
||||||
|
|
||||||
chkHDReadOnly->setSelected(changed_prefs.harddrive_read_only);
|
chkHDReadOnly->setSelected(changed_prefs.harddrive_read_only);
|
||||||
|
chkScsi->setSelected(changed_prefs.scsi);
|
||||||
chkCD->setSelected(changed_prefs.cdslots[0].inuse);
|
chkCD->setSelected(changed_prefs.cdslots[0].inuse);
|
||||||
cmdCDEject->setEnabled(changed_prefs.cdslots[0].inuse);
|
cmdCDEject->setEnabled(changed_prefs.cdslots[0].inuse);
|
||||||
cmdCDSelect->setEnabled(changed_prefs.cdslots[0].inuse);
|
cmdCDSelect->setEnabled(changed_prefs.cdslots[0].inuse);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue