Add some basic dsound configuration on Audio panel.

This commit is contained in:
Raphael Junqueira 2005-07-11 10:24:28 +00:00 committed by Alexandre Julliard
parent 9ccea1149b
commit 8d9d1fb17b
4 changed files with 67 additions and 0 deletions

View File

@ -153,6 +153,13 @@ BEGIN
PUSHBUTTON "Autodetect",IDC_AUDIO_AUTODETECT,170,20,49,14 PUSHBUTTON "Autodetect",IDC_AUDIO_AUTODETECT,170,20,49,14
PUSHBUTTON "Configure",IDC_AUDIO_CONFIGURE,170,40,49,14 PUSHBUTTON "Configure",IDC_AUDIO_CONFIGURE,170,40,49,14
PUSHBUTTON "Control Panel",IDC_AUDIO_CONTROL_PANEL,170,60,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 END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE

View File

@ -139,6 +139,13 @@ BEGIN
PUSHBUTTON "Autodétection",IDC_AUDIO_AUTODETECT,170,20,85,14 PUSHBUTTON "Autodétection",IDC_AUDIO_AUTODETECT,170,20,85,14
PUSHBUTTON "Configurer",IDC_AUDIO_CONFIGURE,170,40,85,14 PUSHBUTTON "Configurer",IDC_AUDIO_CONFIGURE,170,40,85,14
PUSHBUTTON "Panneau de configuration",IDC_AUDIO_CONTROL_PANEL,170,60,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 END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE

View File

@ -44,6 +44,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(winecfg); 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 */ /* Select the correct entry in the combobox based on drivername */
static void selectAudioDriver(HWND hDlg, const char *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"); char *curAudioDriver = get_reg_key(config_key, "Drivers", "Audio", "alsa");
const AUDIO_DRIVER *pAudioDrv = NULL; const AUDIO_DRIVER *pAudioDrv = NULL;
int i; int i;
char* buf = NULL;
WINE_TRACE("\n"); WINE_TRACE("\n");
@ -124,6 +133,31 @@ static void initAudioDlg (HWND hDlg)
SendDlgItemMessage(hDlg, IDC_AUDIO_DRIVER, CB_SETCURSEL, i, 0); 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) static const char *audioAutoDetect(void)
@ -226,6 +260,23 @@ AudioDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
case IDC_AUDIO_CONTROL_PANEL: case IDC_AUDIO_CONTROL_PANEL:
MessageBox(NULL, "Launching audio control panel not implemented yet!", "Fixme", MB_OK | MB_ICONERROR); MessageBox(NULL, "Launching audio control panel not implemented yet!", "Fixme", MB_OK | MB_ICONERROR);
break; 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; break;

View File

@ -127,3 +127,5 @@
#define IDC_AUDIO_DRIVER 1301 #define IDC_AUDIO_DRIVER 1301
#define IDC_AUDIO_CONFIGURE 1302 #define IDC_AUDIO_CONFIGURE 1302
#define IDC_AUDIO_CONTROL_PANEL 1303 #define IDC_AUDIO_CONTROL_PANEL 1303
#define IDC_DSOUND_HW_ACCEL 1304
#define IDC_DSOUND_DRV_EMUL 1305