Support up to 4 sound cards

This commit is contained in:
Jasmine Iwanek
2023-02-01 02:31:07 -05:00
parent f74b72d332
commit 5f04b29e8f
56 changed files with 892 additions and 716 deletions

View File

@@ -168,9 +168,6 @@ int gfxcard = 0; /* (C) graphics/vide
int gfxcard_2 = 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 GAMEBLASTER = 0; /* (C) sound option */
int GUS = 0; /* (C) sound option */
int SSI2001 = 0; /* (C) sound option */
int voodoo_enabled = 0; /* (C) video option */
int ibm8514_enabled = 0; /* (C) video option */
int xga_enabled = 0; /* (C) video option */

View File

@@ -666,9 +666,36 @@ load_sound(void)
if ((p != NULL) && (!strcmp(p, "sbpci128") || !strcmp(p, "sb128pci")))
p = "es1371";
if (p != NULL)
sound_card_current = sound_card_get_from_internal_name(p);
sound_card_current[0] = sound_card_get_from_internal_name(p);
else
sound_card_current = 0;
sound_card_current[0] = 0;
p = ini_section_get_string(cat, "sndcard2", NULL);
/* FIXME: Hack to not break configs with the Sound Blaster 128 PCI set. */
if ((p != NULL) && (!strcmp(p, "sbpci128") || !strcmp(p, "sb128pci")))
p = "es1371";
if (p != NULL)
sound_card_current[1] = sound_card_get_from_internal_name(p);
else
sound_card_current[1] = 0;
p = ini_section_get_string(cat, "sndcard3", NULL);
/* FIXME: Hack to not break configs with the Sound Blaster 128 PCI set. */
if ((p != NULL) && (!strcmp(p, "sbpci128") || !strcmp(p, "sb128pci")))
p = "es1371";
if (p != NULL)
sound_card_current[2] = sound_card_get_from_internal_name(p);
else
sound_card_current[2] = 0;
p = ini_section_get_string(cat, "sndcard4", NULL);
/* FIXME: Hack to not break configs with the Sound Blaster 128 PCI set. */
if ((p != NULL) && (!strcmp(p, "sbpci128") || !strcmp(p, "sb128pci")))
p = "es1371";
if (p != NULL)
sound_card_current[3] = sound_card_get_from_internal_name(p);
else
sound_card_current[3] = 0;
p = ini_section_get_string(cat, "midi_device", NULL);
if (p != NULL)
@@ -684,10 +711,6 @@ load_sound(void)
mpu401_standalone_enable = !!ini_section_get_int(cat, "mpu401_standalone", 0);
SSI2001 = !!ini_section_get_int(cat, "ssi2001", 0);
GAMEBLASTER = !!ini_section_get_int(cat, "gameblaster", 0);
GUS = !!ini_section_get_int(cat, "gus", 0);
memset(temp, '\0', sizeof(temp));
p = ini_section_get_string(cat, "sound_type", "float");
if (strlen(p) > 511)
@@ -2311,10 +2334,25 @@ save_sound(void)
{
ini_section_t cat = ini_find_or_create_section(config, "Sound");
if (sound_card_current == 0)
if (sound_card_current[0] == 0)
ini_section_delete_var(cat, "sndcard");
else
ini_section_set_string(cat, "sndcard", sound_card_get_internal_name(sound_card_current));
ini_section_set_string(cat, "sndcard", sound_card_get_internal_name(sound_card_current[0]));
if (sound_card_current[1] == 0)
ini_section_delete_var(cat, "sndcard2");
else
ini_section_set_string(cat, "sndcard2", sound_card_get_internal_name(sound_card_current[1]));
if (sound_card_current[2] == 0)
ini_section_delete_var(cat, "sndcard3");
else
ini_section_set_string(cat, "sndcard3", sound_card_get_internal_name(sound_card_current[2]));
if (sound_card_current[3] == 0)
ini_section_delete_var(cat, "sndcard4");
else
ini_section_set_string(cat, "sndcard4", sound_card_get_internal_name(sound_card_current[3]));
if (!strcmp(midi_out_device_get_internal_name(midi_output_device_current), "none"))
ini_section_delete_var(cat, "midi_device");
@@ -2331,21 +2369,6 @@ save_sound(void)
else
ini_section_set_int(cat, "mpu401_standalone", mpu401_standalone_enable);
if (SSI2001 == 0)
ini_section_delete_var(cat, "ssi2001");
else
ini_section_set_int(cat, "ssi2001", SSI2001);
if (GAMEBLASTER == 0)
ini_section_delete_var(cat, "gameblaster");
else
ini_section_set_int(cat, "gameblaster", GAMEBLASTER);
if (GUS == 0)
ini_section_delete_var(cat, "gus");
else
ini_section_set_int(cat, "gus", GUS);
if (sound_is_float == 1)
ini_section_delete_var(cat, "sound_type");
else

View File

@@ -114,9 +114,6 @@ extern int bugger_enabled, /* (C) enable ISAbugger */
isamem_type[], /* (C) enable ISA mem cards */
isartc_type; /* (C) enable ISA RTC card */
extern int sound_is_float, /* (C) sound uses FP values */
GAMEBLASTER, /* (C) sound option */
GUS, GUSMAX, /* (C) sound option */
SSI2001, /* (C) sound option */
voodoo_enabled, /* (C) video option */
ibm8514_enabled, /* (C) video option */
xga_enabled; /* (C) video option */

View File

@@ -79,82 +79,85 @@
#define IDT_JOYSTICK 1718 /* Joystick: */
/* DLG_CFG_SOUND */
#define IDT_SOUND 1719 /* Sound card: */
#define IDT_MIDI_OUT 1720 /* MIDI Out Device: */
#define IDT_MIDI_IN 1721 /* MIDI In Device: */
#define IDT_SOUND1 1719 /* Sound card 1: */
#define IDT_SOUND2 1720 /* Sound card 2: */
#define IDT_SOUND3 1721 /* Sound card 3: */
#define IDT_SOUND4 1722 /* Sound card 4: */
#define IDT_MIDI_OUT 1723 /* MIDI Out Device: */
#define IDT_MIDI_IN 1724 /* MIDI In Device: */
/* DLG_CFG_NETWORK */
#define IDT_NET_TYPE 1722 /* Network type: */
#define IDT_PCAP 1723 /* PCap device: */
#define IDT_NET 1724 /* Network adapter: */
#define IDT_NET_TYPE 1725 /* Network type: */
#define IDT_PCAP 1726 /* PCap device: */
#define IDT_NET 1727 /* Network adapter: */
/* DLG_CFG_PORTS */
#define IDT_COM1 1725 /* COM1 Device: */
#define IDT_COM2 1726 /* COM1 Device: */
#define IDT_COM3 1727 /* COM1 Device: */
#define IDT_COM4 1728 /* COM1 Device: */
#define IDT_COM1 1728 /* COM1 Device: */
#define IDT_COM2 1729 /* COM1 Device: */
#define IDT_COM3 1730 /* COM1 Device: */
#define IDT_COM4 1731 /* COM1 Device: */
#define IDT_LPT1 1729 /* LPT1 Device: */
#define IDT_LPT2 1730 /* LPT2 Device: */
#define IDT_LPT3 1731 /* LPT3 Device: */
#define IDT_LPT4 1732 /* LPT4 Device: */
#define IDT_LPT1 1732 /* LPT1 Device: */
#define IDT_LPT2 1733 /* LPT2 Device: */
#define IDT_LPT3 1734 /* LPT3 Device: */
#define IDT_LPT4 1735 /* LPT4 Device: */
/* DLG_CFG_STORAGE */
#define IDT_HDC 1733 /* HD Controller: */
#define IDT_FDC 1734 /* Ext FD Controller: */
#define IDT_SCSI_1 1735 /* SCSI Board #1: */
#define IDT_SCSI_2 1736 /* SCSI Board #2: */
#define IDT_SCSI_3 1737 /* SCSI Board #3: */
#define IDT_SCSI_4 1738 /* SCSI Board #4: */
#define IDT_HDC 1736 /* HD Controller: */
#define IDT_FDC 1737 /* Ext FD Controller: */
#define IDT_SCSI_1 1738 /* SCSI Board #1: */
#define IDT_SCSI_2 1739 /* SCSI Board #2: */
#define IDT_SCSI_3 1740 /* SCSI Board #3: */
#define IDT_SCSI_4 1742 /* SCSI Board #4: */
/* DLG_CFG_HARD_DISKS */
#define IDT_HDD 1739 /* Hard disks: */
#define IDT_BUS 1740 /* Bus: */
#define IDT_CHANNEL 1741 /* Channel: */
#define IDT_ID 1742 /* ID: */
#define IDT_LUN 1743 /* LUN: */
#define IDT_SPEED 1744 /* Speed: */
#define IDT_HDD 1743 /* Hard disks: */
#define IDT_BUS 1744 /* Bus: */
#define IDT_CHANNEL 1745 /* Channel: */
#define IDT_ID 1746 /* ID: */
#define IDT_LUN 1747 /* LUN: */
#define IDT_SPEED 1748 /* Speed: */
/* DLG_CFG_HARD_DISKS_ADD */
#define IDT_SECTORS 1745 /* Sectors: */
#define IDT_HEADS 1746 /* Heads: */
#define IDT_CYLS 1747 /* Cylinders: */
#define IDT_SIZE_MB 1748 /* Size (MB): */
#define IDT_TYPE 1749 /* Type: */
#define IDT_FILE_NAME 1750 /* File name: */
#define IDT_IMG_FORMAT 1751 /* Image Format: */
#define IDT_BLOCK_SIZE 1752 /* Block Size: */
#define IDT_PROGRESS 1753 /* Progress: */
#define IDT_SECTORS 1749 /* Sectors: */
#define IDT_HEADS 1750 /* Heads: */
#define IDT_CYLS 1751 /* Cylinders: */
#define IDT_SIZE_MB 1752 /* Size (MB): */
#define IDT_TYPE 1753 /* Type: */
#define IDT_FILE_NAME 1754 /* File name: */
#define IDT_IMG_FORMAT 1755 /* Image Format: */
#define IDT_BLOCK_SIZE 1756 /* Block Size: */
#define IDT_PROGRESS 1757 /* Progress: */
/* DLG_CFG_FLOPPY_AND_CDROM_DRIVES */
#define IDT_FLOPPY_DRIVES 1754 /* Floppy drives: */
#define IDT_FDD_TYPE 1755 /* Type: */
#define IDT_CD_DRIVES 1756 /* CD-ROM drives: */
#define IDT_CD_BUS 1757 /* Bus: */
#define IDT_CD_ID 1758 /* ID: */
#define IDT_CD_LUN 1759 /* LUN: */
#define IDT_CD_CHANNEL 1760 /* Channel: */
#define IDT_CD_SPEED 1761 /* Speed: */
#define IDT_FLOPPY_DRIVES 1758 /* Floppy drives: */
#define IDT_FDD_TYPE 1759 /* Type: */
#define IDT_CD_DRIVES 1760 /* CD-ROM drives: */
#define IDT_CD_BUS 1761 /* Bus: */
#define IDT_CD_ID 1762 /* ID: */
#define IDT_CD_LUN 1763 /* LUN: */
#define IDT_CD_CHANNEL 1764 /* Channel: */
#define IDT_CD_SPEED 1765 /* Speed: */
/* DLG_CFG_OTHER_REMOVABLE_DEVICES */
#define IDT_MO_DRIVES 1762 /* MO drives: */
#define IDT_MO_BUS 1763 /* Bus: */
#define IDT_MO_ID 1764 /* ID: */
#define IDT_MO_CHANNEL 1765 /* Channel */
#define IDT_MO_TYPE 1766 /* Type: */
#define IDT_MO_DRIVES 1766 /* MO drives: */
#define IDT_MO_BUS 1767 /* Bus: */
#define IDT_MO_ID 1768 /* ID: */
#define IDT_MO_CHANNEL 1769 /* Channel */
#define IDT_MO_TYPE 1770 /* Type: */
#define IDT_ZIP_DRIVES 1767 /* ZIP drives: */
#define IDT_ZIP_BUS 1768 /* Bus: */
#define IDT_ZIP_ID 1769 /* ID: */
#define IDT_ZIP_LUN 1770 /* LUN: */
#define IDT_ZIP_CHANNEL 1771 /* Channel: */
#define IDT_ZIP_DRIVES 1771 /* ZIP drives: */
#define IDT_ZIP_BUS 1772 /* Bus: */
#define IDT_ZIP_ID 1773 /* ID: */
#define IDT_ZIP_LUN 1774 /* LUN: */
#define IDT_ZIP_CHANNEL 1775 /* Channel: */
/* DLG_CFG_PERIPHERALS */
#define IDT_ISARTC 1772 /* ISA RTC: */
#define IDT_ISAMEM_1 1773 /* ISAMEM Board #1: */
#define IDT_ISAMEM_2 1774 /* ISAMEM Board #2: */
#define IDT_ISAMEM_3 1775 /* ISAMEM Board #3: */
#define IDT_ISAMEM_4 1776 /* ISAMEM Board #4: */
#define IDT_ISARTC 1776 /* ISA RTC: */
#define IDT_ISAMEM_1 1777 /* ISAMEM Board #1: */
#define IDT_ISAMEM_2 1778 /* ISAMEM Board #2: */
#define IDT_ISAMEM_3 1779 /* ISAMEM Board #3: */
#define IDT_ISAMEM_4 1780 /* ISAMEM Board #4: */
/*
* To try to keep these organized, we now group the
@@ -199,10 +202,10 @@
#define IDC_CONFIGURE_MOUSE 1034
#define IDC_SOUND 1040 /* sound config */
#define IDC_COMBO_SOUND 1041
#define IDC_CHECK_SSI 1042
#define IDC_CHECK_CMS 1043
#define IDC_CHECK_GUS 1044
#define IDC_COMBO_SOUND1 1041
#define IDC_COMBO_SOUND2 1042
#define IDC_COMBO_SOUND3 1043
#define IDC_COMBO_SOUND4 1044
#define IDC_COMBO_MIDI_OUT 1045
#define IDC_CHECK_MPU401 1046
#define IDC_CONFIGURE_MPU401 1047
@@ -329,19 +332,22 @@
#define IDC_CONFIG_BASE 1300
#define IDC_CONFIGURE_VID 1300
#define IDC_CONFIGURE_VID_2 1301
#define IDC_CONFIGURE_SND 1302
#define IDC_CONFIGURE_VOODOO 1303
#define IDC_CONFIGURE_MOD 1304
#define IDC_CONFIGURE_NET_TYPE 1305
#define IDC_CONFIGURE_BUSLOGIC 1306
#define IDC_CONFIGURE_PCAP 1307
#define IDC_CONFIGURE_NET 1308
#define IDC_CONFIGURE_MIDI_OUT 1309
#define IDC_CONFIGURE_MIDI_IN 1310
#define IDC_JOY1 1311
#define IDC_JOY2 1312
#define IDC_JOY3 1313
#define IDC_JOY4 1314
#define IDC_CONFIGURE_SND1 1302
#define IDC_CONFIGURE_SND2 1303
#define IDC_CONFIGURE_SND3 1304
#define IDC_CONFIGURE_SND4 1305
#define IDC_CONFIGURE_VOODOO 1306
#define IDC_CONFIGURE_MOD 1307
#define IDC_CONFIGURE_NET_TYPE 1308
#define IDC_CONFIGURE_BUSLOGIC 1309
#define IDC_CONFIGURE_PCAP 1310
#define IDC_CONFIGURE_NET 1311
#define IDC_CONFIGURE_MIDI_OUT 1312
#define IDC_CONFIGURE_MIDI_IN 1313
#define IDC_JOY1 1314
#define IDC_JOY2 1315
#define IDC_JOY3 1316
#define IDC_JOY4 1317
#define IDC_HDTYPE 1380
#define IDC_RENDER 1381
#define IDC_STATUS 1382

View File

@@ -20,6 +20,8 @@
#ifndef EMU_SOUND_H
#define EMU_SOUND_H
#define SOUND_CARD_MAX 4 /* currently we support up to 4 sound cards and a standalome MPU401 */
extern int sound_gain;
#define SOUNDBUFLEN (48000 / 50)
@@ -38,7 +40,7 @@ extern int gated,
speakon;
extern int sound_pos_global;
extern int sound_card_current;
extern int sound_card_current[SOUND_CARD_MAX];
extern void sound_add_handler(void (*get_buffer)(int32_t *buffer,
int len, void *p),

View File

@@ -461,7 +461,7 @@ machine_at_s1846_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
if (sound_card_current == SOUND_INTERNAL) {
if (sound_card_current[0] == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
}
@@ -606,7 +606,7 @@ machine_at_gt694va_init(const machine_t *model)
hwm_values.fans[2] = 0; /* unused */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL) {
if (sound_card_current[0] == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* assumed */
}
@@ -670,7 +670,7 @@ machine_at_ms6168_common_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x3, 256);
if (sound_card_current == SOUND_INTERNAL) {
if (sound_card_current[0] == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device);
}

View File

@@ -104,7 +104,7 @@ machine_at_s1857_init(const machine_t *model)
device_add(&intel_flash_bxt_device);
spd_register(SPD_TYPE_SDRAM, 0x7, 256);
if (sound_card_current == SOUND_INTERNAL) {
if (sound_card_current[0] == SOUND_INTERNAL) {
device_add(&es1371_onboard_device);
device_add(&cs4297_device); /* found on other Tyan boards around the same time */
}
@@ -377,7 +377,7 @@ machine_at_cuv4xls_init(const machine_t *model)
spd_register(SPD_TYPE_SDRAM, 0xF, 1024);
device_add(&as99127f_device); /* fans: Chassis, CPU, Power; temperatures: MB, JTPWR, CPU */
if (sound_card_current == SOUND_INTERNAL)
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(&cmi8738_onboard_device);
return ret;
@@ -415,7 +415,7 @@ machine_at_6via90ap_init(const machine_t *model)
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL)
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(&alc100_device); /* ALC100P identified on similar Acorp boards (694TA, 6VIA90A1) */
return ret;

View File

@@ -268,7 +268,7 @@ machine_at_ficva503a_init(const machine_t *model)
hwm_values.temperatures[1] += 2; /* System offset */
hwm_values.temperatures[2] = 0; /* unused */
if (sound_card_current == SOUND_INTERNAL)
if (sound_card_current[0] == SOUND_INTERNAL)
device_add(&wm9701a_device); /* on daughtercard */
return ret;

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Zvuková karta:"
msgid "Sound card 1:"
msgstr "Zvuková karta 1:"
msgid "Sound card 2:"
msgstr "Zvuková karta 2:"
msgid "Sound card 3:"
msgstr "Zvuková karta 3:"
msgid "Sound card 4:"
msgstr "Zvuková karta 4:"
msgid "MIDI Out Device:"
msgstr "MIDI výstup:"
@@ -418,15 +427,6 @@ msgstr "MIDI vstup:"
msgid "Standalone MPU-401"
msgstr "Samostatný MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Použít zvuk FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Soundkarte:"
msgid "Sound card 1:"
msgstr "Soundkarte 1:"
msgid "Sound card 2:"
msgstr "Soundkarte 2:"
msgid "Sound card 3:"
msgstr "Soundkarte 3:"
msgid "Sound card 4:"
msgstr "Soundkarte 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Out-Gerät:"
@@ -418,15 +427,6 @@ msgstr "MIDI In-Gerät:"
msgid "Standalone MPU-401"
msgstr "Standalone-MPU-401-Gerät"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32-Wiedergabe benutzen"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Sound card:"
msgid "Sound card 1:"
msgstr "Sound card 1:"
msgid "Sound card 2:"
msgstr "Sound card 2:"
msgid "Sound card 3:"
msgstr "Sound card 3:"
msgid "Sound card 4:"
msgstr "Sound card 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Out Device:"
@@ -418,15 +427,6 @@ msgstr "MIDI In Device:"
msgid "Standalone MPU-401"
msgstr "Standalone MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Use FLOAT32 sound"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Sound card:"
msgid "Sound card 1:"
msgstr "Sound card 1:"
msgid "Sound card 2:"
msgstr "Sound card 2:"
msgid "Sound card 3:"
msgstr "Sound card 3:"
msgid "Sound card 4:"
msgstr "Sound card 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Out Device:"
@@ -418,15 +427,6 @@ msgstr "MIDI In Device:"
msgid "Standalone MPU-401"
msgstr "Standalone MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Use FLOAT32 sound"

View File

@@ -406,8 +406,17 @@ msgstr "Mando 3..."
msgid "Joystick 4..."
msgstr "Mando 4..."
msgid "Sound card:"
msgstr "Tarjeta de sonido:"
msgid "Sound card 1:"
msgstr "Tarjeta de sonido 1:"
msgid "Sound card 2:"
msgstr "Tarjeta de sonido 2:"
msgid "Sound card 3:"
msgstr "Tarjeta de sonido 3:"
msgid "Sound card 4:"
msgstr "Tarjeta de sonido 4:"
msgid "MIDI Out Device:"
msgstr "Dispositivo MIDI de salida:"
@@ -418,15 +427,6 @@ msgstr "Dispositivo MIDI de entrada:"
msgid "Standalone MPU-401"
msgstr "MPU-401 independiente"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Usar sonido FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Peliohjain 3..."
msgid "Joystick 4..."
msgstr "Peliohjain 4..."
msgid "Sound card:"
msgstr "Äänikortti:"
msgid "Sound card 1:"
msgstr "Äänikortti 1:"
msgid "Sound card 2:"
msgstr "Äänikortti 2:"
msgid "Sound card 3:"
msgstr "Äänikortti 3:"
msgid "Sound card 4:"
msgstr "Äänikortti 4:"
msgid "MIDI Out Device:"
msgstr "MIDI-ulostulo:"
@@ -418,15 +427,6 @@ msgstr "MIDI-sisääntulo:"
msgid "Standalone MPU-401"
msgstr "Erillinen MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Käytä FLOAT32-ääntä"

View File

@@ -406,8 +406,17 @@ msgstr "Manette 3..."
msgid "Joystick 4..."
msgstr "Manette 4..."
msgid "Sound card:"
msgstr "Carte son:"
msgid "Sound card 1:"
msgstr "Carte son 1:"
msgid "Sound card 2:"
msgstr "Carte son 2:"
msgid "Sound card 3:"
msgstr "Carte son 3:"
msgid "Sound card 4:"
msgstr "Carte son 4:"
msgid "MIDI Out Device:"
msgstr "Sortie MIDI:"
@@ -418,15 +427,6 @@ msgstr "Entrée MIDI:"
msgid "Standalone MPU-401"
msgstr "MPU-401 autonome"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Utiliser le son FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Palica za igru 3..."
msgid "Joystick 4..."
msgstr "Palica za igru 4..."
msgid "Sound card:"
msgstr "Zvučna kartica:"
msgid "Sound card 1:"
msgstr "Zvučna kartica 1:"
msgid "Sound card 2:"
msgstr "Zvučna kartica 2:"
msgid "Sound card 3:"
msgstr "Zvučna kartica 3:"
msgid "Sound card 4:"
msgstr "Zvučna kartica 4:"
msgid "MIDI Out Device:"
msgstr "Izlazni uređaj MIDI:"
@@ -418,15 +427,6 @@ msgstr "Ulazni uređaj MIDI:"
msgid "Standalone MPU-401"
msgstr "Samostalni MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Koristi FLOAT32 za zvuk"

View File

@@ -406,8 +406,17 @@ msgstr "Játékvez. 3..."
msgid "Joystick 4..."
msgstr "Játékvez. 4..."
msgid "Sound card:"
msgstr "Hangkártya:"
msgid "Sound card 1:"
msgstr "Hangkártya 1:"
msgid "Sound card 2:"
msgstr "Hangkártya 2:"
msgid "Sound card 3:"
msgstr "Hangkártya 3:"
msgid "Sound card 4:"
msgstr "Hangkártya 4:"
msgid "MIDI Out Device:"
msgstr "MIDI-kimenet:"
@@ -418,15 +427,6 @@ msgstr "MIDI-bemenet:"
msgid "Standalone MPU-401"
msgstr "Különálló MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32 használata"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Scheda audio:"
msgid "Sound card 1:"
msgstr "Scheda audio 1:"
msgid "Sound card 2:"
msgstr "Scheda audio 2:"
msgid "Sound card 3:"
msgstr "Scheda audio 3:"
msgid "Sound card 4:"
msgstr "Scheda audio 4:"
msgid "MIDI Out Device:"
msgstr "Uscita MIDI:"
@@ -418,15 +427,6 @@ msgstr "Entrata MIDI:"
msgid "Standalone MPU-401"
msgstr "MPU-401 autonomo"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Usa suono FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "ジョイスティック3..."
msgid "Joystick 4..."
msgstr "ジョイスティック4..."
msgid "Sound card:"
msgstr "サウンドカード:"
msgid "Sound card 1:"
msgstr "サウンドカード 1:"
msgid "Sound card 2:"
msgstr "サウンドカード 2:"
msgid "Sound card 3:"
msgstr "サウンドカード 3:"
msgid "Sound card 4:"
msgstr "サウンドカード 4:"
msgid "MIDI Out Device:"
msgstr "MIDI出力デバイス:"
@@ -418,15 +427,6 @@ msgstr "MIDI入力デバイス:"
msgid "Standalone MPU-401"
msgstr "独立型MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32サウンドを使用する"

View File

@@ -406,8 +406,17 @@ msgstr "조이스틱 3..."
msgid "Joystick 4..."
msgstr "조이스틱 4..."
msgid "Sound card:"
msgstr "사운드 카드:"
msgid "Sound card 1:"
msgstr "사운드 카드 1:"
msgid "Sound card 2:"
msgstr "사운드 카드 2:"
msgid "Sound card 3:"
msgstr "사운드 카드 3:"
msgid "Sound card 4:"
msgstr "사운드 카드 4:"
msgid "MIDI Out Device:"
msgstr "MIDI 출력 장치:"
@@ -418,15 +427,6 @@ msgstr "MIDI 입력 장치:"
msgid "Standalone MPU-401"
msgstr "MPU-401 단독 사용"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32 사운드 사용"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Karta dźwiękowa:"
msgid "Sound card 1:"
msgstr "Karta dźwiękowa 1:"
msgid "Sound card 2:"
msgstr "Karta dźwiękowa 2:"
msgid "Sound card 3:"
msgstr "Karta dźwiękowa 3:"
msgid "Sound card 4:"
msgstr "Karta dźwiękowa 4:"
msgid "MIDI Out Device:"
msgstr "Urządzenie wyjściowe MIDI:"
@@ -418,15 +427,6 @@ msgstr "Urządzenie wejściowe MIDI:"
msgid "Standalone MPU-401"
msgstr "Samodzielne urządzenie MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Użyj dźwięku FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Placa de som:"
msgid "Sound card 1:"
msgstr "Placa de som 1:"
msgid "Sound card 2:"
msgstr "Placa de som 2:"
msgid "Sound card 3:"
msgstr "Placa de som 3:"
msgid "Sound card 4:"
msgstr "Placa de som 4:"
msgid "MIDI Out Device:"
msgstr "Disp. de saída MIDI:"
@@ -418,15 +427,6 @@ msgstr "Disp. de entrada MIDI:"
msgid "Standalone MPU-401"
msgstr "MPU-401 autônomo"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Usar som FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Joystick 3..."
msgid "Joystick 4..."
msgstr "Joystick 4..."
msgid "Sound card:"
msgstr "Placa de som:"
msgid "Sound card 1:"
msgstr "Placa de som 1:"
msgid "Sound card 2:"
msgstr "Placa de som 2:"
msgid "Sound card 3:"
msgstr "Placa de som 3:"
msgid "Sound card 4:"
msgstr "Placa de som 4:"
msgid "MIDI Out Device:"
msgstr "Disp. saída MIDI:"
@@ -418,15 +427,6 @@ msgstr "Disp. entrada MIDI:"
msgid "Standalone MPU-401"
msgstr "MPU-401 autónomo"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Utilizar som FLOAT32"

View File

@@ -406,8 +406,17 @@ msgstr "Джойстик 3..."
msgid "Joystick 4..."
msgstr "Джойстик 4..."
msgid "Sound card:"
msgstr "Звуковая карта:"
msgid "Sound card 1:"
msgstr "Звуковая карта 1:"
msgid "Sound card 2:"
msgstr "Звуковая карта 2:"
msgid "Sound card 3:"
msgstr "Звуковая карта 3:"
msgid "Sound card 4:"
msgstr "Звуковая карта 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Out устр-во:"
@@ -418,15 +427,6 @@ msgstr "MIDI In устр-во:"
msgid "Standalone MPU-401"
msgstr "Отдельный MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32 звук"

View File

@@ -406,8 +406,17 @@ msgstr "Igralna palica 3..."
msgid "Joystick 4..."
msgstr "Igralna palica 4..."
msgid "Sound card:"
msgstr "Zvočna kartica:"
msgid "Sound card 1:"
msgstr "Zvočna kartica 1:"
msgid "Sound card 2:"
msgstr "Zvočna kartica 2:"
msgid "Sound card 3:"
msgstr "Zvočna kartica 3:"
msgid "Sound card 4:"
msgstr "Zvočna kartica 4:"
msgid "MIDI Out Device:"
msgstr "Izhodna naprava MIDI:"
@@ -418,15 +427,6 @@ msgstr "Vhodna naprava MIDI:"
msgid "Standalone MPU-401"
msgstr "Samostojen MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "Uporabi FLOAT32 za zvok"

View File

@@ -406,8 +406,17 @@ msgstr "Oyun kolu 3..."
msgid "Joystick 4..."
msgstr "Oyun kolu 4..."
msgid "Sound card:"
msgstr "Ses kartı:"
msgid "Sound card 1:"
msgstr "Ses kartı 1:"
msgid "Sound card 2:"
msgstr "Ses kartı 2:"
msgid "Sound card 3:"
msgstr "Ses kartı 3:"
msgid "Sound card 4:"
msgstr "Ses kartı 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Çıkış Cihazı:"
@@ -418,15 +427,6 @@ msgstr "MIDI Giriş Cihazı:"
msgid "Standalone MPU-401"
msgstr "Bağımsız MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32 ses kullan"

View File

@@ -406,8 +406,17 @@ msgstr "Джойстик 3..."
msgid "Joystick 4..."
msgstr "Джойстик 4..."
msgid "Sound card:"
msgstr "Звукова карта:"
msgid "Sound card 1:"
msgstr "Звукова карта 1:"
msgid "Sound card 2:"
msgstr "Звукова карта 2:"
msgid "Sound card 3:"
msgstr "Звукова карта 3:"
msgid "Sound card 4:"
msgstr "Звукова карта 4:"
msgid "MIDI Out Device:"
msgstr "MIDI Out при-ій:"
@@ -418,15 +427,6 @@ msgstr "MIDI In при-ій:"
msgid "Standalone MPU-401"
msgstr "Окремий MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "FLOAT32 звук"

View File

@@ -406,8 +406,17 @@ msgstr "操纵杆 3..."
msgid "Joystick 4..."
msgstr "操纵杆 4..."
msgid "Sound card:"
msgstr "声卡:"
msgid "Sound card 1:"
msgstr "声卡 1:"
msgid "Sound card 2:"
msgstr "声卡 2:"
msgid "Sound card 3:"
msgstr "声卡 3:"
msgid "Sound card 4:"
msgstr "声卡 4:"
msgid "MIDI Out Device:"
msgstr "MIDI 输出设备:"
@@ -418,15 +427,6 @@ msgstr "MIDI 输入设备:"
msgid "Standalone MPU-401"
msgstr "独立 MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "使用单精度浮点 (FLOAT32)"

View File

@@ -406,8 +406,17 @@ msgstr "搖桿 3..."
msgid "Joystick 4..."
msgstr "搖桿 4..."
msgid "Sound card:"
msgstr "音訊卡:"
msgid "Sound card 1:"
msgstr "音訊卡 1:"
msgid "Sound card 2:"
msgstr "音訊卡 2:"
msgid "Sound card 3:"
msgstr "音訊卡 3:"
msgid "Sound card 4:"
msgstr "音訊卡 4:"
msgid "MIDI Out Device:"
msgstr "MIDI 輸出裝置:"
@@ -418,15 +427,6 @@ msgstr "MIDI 輸入裝置:"
msgid "Standalone MPU-401"
msgstr "獨立 MPU-401"
msgid "Innovation SSI-2001"
msgstr "Innovation SSI-2001"
msgid "CMS / Game Blaster"
msgstr "CMS / Game Blaster"
msgid "Gravis Ultrasound"
msgstr "Gravis Ultrasound"
msgid "Use FLOAT32 sound"
msgstr "使用單精度浮點 (FLOAT32)"

View File

@@ -11,8 +11,10 @@
*
*
* Authors: Joakim L. Gilje <jgilje@jgilje.net>
* Jasmine Iwanek <jriwanek@gmail.com>
*
* Copyright 2021 Joakim L. Gilje
* Copyright 2022-2023 Jasmine Iwanek
*/
#include "qt_settingssound.hpp"
#include "ui_qt_settingssound.h"
@@ -47,17 +49,17 @@ SettingsSound::~SettingsSound()
void
SettingsSound::save()
{
sound_card_current = ui->comboBoxSoundCard->currentData().toInt();
for (uint8_t i = 0; i < SOUND_CARD_MAX; ++i) {
auto *cbox = findChild<QComboBox *>(QString("comboBoxSoundCard%1").arg(i + 1));
sound_card_current[i] = cbox->currentData().toInt();
}
midi_output_device_current = ui->comboBoxMidiOut->currentData().toInt();
midi_input_device_current = ui->comboBoxMidiIn->currentData().toInt();
mpu401_standalone_enable = ui->checkBoxMPU401->isChecked() ? 1 : 0;
SSI2001 = ui->checkBoxSSI2001->isChecked() ? 1 : 0;
;
GAMEBLASTER = ui->checkBoxCMS->isChecked() ? 1 : 0;
GUS = ui->checkBoxGUS->isChecked() ? 1 : 0;
;
sound_is_float = ui->checkBoxFloat32->isChecked() ? 1 : 0;
;
if (ui->radioButtonYMFM->isChecked())
fm_driver = FM_DRV_YMFM;
else
@@ -69,41 +71,45 @@ SettingsSound::onCurrentMachineChanged(int machineId)
{
this->machineId = machineId;
auto *model = ui->comboBoxSoundCard->model();
auto removeRows = model->rowCount();
int c = 0;
int selectedRow = 0;
for (uint8_t i = 0; i < SOUND_CARD_MAX; ++i) {
auto *cbox = findChild<QComboBox *>(QString("comboBoxSoundCard%1").arg(i + 1));
auto *model = cbox->model();
auto removeRows = model->rowCount();
c = 0;
selectedRow = 0;
while (true) {
/* Skip "internal" if machine doesn't have it. */
if ((c == 1) && (machine_has_flags(machineId, MACHINE_SOUND) == 0)) {
/* Skip "internal" if machine doesn't have it for the first card, always skip for others. */
if (((c == 1) && (machine_has_flags(machineId, MACHINE_SOUND) == 0)) || (i != 0)) {
c++;
continue;
}
auto *sound_dev = sound_card_getdevice(c);
QString name = DeviceConfig::DeviceName(sound_dev, sound_card_get_internal_name(c), 1);
auto name = DeviceConfig::DeviceName(sound_card_getdevice(c), sound_card_get_internal_name(c), 1);
if (name.isEmpty()) {
break;
}
if (sound_card_available(c)) {
if (device_is_valid(sound_dev, machineId)) {
if (sound_card_available(c) && device_is_valid(sound_card_getdevice(c), machineId)) {
int row = Models::AddEntry(model, name, c);
if (c == sound_card_current) {
if (c == sound_card_current[i]) {
selectedRow = row - removeRows;
}
}
}
c++;
}
model->removeRows(0, removeRows);
ui->comboBoxSoundCard->setEnabled(model->rowCount() > 0);
ui->comboBoxSoundCard->setCurrentIndex(-1);
ui->comboBoxSoundCard->setCurrentIndex(selectedRow);
model = ui->comboBoxMidiOut->model();
removeRows = model->rowCount();
model->removeRows(0, removeRows);
cbox->setEnabled(model->rowCount() > 0);
cbox->setCurrentIndex(-1);
cbox->setCurrentIndex(selectedRow);
}
auto model = ui->comboBoxMidiOut->model();
auto removeRows = model->rowCount();
c = 0;
selectedRow = 0;
while (true) {
@@ -150,19 +156,8 @@ SettingsSound::onCurrentMachineChanged(int machineId)
ui->comboBoxMidiIn->setCurrentIndex(selectedRow);
ui->checkBoxMPU401->setChecked(mpu401_standalone_enable > 0);
ui->checkBoxSSI2001->setChecked(SSI2001 > 0);
ui->checkBoxCMS->setChecked(GAMEBLASTER > 0);
ui->checkBoxGUS->setChecked(GUS > 0);
ui->checkBoxFloat32->setChecked(sound_is_float > 0);
bool hasIsa = machine_has_bus(machineId, MACHINE_BUS_ISA) > 0;
bool hasIsa16 = machine_has_bus(machineId, MACHINE_BUS_ISA16) > 0;
ui->checkBoxCMS->setEnabled(hasIsa);
ui->pushButtonConfigureCMS->setEnabled((GAMEBLASTER > 0) && hasIsa);
ui->checkBoxGUS->setEnabled(hasIsa16);
ui->pushButtonConfigureGUS->setEnabled((GUS > 0) && hasIsa16);
ui->checkBoxSSI2001->setEnabled(hasIsa);
ui->pushButtonConfigureSSI2001->setEnabled((SSI2001 > 0) && hasIsa);
switch (fm_driver) {
case FM_DRV_YMFM:
ui->radioButtonYMFM->setChecked(true);
@@ -192,18 +187,63 @@ allowMpu401(Ui::SettingsSound *ui)
}
void
SettingsSound::on_comboBoxSoundCard_currentIndexChanged(int index)
SettingsSound::on_comboBoxSoundCard1_currentIndexChanged(int index)
{
if (index < 0) {
return;
}
ui->pushButtonConfigureSoundCard->setEnabled(sound_card_has_config(ui->comboBoxSoundCard->currentData().toInt()));
ui->pushButtonConfigureSoundCard1->setEnabled(sound_card_has_config(ui->comboBoxSoundCard1->currentData().toInt()));
}
void
SettingsSound::on_pushButtonConfigureSoundCard_clicked()
SettingsSound::on_pushButtonConfigureSoundCard1_clicked()
{
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard->currentData().toInt()), 0, qobject_cast<Settings *>(Settings::settings));
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard1->currentData().toInt()), 0, qobject_cast<Settings *>(Settings::settings));
}
void
SettingsSound::on_comboBoxSoundCard2_currentIndexChanged(int index)
{
if (index < 0) {
return;
}
ui->pushButtonConfigureSoundCard2->setEnabled(sound_card_has_config(ui->comboBoxSoundCard2->currentData().toInt()));
}
void
SettingsSound::on_pushButtonConfigureSoundCard2_clicked()
{
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard2->currentData().toInt()), 0, qobject_cast<Settings *>(Settings::settings));
}
void
SettingsSound::on_comboBoxSoundCard3_currentIndexChanged(int index)
{
if (index < 0) {
return;
}
ui->pushButtonConfigureSoundCard3->setEnabled(sound_card_has_config(ui->comboBoxSoundCard3->currentData().toInt()));
}
void
SettingsSound::on_pushButtonConfigureSoundCard3_clicked()
{
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard3->currentData().toInt()), 0, qobject_cast<Settings *>(Settings::settings));
}
void
SettingsSound::on_comboBoxSoundCard4_currentIndexChanged(int index)
{
if (index < 0) {
return;
}
ui->pushButtonConfigureSoundCard1->setEnabled(sound_card_has_config(ui->comboBoxSoundCard4->currentData().toInt()));
}
void
SettingsSound::on_pushButtonConfigureSoundCard4_clicked()
{
DeviceConfig::ConfigureDevice(sound_card_getdevice(ui->comboBoxSoundCard4->currentData().toInt()), 0, qobject_cast<Settings *>(Settings::settings));
}
void
@@ -246,24 +286,6 @@ SettingsSound::on_checkBoxMPU401_stateChanged(int state)
ui->pushButtonConfigureMPU401->setEnabled(state == Qt::Checked);
}
void
SettingsSound::on_checkBoxSSI2001_stateChanged(int state)
{
ui->pushButtonConfigureSSI2001->setEnabled(state == Qt::Checked);
}
void
SettingsSound::on_checkBoxCMS_stateChanged(int state)
{
ui->pushButtonConfigureCMS->setEnabled(state == Qt::Checked);
}
void
SettingsSound::on_checkBoxGUS_stateChanged(int state)
{
ui->pushButtonConfigureGUS->setEnabled(state == Qt::Checked);
}
void
SettingsSound::on_pushButtonConfigureMPU401_clicked()
{
@@ -273,21 +295,3 @@ SettingsSound::on_pushButtonConfigureMPU401_clicked()
DeviceConfig::ConfigureDevice(&mpu401_device, 0, qobject_cast<Settings *>(Settings::settings));
}
}
void
SettingsSound::on_pushButtonConfigureSSI2001_clicked()
{
DeviceConfig::ConfigureDevice(&ssi2001_device, 0, qobject_cast<Settings *>(Settings::settings));
}
void
SettingsSound::on_pushButtonConfigureCMS_clicked()
{
DeviceConfig::ConfigureDevice(&cms_device, 0, qobject_cast<Settings *>(Settings::settings));
}
void
SettingsSound::on_pushButtonConfigureGUS_clicked()
{
DeviceConfig::ConfigureDevice(&gus_device, 0, qobject_cast<Settings *>(Settings::settings));
}

View File

@@ -20,20 +20,20 @@ public slots:
void onCurrentMachineChanged(int machineId);
private slots:
void on_pushButtonConfigureGUS_clicked();
void on_pushButtonConfigureCMS_clicked();
void on_pushButtonConfigureSSI2001_clicked();
void on_pushButtonConfigureMPU401_clicked();
void on_checkBoxGUS_stateChanged(int arg1);
void on_checkBoxCMS_stateChanged(int arg1);
void on_checkBoxSSI2001_stateChanged(int arg1);
void on_checkBoxMPU401_stateChanged(int arg1);
void on_pushButtonConfigureMidiIn_clicked();
void on_pushButtonConfigureMidiOut_clicked();
void on_comboBoxMidiIn_currentIndexChanged(int index);
void on_comboBoxMidiOut_currentIndexChanged(int index);
void on_pushButtonConfigureSoundCard_clicked();
void on_comboBoxSoundCard_currentIndexChanged(int index);
void on_pushButtonConfigureSoundCard1_clicked();
void on_comboBoxSoundCard1_currentIndexChanged(int index);
void on_pushButtonConfigureSoundCard2_clicked();
void on_comboBoxSoundCard2_currentIndexChanged(int index);
void on_pushButtonConfigureSoundCard3_clicked();
void on_comboBoxSoundCard3_currentIndexChanged(int index);
void on_pushButtonConfigureSoundCard4_clicked();
void on_comboBoxSoundCard4_currentIndexChanged(int index);
private:
Ui::SettingsSound *ui;

View File

@@ -26,42 +26,73 @@
<property name="bottomMargin">
<number>0</number>
</property>
<item row="2" column="0">
<item row="5" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>MIDI In Device:</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="checkBoxSSI2001">
<property name="text">
<string>Innovation SSI-2001</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QCheckBox" name="checkBoxGUS">
<property name="text">
<string>Gravis Ultrasound</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Sound card:</string>
<string>Sound card #1:</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QPushButton" name="pushButtonConfigureSoundCard">
<widget class="QPushButton" name="pushButtonConfigureSoundCard1">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="2" column="1">
<item row="1" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>Sound card #2:</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QPushButton" name="pushButtonConfigureSoundCard2">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Sound card #3:</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QPushButton" name="pushButtonConfigureSoundCard3">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Sound card #4:</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QPushButton" name="pushButtonConfigureSoundCard4">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QComboBox" name="comboBoxMidiIn">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -71,49 +102,35 @@
</property>
</widget>
</item>
<item row="1" column="0">
<item row="4" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>MIDI Out Device:</string>
</property>
</widget>
</item>
<item row="3" column="0">
<item row="6" column="0">
<widget class="QCheckBox" name="checkBoxMPU401">
<property name="text">
<string>Standalone MPU-401</string>
</property>
</widget>
</item>
<item row="3" column="3">
<item row="6" column="3">
<widget class="QPushButton" name="pushButtonConfigureMPU401">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="2" column="3">
<item row="5" column="3">
<widget class="QPushButton" name="pushButtonConfigureMidiIn">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="4" column="3">
<widget class="QPushButton" name="pushButtonConfigureSSI2001">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QCheckBox" name="checkBoxCMS">
<property name="text">
<string>CMS / Game Blaster</string>
</property>
</widget>
</item>
<item row="1" column="1">
<item row="4" column="1">
<widget class="QComboBox" name="comboBoxMidiOut">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
@@ -123,35 +140,21 @@
</property>
</widget>
</item>
<item row="1" column="3">
<item row="4" column="3">
<widget class="QPushButton" name="pushButtonConfigureMidiOut">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="7" column="0">
<item row="10" column="0">
<widget class="QCheckBox" name="checkBoxFloat32">
<property name="text">
<string>Use FLOAT32 sound</string>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QPushButton" name="pushButtonConfigureCMS">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="6" column="3">
<widget class="QPushButton" name="pushButtonConfigureGUS">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
<item row="8" column="0">
<item row="11" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
@@ -180,7 +183,7 @@
</layout>
</widget>
</item>
<item row="9" column="0">
<item row="12" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -194,7 +197,37 @@
</spacer>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBoxSoundCard">
<widget class="QComboBox" name="comboBoxSoundCard1">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBoxSoundCard2">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="comboBoxSoundCard3">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="comboBoxSoundCard4">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>

View File

@@ -51,7 +51,7 @@ typedef struct {
void *priv;
} sound_handler_t;
int sound_card_current = 0;
int sound_card_current[SOUND_CARD_MAX] = { 0, 0, 0, 0};
int sound_pos_global = 0;
int sound_gain = 0;
@@ -79,30 +79,31 @@ static void (*filter_cd_audio)(int channel, double *buffer, void *p) = NULL;
static void *filter_cd_audio_p = NULL;
static const device_t sound_none_device = {
"None",
"none",
0,
0,
NULL,
NULL,
NULL,
{ NULL },
NULL,
NULL,
NULL
.name = "None",
.internal_name = "none",
.flags = 0,
.local = 0,
.init = NULL,
.close = NULL,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
static const device_t sound_internal_device = {
"Internal",
"internal",
0,
0,
NULL,
NULL,
NULL,
{ NULL },
NULL,
NULL,
NULL
.name = "Internal",
.internal_name = "internal",
.flags = 0,
.local = 0,
.init = NULL,
.close = NULL,
.reset = NULL,
{ .available = NULL },
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
static const SOUND_CARD sound_cards[] = {
@@ -115,8 +116,10 @@ static const SOUND_CARD sound_cards[] = {
{ &adgold_device },
{ &azt2316a_device },
{ &azt1605_device },
{ &cms_device },
{ &cs4235_device },
{ &cs4236b_device },
{ &gus_device },
{ &sb_1_device },
{ &sb_15_device },
{ &sb_2_device },
@@ -130,6 +133,7 @@ static const SOUND_CARD sound_cards[] = {
{ &sb_awe64_value_device },
{ &sb_awe64_device },
{ &sb_awe64_gold_device },
{ &ssi2001_device },
#if defined(DEV_BRANCH) && defined(USE_PAS16)
{ &pas16_device },
#endif
@@ -214,8 +218,14 @@ sound_card_get_from_internal_name(char *s)
void
sound_card_init(void)
{
if (sound_cards[sound_card_current].device)
device_add(sound_cards[sound_card_current].device);
if (sound_cards[sound_card_current[0]].device)
device_add(sound_cards[sound_card_current[0]].device);
if (sound_cards[sound_card_current[1]].device)
device_add(sound_cards[sound_card_current[1]].device);
if (sound_cards[sound_card_current[2]].device)
device_add(sound_cards[sound_card_current[2]].device);
if (sound_cards[sound_card_current[3]].device)
device_add(sound_cards[sound_card_current[3]].device);
}
void
@@ -511,15 +521,6 @@ sound_card_reset(void)
if (mpu401_standalone_enable)
mpu401_device_add();
if (GUS)
device_add(&gus_device);
if (GAMEBLASTER)
device_add(&cms_device);
if (SSI2001)
device_add(&ssi2001_device);
}
void

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Zvuková karta:"
#define STR_SOUND1 "Zvuková karta 1:"
#define STR_SOUND2 "Zvuková karta 2:"
#define STR_SOUND3 "Zvuková karta 3:"
#define STR_SOUND4 "Zvuková karta 4:"
#define STR_MIDI_OUT "MIDI výstup:"
#define STR_MIDI_IN "MIDI vstup:"
#define STR_MPU401 "Samostatný MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Použít zvuk FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (přesnější)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Soundkarte:"
#define STR_SOUND1 "Soundkarte 1:"
#define STR_SOUND2 "Soundkarte 2:"
#define STR_SOUND3 "Soundkarte 3:"
#define STR_SOUND4 "Soundkarte 4:"
#define STR_MIDI_OUT "MIDI Out-Gerät:"
#define STR_MIDI_IN "MIDI In-Gerät:"
#define STR_MPU401 "Standalone-MPU-401-Gerät"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32-Wiedergabe benutzen"
#define STR_FM_DRIVER "FM-Synth-Treiber"
#define STR_FM_DRV_NUKED "Nuked (genauer)"

View File

@@ -320,58 +320,64 @@ DLG_CFG_SOUND DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, C
STYLE DS_CONTROL | WS_CHILD
FONT FONT_SIZE, FONT_NAME
BEGIN
LTEXT STR_SOUND, IDT_SOUND,
LTEXT STR_SOUND1, IDT_SOUND1,
CFG_HMARGIN, CFG_VMARGIN, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_SOUND,
COMBOBOX IDC_COMBO_SOUND1,
CFG_COMBO_BOX_LEFT, 7, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND,
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND1,
CFG_COMBO_BTN_LEFT, 6, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
LTEXT STR_MIDI_OUT, IDT_MIDI_OUT,
LTEXT STR_SOUND2, IDT_SOUND2,
CFG_HMARGIN, 28, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_MIDI_OUT,
COMBOBOX IDC_COMBO_SOUND2,
CFG_COMBO_BOX_LEFT, 26, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND2,
CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
LTEXT STR_SOUND3, IDT_SOUND3,
CFG_HMARGIN, 48, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_SOUND3,
CFG_COMBO_BOX_LEFT, 46, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND3,
CFG_COMBO_BTN_LEFT, 45, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
LTEXT STR_SOUND4, IDT_SOUND4,
CFG_HMARGIN, 68, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_SOUND4,
CFG_COMBO_BOX_LEFT, 66, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SND4,
CFG_COMBO_BTN_LEFT, 65, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
LTEXT STR_MIDI_OUT, IDT_MIDI_OUT,
CFG_HMARGIN, 88, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_MIDI_OUT,
CFG_COMBO_BOX_LEFT, 86, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE,
IDC_CONFIGURE_MIDI_OUT,
CFG_COMBO_BTN_LEFT, 25, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CFG_COMBO_BTN_LEFT, 85, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
LTEXT STR_MIDI_IN, IDT_MIDI_IN,
CFG_HMARGIN, 47, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
CFG_HMARGIN, 108, CFG_PANE_LTEXT_PRI_WIDTH, CFG_PANE_LTEXT_HEIGHT
COMBOBOX IDC_COMBO_MIDI_IN,
CFG_COMBO_BOX_LEFT, 45, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CFG_COMBO_BOX_LEFT, 105, CFG_COMBO_BTN_WIDTH, CFG_COMBO_HEIGHT,
CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MIDI_IN,
CFG_COMBO_BTN_LEFT, 44, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CFG_COMBO_BTN_LEFT, 105, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CONTROL STR_MPU401,IDC_CHECK_MPU401,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 66, 199, CFG_CHECKBOX_HEIGHT
CFG_HMARGIN, 126, 199, CFG_CHECKBOX_HEIGHT
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_MPU401,
CFG_COMBO_BTN_LEFT, 64, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CONTROL STR_SSI,IDC_CHECK_SSI,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 84, 95, CFG_CHECKBOX_HEIGHT
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_SSI,
CFG_COMBO_BTN_LEFT, 82, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CONTROL STR_CMS,IDC_CHECK_CMS,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 102, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_CMS,
CFG_COMBO_BTN_LEFT, 100, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CONTROL STR_GUS,IDC_CHECK_GUS,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 120, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT
PUSHBUTTON STR_CONFIGURE, IDC_CONFIGURE_GUS,
CFG_COMBO_BTN_LEFT, 118, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CFG_COMBO_BTN_LEFT, 125, CFG_BTN_WIDTH, CFG_BTN_HEIGHT
CONTROL STR_FLOAT, IDC_CHECK_FLOAT,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 138, 104, CFG_CHECKBOX_HEIGHT
CFG_HMARGIN, 138, 194, CFG_CHECKBOX_HEIGHT
GROUPBOX STR_FM_DRIVER, IDC_FM_DRIVER,
CFG_HMARGIN, 154, 110, 42
@@ -958,13 +964,13 @@ END
#undef STR_JOY3
#undef STR_JOY4
#undef STR_SOUND
#undef STR_SOUND1
#undef STR_SOUND2
#undef STR_SOUND3
#undef STR_SOUND4
#undef STR_MIDI_OUT
#undef STR_MIDI_IN
#undef STR_MPU401
#undef STR_SSI
#undef STR_CMS
#undef STR_GUS
#undef STR_FLOAT
#undef STR_FM_DRIVER
#undef STR_FM_DRV_NUKED

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Sound card:"
#define STR_SOUND1 "Sound card 1:"
#define STR_SOUND2 "Sound card 2:"
#define STR_SOUND3 "Sound card 3:"
#define STR_SOUND4 "Sound card 4:"
#define STR_MIDI_OUT "MIDI Out Device:"
#define STR_MIDI_IN "MIDI In Device:"
#define STR_MPU401 "Standalone MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Use FLOAT32 sound"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Sound card:"
#define STR_SOUND1 "Sound card 1:"
#define STR_SOUND2 "Sound card 2:"
#define STR_SOUND3 "Sound card 3:"
#define STR_SOUND4 "Sound card 4:"
#define STR_MIDI_OUT "MIDI Out Device:"
#define STR_MIDI_IN "MIDI In Device:"
#define STR_MPU401 "Standalone MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Use FLOAT32 sound"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Mando 3..."
#define STR_JOY4 "Mando 4..."
#define STR_SOUND "Tarjeta de sonido:"
#define STR_SOUND1 "Tarjeta de sonido 1:"
#define STR_SOUND2 "Tarjeta de sonido 2:"
#define STR_SOUND3 "Tarjeta de sonido 3:"
#define STR_SOUND4 "Tarjeta de sonido 4:"
#define STR_MIDI_OUT "Dispositivo MIDI de salida:"
#define STR_MIDI_IN "Dispositivo MIDI de entrada:"
#define STR_MPU401 "MPU-401 independiente"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usar sonido FLOAT32"
#define STR_FM_DRIVER "Controlador de sintet. FM"
#define STR_FM_DRV_NUKED "Nuked (más preciso)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Peliohjain 3..."
#define STR_JOY4 "Peliohjain 4..."
#define STR_SOUND "Äänikortti:"
#define STR_SOUND1 "Äänikortti 1:"
#define STR_SOUND2 "Äänikortti 2:"
#define STR_SOUND3 "Äänikortti 3:"
#define STR_SOUND4 "Äänikortti 4:"
#define STR_MIDI_OUT "MIDI-ulostulo:"
#define STR_MIDI_IN "MIDI-sisääntulo:"
#define STR_MPU401 "Erillinen MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Käytä FLOAT32-ääntä"
#define STR_FM_DRIVER "FM-syntetisaattoriohjain"
#define STR_FM_DRV_NUKED "Nuked (tarkempi)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Manette 3..."
#define STR_JOY4 "Manette 4..."
#define STR_SOUND "Carte son:"
#define STR_SOUND1 "Carte son 1:"
#define STR_SOUND2 "Carte son 2:"
#define STR_SOUND3 "Carte son 3:"
#define STR_SOUND4 "Carte son 4:"
#define STR_MIDI_OUT "Sortie MIDI:"
#define STR_MIDI_IN "Entrée MIDI:"
#define STR_MPU401 "MPU-401 autonome"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Utiliser le son FLOAT32"
#define STR_FM_DRIVER "Pilote de synthétiseur FM"
#define STR_FM_DRV_NUKED "Nuked (plus précis)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Palica za igru 3..."
#define STR_JOY4 "Palica za igru 4..."
#define STR_SOUND "Zvučna kartica:"
#define STR_SOUND1 "Zvučna kartica 1:"
#define STR_SOUND2 "Zvučna kartica 2:"
#define STR_SOUND3 "Zvučna kartica 3:"
#define STR_SOUND4 "Zvučna kartica 4:"
#define STR_MIDI_OUT "Izlazni uređaj MIDI:"
#define STR_MIDI_IN "Ulazni uređaj MIDI:"
#define STR_MPU401 "Samostalni MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Koristi FLOAT32 za zvuk"
#define STR_FM_DRIVER "Drajver za FM sintisajzer"
#define STR_FM_DRV_NUKED "Nuked (precizniji)"

View File

@@ -289,13 +289,13 @@ END
#define STR_JOY3 "Játékvez. 3..."
#define STR_JOY4 "Játékvez. 4..."
#define STR_SOUND "Hangkártya:"
#define STR_SOUND1 "Hangkártya 1:"
#define STR_SOUND2 "Hangkártya 2:"
#define STR_SOUND3 "Hangkártya 3:"
#define STR_SOUND4 "Hangkártya 4:"
#define STR_MIDI_OUT "MIDI-kimenet:"
#define STR_MIDI_IN "MIDI-bemenet:"
#define STR_MPU401 "Különálló MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 használata"
#define STR_FM_DRIVER "FM szintetizátor meghajtó"
#define STR_FM_DRV_NUKED "Nuked (pontosabb)"

View File

@@ -285,13 +285,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Scheda audio:"
#define STR_SOUND1 "Scheda audio 1:"
#define STR_SOUND2 "Scheda audio 2:"
#define STR_SOUND3 "Scheda audio 3:"
#define STR_SOUND4 "Scheda audio 4:"
#define STR_MIDI_OUT "Uscita MIDI:"
#define STR_MIDI_IN "Entrata MIDI:"
#define STR_MPU401 "MPU-401 autonomo"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usa suono FLOAT32"
#define STR_FM_DRIVER "Driver sint. FM"
#define STR_FM_DRV_NUKED "Nuked (più accurato)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "ジョイスティック3..."
#define STR_JOY4 "ジョイスティック4..."
#define STR_SOUND "サウンドカード:"
#define STR_SOUND1 "サウンドカード 1:"
#define STR_SOUND2 "サウンドカード 2:"
#define STR_SOUND3 "サウンドカード 3:"
#define STR_SOUND4 "サウンドカード 4:"
#define STR_MIDI_OUT "MIDI出力デバイス:"
#define STR_MIDI_IN "MIDI入力デバイス:"
#define STR_MPU401 "独立型MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32サウンドを使用する"
#define STR_FM_DRIVER "FMシンセドライバー"
#define STR_FM_DRV_NUKED "Nuked (高精度化)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "조이스틱 3..."
#define STR_JOY4 "조이스틱 4..."
#define STR_SOUND "사운드 카드:"
#define STR_SOUND1 "사운드 카드 1:"
#define STR_SOUND2 "사운드 카드 2:"
#define STR_SOUND3 "사운드 카드 3:"
#define STR_SOUND4 "사운드 카드 4:"
#define STR_MIDI_OUT "MIDI 출력 장치:"
#define STR_MIDI_IN "MIDI 입력 장치:"
#define STR_MPU401 "MPU-401 단독 사용"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 사운드 사용"
#define STR_FM_DRIVER "FM 신디사이저 드라이버"
#define STR_FM_DRV_NUKED "Nuked (더 정확한)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Karta dźwiękowa:"
#define STR_SOUND1 "Karta dźwiękowa 1:"
#define STR_SOUND2 "Karta dźwiękowa 2:"
#define STR_SOUND3 "Karta dźwiękowa 3:"
#define STR_SOUND4 "Karta dźwiękowa 4:"
#define STR_MIDI_OUT "Urządzenie wyjściowe MIDI:"
#define STR_MIDI_IN "Urządzenie wejściowe MIDI:"
#define STR_MPU401 "Samodzielne urządzenie MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Użyj dźwięku FLOAT32"
#define STR_FM_DRIVER "Sterownik syntezy FM"
#define STR_FM_DRV_NUKED "Nuked (dokładniejszy)"

View File

@@ -287,13 +287,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Placa de som:"
#define STR_SOUND1 "Placa de som 1:"
#define STR_SOUND2 "Placa de som 2:"
#define STR_SOUND3 "Placa de som 3:"
#define STR_SOUND4 "Placa de som 4:"
#define STR_MIDI_OUT "Disp. saída MIDI:"
#define STR_MIDI_IN "Disp. entrada MIDI:"
#define STR_MPU401 "MPU-401 autônomo"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usar som FLOAT32"
#define STR_FM_DRIVER "Controlador de sint. FM"
#define STR_FM_DRV_NUKED "Nuked (mais preciso)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Joystick 3..."
#define STR_JOY4 "Joystick 4..."
#define STR_SOUND "Placa de som:"
#define STR_SOUND1 "Placa de som 1:"
#define STR_SOUND2 "Placa de som 2:"
#define STR_SOUND3 "Placa de som 3:"
#define STR_SOUND4 "Placa de som 4:"
#define STR_MIDI_OUT "Disp. saída MIDI:"
#define STR_MIDI_IN "Disp. entrada MIDI:"
#define STR_MPU401 "MPU-401 autónomo"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Utilizar som FLOAT32"
#define STR_FM_DRIVER "Controlador de sint. FM"
#define STR_FM_DRV_NUKED "Nuked (mais exacto)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Джойстик 3..."
#define STR_JOY4 "Джойстик 4..."
#define STR_SOUND "Звуковая карта:"
#define STR_SOUND1 "Звуковая карта 1:"
#define STR_SOUND2 "Звуковая карта 2:"
#define STR_SOUND3 "Звуковая карта 3:"
#define STR_SOUND4 "Звуковая карта 4:"
#define STR_MIDI_OUT "MIDI Out устр-во:"
#define STR_MIDI_IN "MIDI In устр-во:"
#define STR_MPU401 "Отдельный MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 звук"
#define STR_FM_DRIVER "Драйвер FM-синтезатора"
#define STR_FM_DRV_NUKED "Nuked (более точный)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Igralna palica 3..."
#define STR_JOY4 "Igralna palica 4..."
#define STR_SOUND "Zvočna kartica:"
#define STR_SOUND1 "Zvočna kartica 1:"
#define STR_SOUND2 "Zvočna kartica 2:"
#define STR_SOUND3 "Zvočna kartica 3:"
#define STR_SOUND4 "Zvočna kartica 4:"
#define STR_MIDI_OUT "Izhodna naprava MIDI:"
#define STR_MIDI_IN "Vhodna naprava MIDI:"
#define STR_MPU401 "Samostojen MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Uporabi FLOAT32 za zvok"
#define STR_FM_DRIVER "Gonilnik sintetizacije FM"
#define STR_FM_DRV_NUKED "Nuked (točnejši)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Oyun kolu 3..."
#define STR_JOY4 "Oyun kolu 4..."
#define STR_SOUND "Ses kartı:"
#define STR_SOUND1 "Ses kartı 1:"
#define STR_SOUND2 "Ses kartı 2:"
#define STR_SOUND3 "Ses kartı 3:"
#define STR_SOUND4 "Ses kartı 4:"
#define STR_MIDI_OUT "MIDI Çıkış Cihazı:"
#define STR_MIDI_IN "MIDI Giriş Cihazı:"
#define STR_MPU401 "Bağımsız MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 ses kullan"
#define STR_FM_DRIVER "FM sentez sürücüsü"
#define STR_FM_DRV_NUKED "Nuked (daha doğru)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "Джойстик 3..."
#define STR_JOY4 "Джойстик 4..."
#define STR_SOUND "Звукова карта:"
#define STR_SOUND1 "Звукова карта 1:"
#define STR_SOUND2 "Звукова карта 2:"
#define STR_SOUND3 "Звукова карта 3:"
#define STR_SOUND4 "Звукова карта 4:"
#define STR_MIDI_OUT "MIDI Out при-ій:"
#define STR_MIDI_IN "MIDI In при-ій:"
#define STR_MPU401 "Окремий MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 звук"
#define STR_FM_DRIVER "Драйвер FM-синтезатора"
#define STR_FM_DRV_NUKED "Nuked (більш точний)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "操纵杆 3..."
#define STR_JOY4 "操纵杆 4..."
#define STR_SOUND "声卡:"
#define STR_SOUND1 "声卡 1:"
#define STR_SOUND2 "声卡 2:"
#define STR_SOUND3 "声卡 3:"
#define STR_SOUND4 "声卡 4:"
#define STR_MIDI_OUT "MIDI 输出设备:"
#define STR_MIDI_IN "MIDI 输入设备:"
#define STR_MPU401 "独立 MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "使用单精度浮点 (FLOAT32)"
#define STR_FM_DRIVER "调频合成器驱动器"
#define STR_FM_DRV_NUKED "Nuked (更准确)"

View File

@@ -284,13 +284,13 @@ END
#define STR_JOY3 "搖桿 3..."
#define STR_JOY4 "搖桿 4..."
#define STR_SOUND "音訊卡:"
#define STR_SOUND1 "音訊卡 1:"
#define STR_SOUND2 "音訊卡 2:"
#define STR_SOUND3 "音訊卡 3:"
#define STR_SOUND4 "音訊卡 4:"
#define STR_MIDI_OUT "MIDI 輸出裝置:"
#define STR_MIDI_IN "MIDI 輸入裝置:"
#define STR_MPU401 "獨立 MPU-401"
#define STR_SSI "Innovation SSI-2001"
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "使用單精度浮點 (FLOAT32)"
#define STR_FM_DRIVER "調頻合成器驅動器"
#define STR_FM_DRV_NUKED "Nuked (更準確)"

View File

@@ -99,7 +99,8 @@ static int temp_gfxcard, temp_gfxcard_2, temp_ibm8514, temp_voodoo, temp_xga;
static int temp_mouse, temp_joystick;
/* Sound category */
static int temp_sound_card, temp_midi_output_device, temp_midi_input_device, temp_mpu401, temp_SSI2001, temp_GAMEBLASTER, temp_GUS;
static int temp_sound_card[SOUND_CARD_MAX];
static int temp_midi_output_device, temp_midi_input_device, temp_mpu401;
static int temp_float, temp_fm_driver;
/* Network category */
@@ -335,13 +336,11 @@ win_settings_init(void)
temp_joystick = joystick_type;
/* Sound category */
temp_sound_card = sound_card_current;
for (i = 0; i < SOUND_CARD_MAX; i++)
temp_sound_card[i] = sound_card_current[i];
temp_midi_output_device = midi_output_device_current;
temp_midi_input_device = midi_input_device_current;
temp_mpu401 = mpu401_standalone_enable;
temp_SSI2001 = SSI2001;
temp_GAMEBLASTER = GAMEBLASTER;
temp_GUS = GUS;
temp_float = sound_is_float;
temp_fm_driver = fm_driver;
@@ -462,13 +461,11 @@ win_settings_changed(void)
i = i || (joystick_type != temp_joystick);
/* Sound category */
i = i || (sound_card_current != temp_sound_card);
for (j = 0; j < SOUND_CARD_MAX; j++)
i = i || (sound_card_current[j] != temp_sound_card[j]);
i = i || (midi_output_device_current != temp_midi_output_device);
i = i || (midi_input_device_current != temp_midi_input_device);
i = i || (mpu401_standalone_enable != temp_mpu401);
i = i || (SSI2001 != temp_SSI2001);
i = i || (GAMEBLASTER != temp_GAMEBLASTER);
i = i || (GUS != temp_GUS);
i = i || (sound_is_float != temp_float);
i = i || (fm_driver != temp_fm_driver);
@@ -555,13 +552,11 @@ win_settings_save(void)
joystick_type = temp_joystick;
/* Sound category */
sound_card_current = temp_sound_card;
for (i = 0; i < SOUND_CARD_MAX; i++)
sound_card_current[i] = temp_sound_card[i];
midi_output_device_current = temp_midi_output_device;
midi_input_device_current = temp_midi_input_device;
mpu401_standalone_enable = temp_mpu401;
SSI2001 = temp_SSI2001;
GAMEBLASTER = temp_GAMEBLASTER;
GUS = temp_GUS;
sound_is_float = temp_float;
fm_driver = temp_fm_driver;
@@ -1396,16 +1391,16 @@ static BOOL CALLBACK
#endif
win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
{
int c, d;
uint16_t c, d;
LPTSTR lptsTemp;
const device_t *sound_dev;
const device_t *sound_dev[SOUND_CARD_MAX];
switch (message) {
case WM_INITDIALOG:
lptsTemp = (LPTSTR) malloc(512 * sizeof(WCHAR));
c = d = 0;
settings_reset_content(hdlg, IDC_COMBO_SOUND);
settings_reset_content(hdlg, IDC_COMBO_SOUND1);
while (1) {
/* Skip "internal" if machine doesn't have it. */
if ((c == 1) && !machine_has_flags(temp_machine, MACHINE_SOUND)) {
@@ -1419,18 +1414,18 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
break;
if (sound_card_available(c)) {
sound_dev = sound_card_getdevice(c);
sound_dev[0] = sound_card_getdevice(c);
if (device_is_valid(sound_dev, temp_machine)) {
if (device_is_valid(sound_dev[0], temp_machine)) {
if (c == 0)
settings_add_string(hdlg, IDC_COMBO_SOUND, win_get_string(IDS_2104));
settings_add_string(hdlg, IDC_COMBO_SOUND1, win_get_string(IDS_2104));
else if (c == 1)
settings_add_string(hdlg, IDC_COMBO_SOUND, win_get_string(IDS_2119));
settings_add_string(hdlg, IDC_COMBO_SOUND1, win_get_string(IDS_2119));
else
settings_add_string(hdlg, IDC_COMBO_SOUND, (LPARAM) device_name);
settings_add_string(hdlg, IDC_COMBO_SOUND1, (LPARAM) device_name);
settings_list_to_device[0][d] = c;
if ((c == 0) || (c == temp_sound_card))
settings_set_cur_sel(hdlg, IDC_COMBO_SOUND, d);
if ((c == 0) || (c == temp_sound_card[0]))
settings_set_cur_sel(hdlg, IDC_COMBO_SOUND1, d);
d++;
}
}
@@ -1438,8 +1433,119 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
c++;
}
settings_enable_window(hdlg, IDC_COMBO_SOUND, d);
settings_enable_window(hdlg, IDC_CONFIGURE_SND, sound_card_has_config(temp_sound_card));
settings_enable_window(hdlg, IDC_COMBO_SOUND1, d);
settings_enable_window(hdlg, IDC_CONFIGURE_SND1, sound_card_has_config(temp_sound_card[0]));
c = d = 0;
settings_reset_content(hdlg, IDC_COMBO_SOUND2);
while (1) {
/* Skip "internal" */
if (c == 1) {
c++;
continue;
}
generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1);
if (!device_name[0])
break;
if (sound_card_available(c)) {
sound_dev[1] = sound_card_getdevice(c);
if (device_is_valid(sound_dev[1], temp_machine)) {
if (c == 0)
settings_add_string(hdlg, IDC_COMBO_SOUND2, win_get_string(IDS_2104));
else if (c == 1)
settings_add_string(hdlg, IDC_COMBO_SOUND2, win_get_string(IDS_2119));
else
settings_add_string(hdlg, IDC_COMBO_SOUND2, (LPARAM) device_name);
settings_list_to_device[0][d] = c;
if ((c == 0) || (c == temp_sound_card[1]))
settings_set_cur_sel(hdlg, IDC_COMBO_SOUND2, d);
d++;
}
}
c++;
}
settings_enable_window(hdlg, IDC_COMBO_SOUND2, d);
settings_enable_window(hdlg, IDC_CONFIGURE_SND2, sound_card_has_config(temp_sound_card[1]));
c = d = 0;
settings_reset_content(hdlg, IDC_COMBO_SOUND3);
while (1) {
/* Skip "internal" */
if (c == 1) {
c++;
continue;
}
generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1);
if (!device_name[0])
break;
if (sound_card_available(c)) {
sound_dev[2] = sound_card_getdevice(c);
if (device_is_valid(sound_dev[2], temp_machine)) {
if (c == 0)
settings_add_string(hdlg, IDC_COMBO_SOUND3, win_get_string(IDS_2104));
else if (c == 1)
settings_add_string(hdlg, IDC_COMBO_SOUND3, win_get_string(IDS_2119));
else
settings_add_string(hdlg, IDC_COMBO_SOUND3, (LPARAM) device_name);
settings_list_to_device[0][d] = c;
if ((c == 0) || (c == temp_sound_card[2]))
settings_set_cur_sel(hdlg, IDC_COMBO_SOUND3, d);
d++;
}
}
c++;
}
settings_enable_window(hdlg, IDC_COMBO_SOUND3, d);
settings_enable_window(hdlg, IDC_CONFIGURE_SND3, sound_card_has_config(temp_sound_card[2]));
c = d = 0;
settings_reset_content(hdlg, IDC_COMBO_SOUND4);
while (1) {
/* Skip "internal" */
if (c == 1) {
c++;
continue;
}
generate_device_name(sound_card_getdevice(c), sound_card_get_internal_name(c), 1);
if (!device_name[0])
break;
if (sound_card_available(c)) {
sound_dev[3] = sound_card_getdevice(c);
if (device_is_valid(sound_dev[3], temp_machine)) {
if (c == 0)
settings_add_string(hdlg, IDC_COMBO_SOUND4, win_get_string(IDS_2104));
else if (c == 1)
settings_add_string(hdlg, IDC_COMBO_SOUND4, win_get_string(IDS_2119));
else
settings_add_string(hdlg, IDC_COMBO_SOUND4, (LPARAM) device_name);
settings_list_to_device[0][d] = c;
if ((c == 0) || (c == temp_sound_card[3]))
settings_set_cur_sel(hdlg, IDC_COMBO_SOUND4, d);
d++;
}
}
c++;
}
settings_enable_window(hdlg, IDC_COMBO_SOUND4, d);
settings_enable_window(hdlg, IDC_CONFIGURE_SND4, sound_card_has_config(temp_sound_card[3]));
c = d = 0;
settings_reset_content(hdlg, IDC_COMBO_MIDI_OUT);
@@ -1491,15 +1597,6 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow());
settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_CMS, machine_has_bus(temp_machine, MACHINE_BUS_ISA));
settings_set_check(hdlg, IDC_CHECK_CMS, temp_GAMEBLASTER);
settings_enable_window(hdlg, IDC_CONFIGURE_CMS, machine_has_bus(temp_machine, MACHINE_BUS_ISA) && temp_GAMEBLASTER);
settings_enable_window(hdlg, IDC_CHECK_GUS, machine_has_bus(temp_machine, MACHINE_BUS_ISA16));
settings_set_check(hdlg, IDC_CHECK_GUS, temp_GUS);
settings_enable_window(hdlg, IDC_CONFIGURE_GUS, machine_has_bus(temp_machine, MACHINE_BUS_ISA16) && temp_GUS);
settings_enable_window(hdlg, IDC_CHECK_SSI, machine_has_bus(temp_machine, MACHINE_BUS_ISA));
settings_set_check(hdlg, IDC_CHECK_SSI, temp_SSI2001);
settings_enable_window(hdlg, IDC_CONFIGURE_SSI, machine_has_bus(temp_machine, MACHINE_BUS_ISA) && temp_SSI2001);
settings_set_check(hdlg, IDC_CHECK_FLOAT, temp_float);
if (temp_fm_driver == FM_DRV_YMFM)
@@ -1513,17 +1610,56 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
case WM_COMMAND:
switch (LOWORD(wParam)) {
case IDC_COMBO_SOUND:
temp_sound_card = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND)];
settings_enable_window(hdlg, IDC_CONFIGURE_SND, sound_card_has_config(temp_sound_card));
case IDC_COMBO_SOUND1:
temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)];
settings_enable_window(hdlg, IDC_CONFIGURE_SND1, sound_card_has_config(temp_sound_card[0]));
settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow());
settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401);
break;
case IDC_CONFIGURE_SND:
temp_sound_card = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card));
case IDC_CONFIGURE_SND1:
temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[0]));
break;
case IDC_COMBO_SOUND2:
temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)];
settings_enable_window(hdlg, IDC_CONFIGURE_SND2, sound_card_has_config(temp_sound_card[1]));
settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow());
settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401);
break;
case IDC_CONFIGURE_SND2:
temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[1]));
break;
case IDC_COMBO_SOUND3:
temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)];
settings_enable_window(hdlg, IDC_CONFIGURE_SND3, sound_card_has_config(temp_sound_card[2]));
settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow());
settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401);
break;
case IDC_CONFIGURE_SND3:
temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[2]));
break;
case IDC_COMBO_SOUND4:
temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)];
settings_enable_window(hdlg, IDC_CONFIGURE_SND4, sound_card_has_config(temp_sound_card[3]));
settings_set_check(hdlg, IDC_CHECK_MPU401, temp_mpu401);
settings_enable_window(hdlg, IDC_CHECK_MPU401, mpu401_standalone_allow());
settings_enable_window(hdlg, IDC_CONFIGURE_MPU401, mpu401_standalone_allow() && temp_mpu401);
break;
case IDC_CONFIGURE_SND4:
temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)];
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) sound_card_getdevice(temp_sound_card[3]));
break;
case IDC_COMBO_MIDI_OUT:
@@ -1561,46 +1697,17 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
case IDC_CONFIGURE_MPU401:
temp_deviceconfig |= deviceconfig_open(hdlg, machine_has_bus(temp_machine, MACHINE_BUS_MCA) ? (void *) &mpu401_mca_device : (void *) &mpu401_device);
break;
case IDC_CHECK_CMS:
temp_GAMEBLASTER = settings_get_check(hdlg, IDC_CHECK_CMS);
settings_enable_window(hdlg, IDC_CONFIGURE_CMS, temp_GAMEBLASTER);
break;
case IDC_CONFIGURE_CMS:
temp_deviceconfig |= deviceconfig_open(hdlg, &cms_device);
break;
case IDC_CHECK_GUS:
temp_GUS = settings_get_check(hdlg, IDC_CHECK_GUS);
settings_enable_window(hdlg, IDC_CONFIGURE_GUS, temp_GUS);
break;
case IDC_CONFIGURE_GUS:
temp_deviceconfig |= deviceconfig_open(hdlg, (void *) &gus_device);
break;
case IDC_CHECK_SSI:
temp_SSI2001 = settings_get_check(hdlg, IDC_CHECK_SSI);
settings_enable_window(hdlg, IDC_CONFIGURE_SSI, temp_SSI2001);
break;
case IDC_CONFIGURE_SSI:
temp_deviceconfig |= deviceconfig_open(hdlg, &ssi2001_device);
break;
}
return FALSE;
case WM_SAVESETTINGS:
temp_sound_card = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND)];
temp_sound_card[0] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND1)];
temp_sound_card[1] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND2)];
temp_sound_card[2] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND3)];
temp_sound_card[3] = settings_list_to_device[0][settings_get_cur_sel(hdlg, IDC_COMBO_SOUND4)];
temp_midi_output_device = settings_list_to_midi[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_OUT)];
temp_midi_input_device = settings_list_to_midi_in[settings_get_cur_sel(hdlg, IDC_COMBO_MIDI_IN)];
temp_mpu401 = settings_get_check(hdlg, IDC_CHECK_MPU401);
temp_GAMEBLASTER = settings_get_check(hdlg, IDC_CHECK_CMS);
temp_GUS = settings_get_check(hdlg, IDC_CHECK_GUS);
temp_SSI2001 = settings_get_check(hdlg, IDC_CHECK_SSI);
temp_float = settings_get_check(hdlg, IDC_CHECK_FLOAT);
if (settings_get_check(hdlg, IDC_RADIO_FM_DRV_NUKED))
temp_fm_driver = FM_DRV_NUKED;