Split cdrom and zip settings.
This commit is contained in:
161
src/config.c
161
src/config.c
@@ -70,6 +70,7 @@
|
||||
#include "devices/scsi/scsi_device.h"
|
||||
#include "devices/cdrom/cdrom.h"
|
||||
#include "devices/disk/zip.h"
|
||||
#include "devices/disk/mo.h"
|
||||
#include "devices/network/network.h"
|
||||
#include "devices/sound/sound.h"
|
||||
#include "devices/sound/midi.h"
|
||||
@@ -1270,10 +1271,10 @@ save_floppy(const config_t *cfg, const char *cat)
|
||||
}
|
||||
|
||||
|
||||
/* Load "Removable Devices" section. */
|
||||
/* Load "Multimedia Devices" section. */
|
||||
//FIXME: stuff should be loaded into config_t !
|
||||
static void
|
||||
load_removable(config_t *cfg, const char *cat)
|
||||
load_multimedia(config_t* cfg, const char* cat)
|
||||
{
|
||||
char temp[512], tmp2[512], * p;
|
||||
char s[512];
|
||||
@@ -1308,7 +1309,8 @@ load_removable(config_t *cfg, const char *cat)
|
||||
|
||||
if (cdrom[c].bus_id.ide_channel > 7)
|
||||
cdrom[c].bus_id.ide_channel = 7;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
sprintf(temp, "cdrom_%02i_scsi_location", c + 1);
|
||||
if (cdrom[c].bus_type == CDROM_BUS_SCSI) {
|
||||
sprintf(tmp2, "%02u:%02u", c + 2, 0);
|
||||
@@ -1321,7 +1323,8 @@ load_removable(config_t *cfg, const char *cat)
|
||||
cdrom[c].bus_id.scsi.id = 15;
|
||||
if (cdrom[c].bus_id.scsi.lun > 7)
|
||||
cdrom[c].bus_id.scsi.lun = 7;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
}
|
||||
@@ -1360,6 +1363,85 @@ load_removable(config_t *cfg, const char *cat)
|
||||
sprintf(temp, "cdrom_%02i_iso_path", c + 1);
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
}
|
||||
|
||||
/* Save "Multimedia Devices" section. */
|
||||
static void
|
||||
save_multimedia(const config_t* cfg, const char* cat)
|
||||
{
|
||||
char temp[512], tmp2[512];
|
||||
int c;
|
||||
|
||||
for (c = 0; c < CDROM_NUM; c++) {
|
||||
sprintf(temp, "cdrom_%02i_host_drive", c + 1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(cdrom[c].host_drive < 'A') || ((cdrom[c].host_drive > 'Z') && (cdrom[c].host_drive != 200))) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
config_set_int(cat, temp, cdrom[c].host_drive);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_speed", c + 1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(cdrom_speeds[cdrom[c].speed_idx].speed == cdrom_speed_idx(CDROM_SPEED_DEFAULT))) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
config_set_int(cat, temp, cdrom[c].speed_idx);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_parameters", c + 1);
|
||||
if (cdrom[c].bus_type == 0) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
sprintf(tmp2, "%u, %s", cdrom[c].sound_on,
|
||||
cdrom_bus_to_string(cdrom[c].bus_type));
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_ide_channel", c + 1);
|
||||
if (cdrom[c].bus_type != CDROM_BUS_ATAPI) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
sprintf(tmp2, "%01u:%01u", cdrom[c].bus_id.ide_channel >> 1,
|
||||
cdrom[c].bus_id.ide_channel & 1);
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_scsi_location", c + 1);
|
||||
if (cdrom[c].bus_type != CDROM_BUS_SCSI) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
sprintf(tmp2, "%02u:%02u",
|
||||
cdrom[c].bus_id.scsi.id, cdrom[c].bus_id.scsi.lun);
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_image_path", c + 1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(wcslen(cdrom[c].image_path) == 0)) {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
else {
|
||||
config_set_wstring(cat, temp, cdrom[c].image_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Load "IOMEGA Devices" section. */
|
||||
//FIXME: stuff should be loaded into config_t !
|
||||
static void
|
||||
load_iomega(config_t* cfg, const char* cat)
|
||||
{
|
||||
char temp[512], tmp2[512], * p;
|
||||
char s[512];
|
||||
unsigned int board = 0, dev = 0;
|
||||
wchar_t* wp;
|
||||
int c;
|
||||
|
||||
for (c = 0; c < ZIP_NUM; c++) {
|
||||
sprintf(temp, "zip_%02i_parameters", c + 1);
|
||||
@@ -1382,9 +1464,10 @@ load_removable(config_t *cfg, const char *cat)
|
||||
|
||||
if (zip_drives[c].bus_id.ide_channel > 7)
|
||||
zip_drives[c].bus_id.ide_channel = 7;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
sprintf(temp, "zip_%02i_scsi_location", c + 1);
|
||||
if (zip_drives[c].bus_type == CDROM_BUS_SCSI) {
|
||||
if (zip_drives[c].bus_type == ZIP_BUS_SCSI) {
|
||||
sprintf(tmp2, "%02u:%02u", c + 2, 0);
|
||||
p = config_get_string(cat, temp, tmp2);
|
||||
sscanf(p, "%02u:%02u",
|
||||
@@ -1395,7 +1478,8 @@ load_removable(config_t *cfg, const char *cat)
|
||||
zip_drives[c].bus_id.scsi.id = 15;
|
||||
if (zip_drives[c].bus_id.scsi.lun > 7)
|
||||
zip_drives[c].bus_id.scsi.lun = 7;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
config_delete_var(cat, temp);
|
||||
}
|
||||
}
|
||||
@@ -1406,7 +1490,7 @@ load_removable(config_t *cfg, const char *cat)
|
||||
/* Try to make relative, and copy to destination. */
|
||||
pc_path(zip_drives[c].image_path, sizeof_w(zip_drives[c].image_path), wp);
|
||||
|
||||
/* If the CD-ROM is disabled, delete all its variables. */
|
||||
/* If the ZIP is disabled, delete all its variables. */
|
||||
if (zip_drives[c].bus_type == ZIP_BUS_DISABLED) {
|
||||
sprintf(temp, "zip_%02i_host_drive", c + 1);
|
||||
config_delete_var(cat, temp);
|
||||
@@ -1429,67 +1513,13 @@ load_removable(config_t *cfg, const char *cat)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Save "Other Removable Devices" section. */
|
||||
/* Save "IOMEGA Devices" section. */
|
||||
static void
|
||||
save_removable(const config_t *cfg, const char *cat)
|
||||
save_iomega(const config_t* cfg, const char* cat)
|
||||
{
|
||||
char temp[512], tmp2[512];
|
||||
int c;
|
||||
|
||||
for (c = 0; c < CDROM_NUM; c++) {
|
||||
sprintf(temp, "cdrom_%02i_host_drive", c+1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(cdrom[c].host_drive < 'A') || ((cdrom[c].host_drive > 'Z') && (cdrom[c].host_drive != 200))) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
config_set_int(cat, temp, cdrom[c].host_drive);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_speed", c+1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(cdrom_speeds[cdrom[c].speed_idx].speed == cdrom_speed_idx(CDROM_SPEED_DEFAULT))) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
config_set_int(cat, temp, cdrom[c].speed_idx);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_parameters", c+1);
|
||||
if (cdrom[c].bus_type == 0) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
sprintf(tmp2, "%u, %s", cdrom[c].sound_on,
|
||||
cdrom_bus_to_string(cdrom[c].bus_type));
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_ide_channel", c+1);
|
||||
if (cdrom[c].bus_type != CDROM_BUS_ATAPI) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
sprintf(tmp2, "%01u:%01u", cdrom[c].bus_id.ide_channel>>1,
|
||||
cdrom[c].bus_id.ide_channel & 1);
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_scsi_location", c + 1);
|
||||
if (cdrom[c].bus_type != CDROM_BUS_SCSI) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
sprintf(tmp2, "%02u:%02u",
|
||||
cdrom[c].bus_id.scsi.id, cdrom[c].bus_id.scsi.lun);
|
||||
config_set_string(cat, temp, tmp2);
|
||||
}
|
||||
|
||||
sprintf(temp, "cdrom_%02i_image_path", c + 1);
|
||||
if ((cdrom[c].bus_type == 0) ||
|
||||
(wcslen(cdrom[c].image_path) == 0)) {
|
||||
config_delete_var(cat, temp);
|
||||
} else {
|
||||
config_set_wstring(cat, temp, cdrom[c].image_path);
|
||||
}
|
||||
}
|
||||
|
||||
for (c = 0; c < ZIP_NUM; c++) {
|
||||
sprintf(temp, "zip_%02i_parameters", c+1);
|
||||
if (zip_drives[c].bus_type == 0) {
|
||||
@@ -1546,7 +1576,8 @@ static const struct {
|
||||
{ "Other peripherals",load_other, save_other },
|
||||
{ "Hard disks", load_disks, save_disks },
|
||||
{ "Floppy drives", load_floppy, save_floppy },
|
||||
{ "Other removable devices",load_removable, save_removable },
|
||||
{ "CD/DVD devices",load_multimedia, save_multimedia },
|
||||
{ "IOMEGA devices",load_iomega, save_iomega },
|
||||
{ NULL, NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user