Make dual video card code use array

This commit is contained in:
Jasmine Iwanek
2023-02-06 04:12:46 -05:00
parent 6978f6d7d4
commit a7236a9022
31 changed files with 115 additions and 118 deletions

View File

@@ -166,8 +166,7 @@ int bugger_enabled = 0; /* (C) enable ISAbug
int postcard_enabled = 0; /* (C) enable POST card */
int isamem_type[ISAMEM_MAX] = { 0, 0, 0, 0 }; /* (C) enable ISA mem cards */
int isartc_type = 0; /* (C) enable ISA RTC card */
int gfxcard = 0; /* (C) graphics/video card */
int gfxcard_2 = 0; /* (C) graphics/video card */
int gfxcard[2] = { 0, 0 }; /* (C) graphics/video card */
int show_second_monitors = 1; /* (C) show non-primary monitors */
int sound_is_float = 1; /* (C) sound uses FP values */
int voodoo_enabled = 0; /* (C) video option */
@@ -869,34 +868,34 @@ pc_init_modules(void)
}
/* Make sure we have a usable video card. */
if (!video_card_available(gfxcard)) {
if (!video_card_available(gfxcard[0])) {
memset(tempc, 0, sizeof(tempc));
device_get_name(video_card_getdevice(gfxcard), 0, tempc);
device_get_name(video_card_getdevice(gfxcard[0]), 0, tempc);
swprintf(temp, sizeof(temp), plat_get_string(IDS_2064), tempc);
c = 0;
while (video_get_internal_name(c) != NULL) {
gfxcard = -1;
gfxcard[0] = -1;
if (video_card_available(c)) {
ui_msgbox_header(MBX_INFO, (wchar_t *) IDS_2129, temp);
gfxcard = c;
gfxcard[0] = c;
config_save();
break;
}
c++;
}
if (gfxcard == -1) {
if (gfxcard[0] == -1) {
fatal("No available video cards\n");
exit(-1);
return (0);
}
}
if (!video_card_available(gfxcard_2)) {
if (!video_card_available(gfxcard[1])) {
char tempc[512] = { 0 };
device_get_name(video_card_getdevice(gfxcard_2), 0, tempc);
device_get_name(video_card_getdevice(gfxcard[1]), 0, tempc);
swprintf(temp, sizeof(temp), (wchar_t *) "Video card #2 \"%hs\" is not available due to missing ROMs in the roms/video directory. Disabling the second video card.", tempc);
ui_msgbox_header(MBX_INFO, (wchar_t *) IDS_2129, temp);
gfxcard_2 = 0;
gfxcard[1] = 0;
}
atfullspeed = 0;

View File

@@ -530,7 +530,7 @@ load_video(void)
if (machine_has_flags(machine, MACHINE_VIDEO_ONLY)) {
ini_section_delete_var(cat, "gfxcard");
gfxcard = VID_INTERNAL;
gfxcard[0] = VID_INTERNAL;
} else {
p = ini_section_get_string(cat, "gfxcard", NULL);
if (p == NULL) {
@@ -544,9 +544,9 @@ load_video(void)
free_p = 1;
}
if (!strcmp(p, "virge375_vbe20_pci")) /* migrate renamed cards */
gfxcard = video_get_video_from_internal_name("virge385_pci");
gfxcard[0] = video_get_video_from_internal_name("virge385_pci");
else
gfxcard = video_get_video_from_internal_name(p);
gfxcard[0] = video_get_video_from_internal_name(p);
if (free_p)
free(p);
}
@@ -560,7 +560,7 @@ load_video(void)
p = ini_section_get_string(cat, "gfxcard_2", NULL);
if (!p)
p = "none";
gfxcard_2 = video_get_video_from_internal_name(p);
gfxcard[1] = video_get_video_from_internal_name(p);
}
/* Load "Input Devices" section. */
@@ -1851,7 +1851,7 @@ config_load(void)
dpi_scale = 1;
fpu_type = fpu_get_type(cpu_f, cpu, "none");
gfxcard = video_get_video_from_internal_name("cga");
gfxcard[0] = video_get_video_from_internal_name("cga");
vid_api = plat_vidapi("default");
vid_resize = 0;
video_fullscreen_first = 1;
@@ -2235,7 +2235,7 @@ save_video(void)
ini_section_t cat = ini_find_or_create_section(config, "Video");
ini_section_set_string(cat, "gfxcard",
video_get_internal_name(gfxcard));
video_get_internal_name(gfxcard[0]));
if (voodoo_enabled == 0)
ini_section_delete_var(cat, "voodoo");
@@ -2252,10 +2252,10 @@ save_video(void)
else
ini_section_set_int(cat, "xga", xga_enabled);
if (gfxcard_2 == 0)
if (gfxcard[1] == 0)
ini_section_delete_var(cat, "gfxcard_2");
else
ini_section_set_string(cat, "gfxcard_2", video_get_internal_name(gfxcard_2));
ini_section_set_string(cat, "gfxcard_2", video_get_internal_name(gfxcard[1]));
if (show_second_monitors == 1)
ini_section_delete_var(cat, "show_second_monitors");

View File

@@ -2491,7 +2491,7 @@ kbd_init(const device_t *info)
dev->flags = info->local;
video_reset(gfxcard);
video_reset(gfxcard[0]);
kbd_reset(dev);
io_sethandler(0x0060, 1, kbd_read, NULL, NULL, kbd_write, NULL, NULL, dev);

View File

@@ -730,7 +730,7 @@ kbd_init(const device_t *info)
key_queue_start = key_queue_end = 0;
video_reset(gfxcard);
video_reset(gfxcard[0]);
if ((kbd->type == KBD_TYPE_PC81) || (kbd->type == KBD_TYPE_PC82) ||
(kbd->type == KBD_TYPE_PRAVETZ) || (kbd->type == KBD_TYPE_XT82) ||

View File

@@ -91,7 +91,7 @@ phoenix_486_jumper_reset(void *priv)
dev->jumper = 0x00;
else {
dev->jumper = 0x9f;
if (gfxcard != 0x01)
if (gfxcard[0] != 0x01)
dev->jumper |= 0x40;
}
}

View File

@@ -107,7 +107,7 @@ extern int vid_cga_contrast, /* (C) video */
video_filter_method, /* (C) video */
video_vsync, /* (C) video */
video_framerate, /* (C) video */
gfxcard; /* (C) graphics/video card */
gfxcard[2]; /* (C) graphics/video card */
extern char video_shader[512]; /* (C) video */
extern int bugger_enabled, /* (C) enable ISAbugger */
postcard_enabled, /* (C) enable POST card */

View File

@@ -132,7 +132,6 @@ extern monitor_t monitors[MONITORS_NUM];
extern monitor_settings_t monitor_settings[MONITORS_NUM];
extern atomic_bool doresize_monitors[MONITORS_NUM];
extern int monitor_index_global;
extern int gfxcard_2;
extern int show_second_monitors;
extern int video_fullscreen_scale_maximized;

View File

@@ -2474,9 +2474,9 @@ machine_amstrad_init(const machine_t *model, int type)
ams->language = 7;
video_reset(gfxcard);
video_reset(gfxcard[0]);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
switch (type) {
case AMS_PC1512:
loadfont("roms/machines/pc1512/40078", 8);

View File

@@ -114,7 +114,7 @@ machine_at_ama932j_init(const machine_t *model)
machine_at_common_ide_init(model);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&oti067_ama932j_device);
machine_at_headland_common_init(2);
@@ -420,7 +420,7 @@ machine_at_spc4620p_init(const machine_t *model)
if (bios_only || !ret)
return ret;
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ati28800k_spc4620p_device);
machine_at_scat_init(model, 1, 1);
@@ -527,7 +527,7 @@ machine_at_wd76c10_init(const machine_t *model)
machine_at_common_init(model);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&paradise_wd90c11_megapc_device);
device_add(&keyboard_ps2_quadtel_device);
@@ -591,7 +591,7 @@ machine_at_cmdsl386sx25_init(const machine_t *model)
if (bios_only || !ret)
return ret;
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5402_onboard_device);
machine_at_scamp_common_init(model, 1);
@@ -626,7 +626,7 @@ machine_at_spc6033p_init(const machine_t *model)
if (bios_only || !ret)
return ret;
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ati28800k_spc6033p_device);
machine_at_scamp_common_init(model, 1);
@@ -711,7 +711,7 @@ machine_at_flytech386_init(const machine_t *model)
device_add(&ali1217_device);
device_add(&w83787f_ide_en_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&tvga8900d_device);
device_add(&keyboard_ps2_device);
@@ -833,7 +833,7 @@ machine_at_3302_init(const machine_t *model)
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_at_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&paradise_pvga1a_ncr3302_device);
device_add(&keyboard_at_ncr_device);

View File

@@ -168,7 +168,7 @@ machine_at_valuepoint433_init(const machine_t *model) // hangs without the PS/2
machine_at_common_ide_init(model);
device_add(&sis_85c461_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&et4000w32_onboard_device);
device_add(&keyboard_ps2_device);
@@ -310,7 +310,7 @@ machine_at_pb410a_init(const machine_t *model)
device_add(&phoenix_486_jumper_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ht216_32_pb410a_device);
return ret;
@@ -331,7 +331,7 @@ machine_at_vect486vl_init(const machine_t *model) // has HDC problems
device_add(&vl82c480_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
device_add(&keyboard_ps2_ami_device);
@@ -355,7 +355,7 @@ machine_at_d824_init(const machine_t *model)
device_add(&vl82c480_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
device_add(&keyboard_ps2_device);
@@ -378,7 +378,7 @@ machine_at_acera1g_init(const machine_t *model)
machine_at_common_init(model);
device_add(&ali1429g_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5428_onboard_device);
device_add(&keyboard_ps2_acer_pci_device);
@@ -428,7 +428,7 @@ machine_at_decpclpv_init(const machine_t *model)
device_add(&sis_85c461_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_86c805_onboard_vlb_device);
/* TODO: Phoenix MultiKey KBC */
@@ -1365,7 +1365,7 @@ machine_at_sbc490_init(const machine_t *model)
device_add(&ali1489_device);
device_add(&fdc37c665_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&tgui9440_onboard_pci_device);
device_add(&keyboard_ps2_ami_device);

View File

@@ -787,21 +787,21 @@ machine_at_compaq_init(const machine_t *model, int type)
write_ram, write_ramw, write_raml,
0xa0000 + ram, MEM_MAPPING_INTERNAL, NULL);
video_reset(gfxcard);
video_reset(gfxcard[0]);
switch (type) {
case COMPAQ_PORTABLEII:
break;
case COMPAQ_PORTABLEIII:
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&compaq_plasma_device);
break;
case COMPAQ_PORTABLEIII386:
if (hdc_current == 1)
device_add(&ide_isa_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&compaq_plasma_device);
break;

View File

@@ -663,7 +663,7 @@ machine_at_ms6168_common_init(const machine_t *model)
device_add(&piix4e_device);
device_add(&w83977ef_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&voodoo_3_2000_agp_onboard_8m_device);
device_add(&keyboard_ps2_ami_pci_device);

View File

@@ -345,7 +345,7 @@ machine_at_pb520r_init(const machine_t *model)
device_add(&i430lx_device);
device_add(&ide_cmd640_pci_single_channel_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5434_onboard_pci_device);
device_add(&keyboard_ps2_pci_device);

View File

@@ -398,7 +398,7 @@ machine_at_presario2240_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_VIDEO, 3, 0, 0, 0);
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&i430vx_device);
@@ -429,7 +429,7 @@ machine_at_presario4500_init(const machine_t *model)
pci_register_slot(0x14, PCI_CARD_VIDEO, 3, 0, 0, 0);
pci_register_slot(0x13, PCI_CARD_NORMAL, 1, 2, 3, 4);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_trio64v2_dx_onboard_pci_device);
device_add(&i430vx_device);

View File

@@ -58,7 +58,7 @@ machine_at_thor_common_init(const machine_t *model, int mr)
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 3, 2, 1);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_phoenix_trio64vplus_onboard_pci_device);
// device_add(&keyboard_ps2_ami_pci_device);
@@ -222,7 +222,7 @@ machine_at_endeavor_init(const machine_t *model)
pci_register_slot(0x10, PCI_CARD_NORMAL, 4, 1, 2, 3);
pci_register_slot(0x07, PCI_CARD_SOUTHBRIDGE, 0, 0, 0, 0);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
@@ -286,7 +286,7 @@ machine_at_pb640_init(const machine_t *model)
device_add(&i430fx_rev02_device);
device_add(&piix_rev02_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&gd5440_onboard_pci_device);
device_add(&keyboard_ps2_intel_ami_pci_device);
@@ -616,7 +616,7 @@ machine_at_vectra54_init(const machine_t *model)
pci_register_slot(0x07, PCI_CARD_NORMAL, 2, 3, 4, 1);
pci_register_slot(0x08, PCI_CARD_NORMAL, 3, 4, 1, 2);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&s3_phoenix_trio64_onboard_pci_device);
device_add(&keyboard_ps2_ami_pci_device);

View File

@@ -178,7 +178,7 @@ machine_elt_init(const machine_t *model)
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
if (gfxcard == VID_INTERNAL) {
if (gfxcard[0] == VID_INTERNAL) {
cga = device_add(&cga_device);
io_removehandler(0x03d0, 0x0010, cga_in, NULL, NULL, cga_out, NULL, NULL, cga);
io_sethandler(0x03d0, 0x0010, elt_vid_in, NULL, NULL, elt_vid_out, NULL, NULL, cga);

View File

@@ -549,7 +549,7 @@ europc_boot(const device_t *info)
* with values set by the user.
*/
b = (sys->nvr.regs[MRTC_CONF_D] & ~0x17);
video_reset(gfxcard);
video_reset(gfxcard[0]);
if (video_is_cga())
b |= 0x12; /* external video, CGA80 */
else if (video_is_mda())

View File

@@ -781,7 +781,7 @@ machine_pcjr_init(const machine_t *model)
cpu_set();
/* Initialize the video controller. */
video_reset(gfxcard);
video_reset(gfxcard[0]);
loadfont("roms/video/mda/mda.rom", 0);
mem_mapping_add(&pcjr->mapping, 0xb8000, 0x08000,
vid_read, NULL, NULL,

View File

@@ -300,7 +300,7 @@ ps1_setup(int model)
0xfc0000, 0x40000, 0x3ffff, 0, MEM_MAPPING_EXTERNAL);
/* Initialize the video controller. */
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ibm_ps1_2121_device);
device_add(&fdc_at_ps1_device);

View File

@@ -950,7 +950,7 @@ ps2_mca_board_model_50_init(int slots)
ps2_mca_mem_fffc_init(2);
}
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ps1vga_mca_device);
}
@@ -1008,7 +1008,7 @@ ps2_mca_board_model_55sx_init(int has_sec_nvram, int slots)
ps2.planar_read = model_55sx_read;
ps2.planar_write = model_55sx_write;
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ps1vga_mca_device);
model_55sx_mem_recalc();
@@ -1244,7 +1244,7 @@ ps2_mca_board_model_70_type34_init(int is_type4, int slots)
}
}
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ps1vga_mca_device);
}
@@ -1318,7 +1318,7 @@ ps2_mca_board_model_80_type2_init(int is486)
}
}
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ps1vga_mca_device);
ps2.split_size = 0;

View File

@@ -1437,7 +1437,7 @@ machine_tandy1k_init(const machine_t *model, int type)
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_tandy_device);
video_reset(gfxcard);
video_reset(gfxcard[0]);
switch (type) {
case TYPE_TANDY:

View File

@@ -90,7 +90,7 @@ machine_v86p_init(const machine_t *model)
if (fdc_type == FDC_INTERNAL)
device_add(&fdc_xt_device);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&f82c425_video_device);
if (hdc_current <= 1)

View File

@@ -1807,9 +1807,9 @@ machine_xt_m24_init(const machine_t *model)
mm58174_init(nvr, model->nvrmask + 1);
video_reset(gfxcard);
video_reset(gfxcard[0]);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&ogc_m24_device);
pit_devs[0].set_out_func(pit_devs[0].data, 1, pit_refresh_timer_xt);
@@ -1919,7 +1919,7 @@ machine_xt_m19_init(const machine_t *model)
nmi_init();
video_reset(gfxcard);
video_reset(gfxcard[0]);
m19_vid_init(vid);
device_add_ex(&m19_vid_device, vid);

View File

@@ -897,7 +897,7 @@ machine_xt_t1000_init(const machine_t *model)
t1000_nvr_load();
nvr_set_ven_save(t1000_nvr_save);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&t1000_video_device);
return ret;
@@ -957,7 +957,7 @@ machine_xt_t1200_init(const machine_t *model)
t1200_nvr_load();
nvr_set_ven_save(t1200_nvr_save);
if (gfxcard == VID_INTERNAL)
if (gfxcard[0] == VID_INTERNAL)
device_add(&t1200_video_device);
if (hdc_current <= 1)

View File

@@ -96,7 +96,7 @@ machine_init_ex(int m)
/* Prepare some video-related things if we're using internal
or no video. */
video_pre_reset(gfxcard);
video_pre_reset(gfxcard[0]);
/* Reset any ISA memory cards. */
isamem_reset();
@@ -112,7 +112,7 @@ machine_init_ex(int m)
if (bios_only || !ret)
return ret;
if (gfxcard != VID_NONE) {
if (gfxcard[0] != VID_NONE) {
if (ibm8514_enabled) {
ibm8514_device_add();
}
@@ -122,7 +122,7 @@ machine_init_ex(int m)
/* Reset the graphics card (or do nothing if it was already done
by the machine's init function). */
video_reset(gfxcard);
video_reset(gfxcard[0]);
return ret;
}

View File

@@ -36,8 +36,8 @@ SettingsDisplay::SettingsDisplay(QWidget *parent)
{
ui->setupUi(this);
videoCard = gfxcard;
videoCard_2 = gfxcard_2;
videoCard[0] = gfxcard[0];
videoCard[1] = gfxcard[1];
onCurrentMachineChanged(machine);
}
@@ -49,8 +49,8 @@ SettingsDisplay::~SettingsDisplay()
void
SettingsDisplay::save()
{
gfxcard = ui->comboBoxVideo->currentData().toInt();
gfxcard_2 = ui->comboBoxVideoSecondary->currentData().toInt();
gfxcard[0] = ui->comboBoxVideo->currentData().toInt();
gfxcard[1] = ui->comboBoxVideoSecondary->currentData().toInt();
voodoo_enabled = ui->checkBoxVoodoo->isChecked() ? 1 : 0;
ibm8514_enabled = ui->checkBox8514->isChecked() ? 1 : 0;
xga_enabled = ui->checkBoxXga->isChecked() ? 1 : 0;
@@ -61,7 +61,7 @@ SettingsDisplay::onCurrentMachineChanged(int machineId)
{
// win_settings_video_proc, WM_INITDIALOG
this->machineId = machineId;
auto curVideoCard = videoCard;
auto curVideoCard = videoCard[0];
auto *model = ui->comboBoxVideo->model();
auto removeRows = model->rowCount();
@@ -103,7 +103,7 @@ SettingsDisplay::onCurrentMachineChanged(int machineId)
ui->pushButtonConfigureSecondary->setEnabled(true);
}
ui->comboBoxVideo->setCurrentIndex(selectedRow);
if (gfxcard_2 == 0)
if (gfxcard[1] == 0)
ui->pushButtonConfigureSecondary->setEnabled(false);
}
@@ -136,9 +136,9 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
if (index < 0) {
return;
}
auto curVideoCard_2 = videoCard_2;
videoCard = ui->comboBoxVideo->currentData().toInt();
ui->pushButtonConfigure->setEnabled(video_card_has_config(videoCard) > 0);
auto curVideoCard_2 = videoCard[1];
videoCard[0] = ui->comboBoxVideo->currentData().toInt();
ui->pushButtonConfigure->setEnabled(video_card_has_config(videoCard[0]) > 0);
bool machineHasPci = machine_has_bus(machineId, MACHINE_BUS_PCI) > 0;
ui->checkBoxVoodoo->setEnabled(machineHasPci);
@@ -167,7 +167,7 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
ui->comboBoxVideoSecondary->setCurrentIndex(0);
// TODO: Implement support for selecting non-MDA secondary cards properly when MDA cards are the primary ones.
if (video_card_get_flags(videoCard) == VIDEO_FLAG_TYPE_MDA) {
if (video_card_get_flags(videoCard[0]) == VIDEO_FLAG_TYPE_MDA) {
ui->comboBoxVideoSecondary->setCurrentIndex(0);
return;
}
@@ -178,7 +178,7 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
break;
}
if (video_card_available(c) && device_is_valid(video_dev, machineId) && !(video_card_get_flags(c) == video_card_get_flags(videoCard) && (video_card_get_flags(c) != VIDEO_FLAG_TYPE_SPECIAL))) {
if (video_card_available(c) && device_is_valid(video_dev, machineId) && !(video_card_get_flags(c) == video_card_get_flags(videoCard[0]) && (video_card_get_flags(c) != VIDEO_FLAG_TYPE_SPECIAL))) {
ui->comboBoxVideoSecondary->addItem(name, c);
if (c == curVideoCard_2)
ui->comboBoxVideoSecondary->setCurrentIndex(ui->comboBoxVideoSecondary->count() - 1);
@@ -187,7 +187,7 @@ SettingsDisplay::on_comboBoxVideo_currentIndexChanged(int index)
c++;
}
if (videoCard_2 == 0 || (machine_has_flags(machineId, MACHINE_VIDEO_ONLY) > 0)) {
if (videoCard[1] == 0 || (machine_has_flags(machineId, MACHINE_VIDEO_ONLY) > 0)) {
ui->comboBoxVideoSecondary->setCurrentIndex(0);
ui->pushButtonConfigureSecondary->setEnabled(false);
}
@@ -212,8 +212,8 @@ SettingsDisplay::on_comboBoxVideoSecondary_currentIndexChanged(int index)
ui->pushButtonConfigureSecondary->setEnabled(false);
return;
}
videoCard_2 = ui->comboBoxVideoSecondary->currentData().toInt();
ui->pushButtonConfigureSecondary->setEnabled(index != 0 && video_card_has_config(videoCard_2) > 0);
videoCard[1] = ui->comboBoxVideoSecondary->currentData().toInt();
ui->pushButtonConfigureSecondary->setEnabled(index != 0 && video_card_has_config(videoCard[1]) > 0);
}
void

View File

@@ -35,9 +35,8 @@ private slots:
private:
Ui::SettingsDisplay *ui;
int machineId = 0;
int videoCard = 0;
int videoCard_2 = 0;
int machineId = 0;
int videoCard[2] = { 0, 0 };
};
#endif // QT_SETTINGSDISPLAY_HPP

View File

@@ -1074,7 +1074,7 @@ monitor_thread(void *param)
#endif
}
extern int gfxcard_2;
extern int gfxcard[2];
int
main(int argc, char **argv)
{
@@ -1089,7 +1089,7 @@ main(int argc, char **argv)
return 6;
}
gfxcard_2 = 0;
gfxcard[1] = 0;
eventthread = SDL_ThreadID();
blitmtx = SDL_CreateMutex();
if (!blitmtx) {

View File

@@ -331,7 +331,7 @@ video_reset(int card)
if ((video_get_type() != VIDEO_FLAG_TYPE_NONE) && was_reset)
return;
vid_table_log("VIDEO: reset (gfxcard=%d, internal=%d)\n",
vid_table_log("VIDEO: reset (gfxcard[0]=%d, internal=%d)\n",
card, machine_has_flags(machine, MACHINE_VIDEO) ? 1 : 0);
monitor_index_global = 0;
@@ -349,11 +349,11 @@ video_reset(int card)
if (!(card == VID_NONE)
&& !machine_has_flags(machine, MACHINE_VIDEO_ONLY)
&& gfxcard_2 != 0
&& device_is_valid(video_card_getdevice(gfxcard_2), machine)) {
&& gfxcard[1] != 0
&& device_is_valid(video_card_getdevice(gfxcard[1]), machine)) {
video_monitor_init(1);
monitor_index_global = 1;
device_add(video_cards[gfxcard_2].device);
device_add(video_cards[gfxcard[1]].device);
monitor_index_global = 0;
}

View File

@@ -488,8 +488,8 @@ WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszArg, int nCmdShow)
return (1);
}
extern int gfxcard_2;
gfxcard_2 = 0;
extern int gfxcard[2];
gfxcard[1] = 0;
/* Create console window. */
if (force_debug) {

View File

@@ -93,7 +93,7 @@ static int temp_dynarec;
#endif
/* Video category */
static int temp_gfxcard, temp_gfxcard_2, temp_ibm8514, temp_voodoo, temp_xga;
static int temp_gfxcard[2], temp_ibm8514, temp_voodoo, temp_xga;
/* Input devices category */
static int temp_mouse, temp_joystick;
@@ -326,8 +326,8 @@ win_settings_init(void)
temp_sync = time_sync;
/* Video category */
temp_gfxcard = gfxcard;
temp_gfxcard_2 = gfxcard_2;
temp_gfxcard[0] = gfxcard[0];
temp_gfxcard[1] = gfxcard[1];
temp_voodoo = voodoo_enabled;
temp_ibm8514 = ibm8514_enabled;
temp_xga = xga_enabled;
@@ -453,8 +453,8 @@ win_settings_changed(void)
i = i || (temp_sync != time_sync);
/* Video category */
i = i || (gfxcard != temp_gfxcard);
i = i || (gfxcard_2 != temp_gfxcard_2);
i = i || (gfxcard[0] != temp_gfxcard[0]);
i = i || (gfxcard[1] != temp_gfxcard[1]);
i = i || (voodoo_enabled != temp_voodoo);
i = i || (ibm8514_enabled != temp_ibm8514);
i = i || (xga_enabled != temp_xga);
@@ -546,8 +546,8 @@ win_settings_save(void)
time_sync = temp_sync;
/* Video category */
gfxcard = temp_gfxcard;
gfxcard_2 = temp_gfxcard_2;
gfxcard[0] = temp_gfxcard[0];
gfxcard[1] = temp_gfxcard[1];
voodoo_enabled = temp_voodoo;
ibm8514_enabled = temp_ibm8514;
xga_enabled = temp_xga;
@@ -1090,7 +1090,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
else
settings_add_string(hdlg, IDC_COMBO_VIDEO, (LPARAM) device_name);
settings_list_to_device[0][d] = c;
if ((c == 0) || (c == temp_gfxcard))
if ((c == 0) || (c == temp_gfxcard[0]))
settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO, d);
d++;
}
@@ -1120,7 +1120,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
if (!device_name[0])
break;
if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard))) {
if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard[0]))) {
c++;
continue;
}
@@ -1133,7 +1133,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
else
settings_add_string(hdlg, IDC_COMBO_VIDEO_2, (LPARAM) device_name);
settings_list_to_device[1][d] = c;
if ((c == 0) || (c == temp_gfxcard_2))
if ((c == 0) || (c == temp_gfxcard[1]))
settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO_2, d);
d++;
}
@@ -1163,8 +1163,8 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_COMBO_VIDEO:
temp_gfxcard = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
settings_enable_window(hdlg, IDC_CONFIGURE_VID, video_card_has_config(temp_gfxcard));
temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
settings_enable_window(hdlg, IDC_CONFIGURE_VID, video_card_has_config(temp_gfxcard[0]));
// Secondary Video Card
c = d = 0;
@@ -1182,7 +1182,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
if (!device_name[0])
break;
if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard))) {
if ((c > 1) && (video_card_get_flags(c) == video_card_get_flags(temp_gfxcard[0]))) {
c++;
continue;
}
@@ -1195,7 +1195,7 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
else
settings_add_string(hdlg, IDC_COMBO_VIDEO_2, (LPARAM) device_name);
settings_list_to_device[1][d] = c;
if ((c == 0) || (c == temp_gfxcard_2))
if ((c == 0) || (c == temp_gfxcard[1]))
settings_set_cur_sel(hdlg, IDC_COMBO_VIDEO_2, d);
d++;
}
@@ -1211,8 +1211,8 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
break;
case IDC_COMBO_VIDEO_2:
temp_gfxcard_2 = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
settings_enable_window(hdlg, IDC_CONFIGURE_VID_2, video_card_has_config(temp_gfxcard_2));
temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
settings_enable_window(hdlg, IDC_CONFIGURE_VID_2, video_card_has_config(temp_gfxcard[1]));
break;
case IDC_CHECK_VOODOO:
@@ -1241,23 +1241,23 @@ win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
break;
case IDC_CONFIGURE_VID:
temp_gfxcard = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard));
temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard[0]));
break;
case IDC_CONFIGURE_VID_2:
temp_gfxcard_2 = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard_2));
temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) video_card_getdevice(temp_gfxcard[1]));
break;
}
return FALSE;
case WM_SAVESETTINGS:
temp_gfxcard = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
temp_gfxcard_2 = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
temp_voodoo = settings_get_check(hdlg, IDC_CHECK_VOODOO);
temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514);
temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA);
temp_gfxcard[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO)];
temp_gfxcard[1] = settings_list_to_device[1][settings_get_cur_sel(hdlg, IDC_COMBO_VIDEO_2)];
temp_voodoo = settings_get_check(hdlg, IDC_CHECK_VOODOO);
temp_ibm8514 = settings_get_check(hdlg, IDC_CHECK_IBM8514);
temp_xga = settings_get_check(hdlg, IDC_CHECK_XGA);
default:
return FALSE;