From 9a44417b4bee22a8c151975d4ef7f47cee9d02d5 Mon Sep 17 00:00:00 2001 From: Austin English Date: Tue, 28 Oct 2008 17:42:15 -0500 Subject: [PATCH] winecfg: don't crash if no audio driver is available, issue a warning instead --- programs/winecfg/En.rc | 2 ++ programs/winecfg/audio.c | 11 +++++++++-- programs/winecfg/resource.h | 2 ++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc index c93bfa9..f2d6eed 100644 --- a/programs/winecfg/En.rc +++ b/programs/winecfg/En.rc @@ -286,6 +286,8 @@ BEGIN IDS_DEVICES_MIXER "Mixer Devices" IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove “%s” from registry?" IDS_WARNING "Warning" + IDS_NO_DRIVER "No audio driver available! Check your system configuration." + IDS_NO_DRIVER_TITLE "No Audio Driver!" END STRINGTABLE DISCARDABLE diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c index 3ce0e25..14c62a0 100644 --- a/programs/winecfg/audio.c +++ b/programs/winecfg/audio.c @@ -632,9 +632,16 @@ static void initAudioDlg (HWND hDlg) */ if (buf == NULL) { - /* select first available driver */ - if (*loadedAudioDrv->szDriver) + + /* If a driver is available, select the first one. */ + if (loadedAudioDrv->szDriver) selectDriver(hDlg, loadedAudioDrv->szDriver); + + /* No driver available? Prepare for trouble! */ + else + MessageBox(NULL, MAKEINTRESOURCE(IDS_NO_DRIVER), + MAKEINTRESOURCE(IDS_NO_DRIVER_TITLE), MB_OK | MB_ICONERROR); + } else /* make a local copy of the current registry setting */ strcpy(curAudioDriver, buf); diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h index 2182c29..3bd33a0 100644 --- a/programs/winecfg/resource.h +++ b/programs/winecfg/resource.h @@ -197,6 +197,8 @@ #define IDS_DEVICES_MIXER 8319 #define IDS_UNAVAILABLE_DRIVER 8320 #define IDS_WARNING 8321 +#define IDS_NO_DRIVER 8322 +#define IDS_NO_DRIVER_TITLE 8323 /* desktop integration tab */ #define IDC_THEME_COLORCOMBO 1401 -- 1.6.0.2