Merge pull request #2514 from lemondrops/feature/fmdriver_ui

Add the FM synth driver select option to the UI
This commit is contained in:
Miran Grča
2022-07-26 15:10:29 +02:00
committed by GitHub
25 changed files with 136 additions and 2 deletions

View File

@@ -207,6 +207,9 @@
#define IDC_COMBO_MIDI_IN 1050
#define IDC_CONFIGURE_CMS 1051
#define IDC_CONFIGURE_SSI 1052
#define IDC_FM_DRIVER 1053
#define IDC_RADIO_FM_DRV_NUKED 1054
#define IDC_RADIO_FM_DRV_YMFM 1055
#define IDC_COMBO_NET_TYPE 1060 /* network config */
#define IDC_COMBO_PCAP 1061

View File

@@ -25,6 +25,7 @@ extern "C" {
#include <86box/sound.h>
#include <86box/midi.h>
#include <86box/snd_mpu401.h>
#include <86box/snd_opl.h>
}
#include "qt_deviceconfig.hpp"
@@ -52,6 +53,10 @@ void SettingsSound::save() {
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
fm_driver = FM_DRV_NUKED;
}
void SettingsSound::onCurrentMachineChanged(int machineId) {
@@ -151,6 +156,15 @@ void SettingsSound::onCurrentMachineChanged(int machineId) {
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);
break;
case FM_DRV_NUKED:
default:
ui->radioButtonNuked->setChecked(true);
break;
}
}
static bool allowMpu401(Ui::SettingsSound *ui) {

View File

@@ -152,6 +152,35 @@
</widget>
</item>
<item row="8" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>FM synth driver</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_1">
<item>
<widget class="QRadioButton" name="radioButtonNuked">
<property name="text">
<string>Nuked (more accurate)</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radioButtonYMFM">
<property name="text">
<string>YMFM (faster)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="9" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>

View File

@@ -289,6 +289,9 @@ END
#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 (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Druh sítě:"
#define STR_PCAP "PCap zařízení:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32-Wiedergabe benutzen"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Netzwerktyp:"
#define STR_PCAP "PCap-Gerät:"

View File

@@ -364,6 +364,17 @@ BEGIN
CONTROL STR_FLOAT, IDC_CHECK_FLOAT,
"Button", BS_AUTOCHECKBOX | WS_TABSTOP,
CFG_HMARGIN, 138, 104, CFG_CHECKBOX_HEIGHT
GROUPBOX STR_FM_DRIVER, IDC_FM_DRIVER,
CFG_HMARGIN, 154, 110, 42
CONTROL STR_FM_DRV_NUKED, IDC_RADIO_FM_DRV_NUKED,
"Button", BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,
14, 166, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT
CONTROL STR_FM_DRV_YMFM, IDC_RADIO_FM_DRV_YMFM,
"Button", BS_AUTORADIOBUTTON | WS_TABSTOP,
14, 180, CFG_CHECKBOX_PRI_WIDTH, CFG_CHECKBOX_HEIGHT
END
DLG_CFG_NETWORK DIALOG DISCARDABLE CFG_PANE_LEFT, CFG_PANE_TOP, CFG_PANE_WIDTH, CFG_PANE_HEIGHT
@@ -924,6 +935,8 @@ END
#undef STR_VIDEO
#undef STR_VOODOO
#undef STR_IBM8514
#undef STR_XGA
#undef STR_MOUSE
#undef STR_JOYSTICK
@@ -940,6 +953,9 @@ END
#undef STR_CMS
#undef STR_GUS
#undef STR_FLOAT
#undef STR_FM_DRIVER
#undef STR_FM_DRV_NUKED
#undef STR_FM_DRV_YMFM
#undef STR_NET_TYPE
#undef STR_PCAP

View File

@@ -289,6 +289,9 @@ END
#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)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Network type:"
#define STR_PCAP "PCap device:"

View File

@@ -289,6 +289,9 @@ END
#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)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Network type:"
#define STR_PCAP "PCap device:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usar sonido FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Tipo de red:"
#define STR_PCAP "Dispositivo PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Käytä FLOAT32-ääntä"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Verkon tyyppi:"
#define STR_PCAP "PCap-laite:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Utiliser le son FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Type de réseau:"
#define STR_PCAP "Dispositif PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Koristi FLOAT32 za zvuk"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Tip mreže:"
#define STR_PCAP "Uređaj PCap:"

View File

@@ -294,6 +294,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 használata"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Hálózati típusa:"
#define STR_PCAP "PCap eszköz:"

View File

@@ -290,6 +290,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usa suono FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Tipo di rete:"
#define STR_PCAP "Dispositivo PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32サウンドを使用する"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "ネットワークタイプ:"
#define STR_PCAP "PCapデバイス:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 사운드 사용"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "네트워크 종류:"
#define STR_PCAP "PCap 장치:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Użyj dźwięku FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Rodzaj sieci:"
#define STR_PCAP "Urządzenie PCap:"

View File

@@ -292,6 +292,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Usar som FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Tipo de rede:"
#define STR_PCAP "Dispositivo PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Utilizar som FLOAT32"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Tipo de rede:"
#define STR_PCAP "Dispositivo PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 звук"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Тип сети:"
#define STR_PCAP "Устройство PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "Uporabi FLOAT32 za zvok"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Vrsta omrežja:"
#define STR_PCAP "Naprava PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 ses kullan"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Ağ tipi:"
#define STR_PCAP "PCap cihazı:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "FLOAT32 звук"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "Тип мережі:"
#define STR_PCAP "Пристрій PCap:"

View File

@@ -289,6 +289,9 @@ END
#define STR_CMS "CMS / Game Blaster"
#define STR_GUS "Gravis Ultrasound"
#define STR_FLOAT "使用单精度浮点 (FLOAT32)"
#define STR_FM_DRIVER "FM synth driver"
#define STR_FM_DRV_NUKED "Nuked (more accurate)"
#define STR_FM_DRV_YMFM "YMFM (faster)"
#define STR_NET_TYPE "网络类型:"
#define STR_PCAP "PCap 设备:"

View File

@@ -63,6 +63,7 @@
#include <86box/sound.h>
#include <86box/midi.h>
#include <86box/snd_mpu401.h>
#include <86box/snd_opl.h>
#include <86box/video.h>
#include <86box/vid_xga_device.h>
#include <86box/plat.h>
@@ -94,7 +95,7 @@ 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_float;
static int temp_float, temp_fm_driver;
/* Network category */
static int temp_net_type, temp_net_card;
@@ -350,6 +351,7 @@ win_settings_init(void)
temp_GAMEBLASTER = GAMEBLASTER;
temp_GUS = GUS;
temp_float = sound_is_float;
temp_fm_driver = fm_driver;
/* Network category */
temp_net_type = network_type;
@@ -476,6 +478,7 @@ win_settings_changed(void)
i = i || (GAMEBLASTER != temp_GAMEBLASTER);
i = i || (GUS != temp_GUS);
i = i || (sound_is_float != temp_float);
i = i || (fm_driver != temp_fm_driver);
/* Network category */
i = i || (network_type != temp_net_type);
@@ -568,6 +571,7 @@ win_settings_save(void)
GAMEBLASTER = temp_GAMEBLASTER;
GUS = temp_GUS;
sound_is_float = temp_float;
fm_driver = temp_fm_driver;
/* Network category */
network_type = temp_net_type;
@@ -1421,6 +1425,11 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
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)
settings_set_check(hdlg, IDC_RADIO_FM_DRV_YMFM, BST_CHECKED);
else
settings_set_check(hdlg, IDC_RADIO_FM_DRV_NUKED, BST_CHECKED);
free(lptsTemp);
return TRUE;
@@ -1517,7 +1526,10 @@ win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
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;
if (settings_get_check(hdlg, IDC_RADIO_FM_DRV_YMFM))
temp_fm_driver = FM_DRV_YMFM;
default:
return FALSE;
}