From 8d9d1fb17b5926e9b33b9eebaff94bbffae86ac6 Mon Sep 17 00:00:00 2001 From: Raphael Junqueira Date: Mon, 11 Jul 2005 10:24:28 +0000 Subject: [PATCH] Add some basic dsound configuration on Audio panel. --- programs/winecfg/En.rc | 7 +++++++ programs/winecfg/Fr.rc | 7 +++++++ programs/winecfg/audio.c | 51 +++++++++++++++++++++++++++++++++++++++++++++ programs/winecfg/resource.h | 2 ++ 4 files changed, 67 insertions(+) diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc index 50e7ea2fb1e..1a6802b2295 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc @@ -153,6 +153,13 @@ BEGIN PUSHBUTTON "Autodetect",IDC_AUDIO_AUTODETECT,170,20,49,14 PUSHBUTTON "Configure",IDC_AUDIO_CONFIGURE,170,40,49,14 PUSHBUTTON "Control Panel",IDC_AUDIO_CONTROL_PANEL,170,60,49,14 + + GROUPBOX " DirectSound ",IDC_STATIC,8,75,244,120 + + LTEXT "Hardware Acceleration: ",IDC_STATIC,15,85,90,10 + COMBOBOX IDC_DSOUND_HW_ACCEL,100,83,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Driver Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10 + END STRINGTABLE DISCARDABLE diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc index 554cf519830..c0aa5acfdfa 100644 --- a/programs/winecfg/Fr.rc +++ b/programs/winecfg/Fr.rc @@ -139,6 +139,13 @@ BEGIN PUSHBUTTON "Autodétection",IDC_AUDIO_AUTODETECT,170,20,85,14 PUSHBUTTON "Configurer",IDC_AUDIO_CONFIGURE,170,40,85,14 PUSHBUTTON "Panneau de configuration",IDC_AUDIO_CONTROL_PANEL,170,60,85,14 + + GROUPBOX " DirectSound ",IDC_STATIC,8,75,244,120 + + LTEXT "Hardware Acceleration: ",IDC_STATIC,15,85,90,10 + COMBOBOX IDC_DSOUND_HW_ACCEL,100,83,150,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + CONTROL "Driver Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,100,230,10 + END STRINGTABLE DISCARDABLE diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c index 73f36f3a12e..2105d23332c 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -44,6 +44,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(winecfg); +static const char* DSound_HW_Accels[] = { + "Full", + "Standard", + "Basic", + "Emulation", + NULL +}; + /* Select the correct entry in the combobox based on drivername */ static void selectAudioDriver(HWND hDlg, const char *drivername) { @@ -113,6 +121,7 @@ static void initAudioDlg (HWND hDlg) char *curAudioDriver = get_reg_key(config_key, "Drivers", "Audio", "alsa"); const AUDIO_DRIVER *pAudioDrv = NULL; int i; + char* buf = NULL; WINE_TRACE("\n"); @@ -124,6 +133,31 @@ static void initAudioDlg (HWND hDlg) SendDlgItemMessage(hDlg, IDC_AUDIO_DRIVER, CB_SETCURSEL, i, 0); } } + + + SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_RESETCONTENT, 0, 0); + for (i = 0; NULL != DSound_HW_Accels[i]; ++i) { + SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_ADDSTRING, 0, (LPARAM) DSound_HW_Accels[i]); + } + buf = get_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", "Full"); + for (i = 0; NULL != DSound_HW_Accels[i]; ++i) { + if (strcmp(buf, DSound_HW_Accels[i]) == 0) { + SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_SETCURSEL, i, 0); + break ; + } + } + if (NULL == DSound_HW_Accels[i]) { + WINE_ERR("Invalid Direct Sound HW Accel read from registry (%s)\n", buf); + } + HeapFree(GetProcessHeap(), 0, buf); + + buf = get_reg_key(config_key, keypath("DirectSound"), "EmulDriver", "N"); + if (IS_OPTION_TRUE(*buf)) + CheckDlgButton(hDlg, IDC_DSOUND_DRV_EMUL, BST_CHECKED); + else + CheckDlgButton(hDlg, IDC_DSOUND_DRV_EMUL, BST_UNCHECKED); + HeapFree(GetProcessHeap(), 0, buf); + } static const char *audioAutoDetect(void) @@ -226,6 +260,23 @@ AudioDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) case IDC_AUDIO_CONTROL_PANEL: MessageBox(NULL, "Launching audio control panel not implemented yet!", "Fixme", MB_OK | MB_ICONERROR); break; + case IDC_DSOUND_HW_ACCEL: + if (HIWORD(wParam) == CBN_SELCHANGE) { + int selected_dsound_accel; + SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); + selected_dsound_accel = SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_GETCURSEL, 0, 0); + set_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", DSound_HW_Accels[selected_dsound_accel]); + } + break; + case IDC_DSOUND_DRV_EMUL: + if (HIWORD(wParam) == BN_CLICKED) { + SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); + if (IsDlgButtonChecked(hDlg, IDC_DSOUND_DRV_EMUL) == BST_CHECKED) + set_reg_key(config_key, keypath("DirectSound"), "EmulDriver", "Y"); + else + set_reg_key(config_key, keypath("DirectSound"), "EmulDriver", "N"); + } + break; } break; diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h index 36399489e3e..94baee74d49 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h @@ -127,3 +127,5 @@ #define IDC_AUDIO_DRIVER 1301 #define IDC_AUDIO_CONFIGURE 1302 #define IDC_AUDIO_CONTROL_PANEL 1303 +#define IDC_DSOUND_HW_ACCEL 1304 +#define IDC_DSOUND_DRV_EMUL 1305 -- 2.11.4.GIT