winecfg: audio: Use strings from resources.

This commit is contained in:
Frank Richter 2006-08-19 05:19:57 +02:00 committed by Alexandre Julliard
parent a121ac5d71
commit 3713f49dfa
16 changed files with 467 additions and 85 deletions

View File

@ -254,3 +254,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -252,3 +252,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Zuordnung" IDS_COL_DRIVEMAPPING "Zuordnung"
IDS_NO_DRIVE_C "Sie haben kein Laufwerk C. Das ist nicht so gut.\n\nVergessen Sie nicht, im Laufwerke-Reiter „Hinzufügen“ zu klicken um eins zu erstellen!\n" IDS_NO_DRIVE_C "Sie haben kein Laufwerk C. Das ist nicht so gut.\n\nVergessen Sie nicht, im Laufwerke-Reiter „Hinzufügen“ zu klicken um eins zu erstellen!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Voll"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Einfach"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA-Treiber"
IDS_DRIVER_ARTS "aRts-Treiber"
IDS_DRIVER_ESOUND "EsounD-Treiber"
IDS_DRIVER_OSS "OSS-Treiber"
IDS_DRIVER_JACK "JACK-Treiber"
IDS_DRIVER_NAS "NAS-Treiber"
IDS_DRIVER_AUDIOIO "Audio-IO-Treiber (Solaris)"
IDS_DRIVER_COREAUDIO "CoreAudio-Treiber"
IDS_OPEN_DRIVER_ERROR "Konnte %s nicht öffnen!"
IDS_SOUNDDRIVERS "Sound_Treiber"
IDS_DEVICES_WAVEOUT "Wave-Ausgabe-Geräte"
IDS_DEVICES_WAVEIN "Wave-Eingabe-Geräte"
IDS_DEVICES_MIDIOUT "MIDI-Ausgabe-Geräte"
IDS_DEVICES_MIDIIN "MIDI-Ausgabe-Geräte"
IDS_DEVICES_AUX "Aux-Geräte"
IDS_DEVICES_MIXER "Mixer-Geräte"
IDS_UNAVAILABLE_DRIVER "In der Registry wurde ein Treiber gefunden, der nicht verfügbar ist!\n\nSoll „%s“ aus der Registry entfernt werden?"
IDS_WARNING "Warnung"
END

View File

@ -254,6 +254,32 @@ BEGIN
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click Add in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click Add in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove “%s” from registry?"
IDS_WARNING "Warning"
END
/****************************************************************/ /****************************************************************/
/* English neutral resources /* English neutral resources
/****************************************************************/ /****************************************************************/

View File

@ -248,3 +248,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -251,3 +251,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -252,3 +252,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -248,3 +248,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -246,3 +246,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -255,3 +255,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -253,3 +253,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -251,3 +251,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -248,3 +248,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -251,3 +251,29 @@ BEGIN
IDS_COL_DRIVEMAPPING "Drive Mapping" IDS_COL_DRIVEMAPPING "Drive Mapping"
IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n" IDS_NO_DRIVE_C "You don't have a drive C. This is not so great.\n\nRemember to click 'Add' in the Drives tab to create one!\n"
END END
STRINGTABLE DISCARDABLE
BEGIN
IDS_ACCEL_FULL "Full"
IDS_ACCEL_STANDARD "Standard"
IDS_ACCEL_BASIC "Basic"
IDS_ACCEL_EMULATION "Emulation"
IDS_DRIVER_ALSA "ALSA Driver"
IDS_DRIVER_ARTS "aRts Driver"
IDS_DRIVER_ESOUND "EsounD Driver"
IDS_DRIVER_OSS "OSS Driver"
IDS_DRIVER_JACK "JACK Driver"
IDS_DRIVER_NAS "NAS Driver"
IDS_DRIVER_AUDIOIO "Audio IO (Solaris) Driver"
IDS_DRIVER_COREAUDIO "CoreAudio Driver"
IDS_OPEN_DRIVER_ERROR "Couldn't open %s!"
IDS_SOUNDDRIVERS "Sound Drivers"
IDS_DEVICES_WAVEOUT "Wave Out Devices"
IDS_DEVICES_WAVEIN "Wave In Devices"
IDS_DEVICES_MIDIOUT "MIDI Out Devices"
IDS_DEVICES_MIDIIN "MIDI In Devices"
IDS_DEVICES_AUX "Aux Devices"
IDS_DEVICES_MIXER "Mixer Devices"
IDS_UNAVAILABLE_DRIVER "Found driver in registry that is not available!\n\nRemove \"%s\" from registry?"
IDS_WARNING "Warning"
END

View File

@ -52,12 +52,16 @@ WINE_DEFAULT_DEBUG_CHANNEL(winecfg);
typedef DWORD (WINAPI * MessagePtr)(UINT, UINT, DWORD, DWORD, DWORD); typedef DWORD (WINAPI * MessagePtr)(UINT, UINT, DWORD, DWORD, DWORD);
static const char* DSound_HW_Accels[] = { static struct DSOUNDACCEL
"Full", {
"Standard", UINT displayID;
"Basic", const char* settingStr;
"Emulation", } const DSound_HW_Accels[] = {
NULL {IDS_ACCEL_FULL, "Full"},
{IDS_ACCEL_STANDARD, "Standard"},
{IDS_ACCEL_BASIC, "Basic"},
{IDS_ACCEL_EMULATION, "Emulation"},
{0, 0}
}; };
static const char* DSound_Rates[] = { static const char* DSound_Rates[] = {
@ -77,16 +81,15 @@ static const char* DSound_Bits[] = {
}; };
static const AUDIO_DRIVER sAudioDrivers[] = { static const AUDIO_DRIVER sAudioDrivers[] = {
{"ALSA", "alsa"}, {IDS_DRIVER_ALSA, "alsa"},
{"aRts", "arts"}, {IDS_DRIVER_ARTS, "arts"},
{"EsounD", "esd"}, {IDS_DRIVER_ESOUND, "esd"},
{"OSS", "oss"}, {IDS_DRIVER_OSS, "oss"},
{"JACK", "jack"}, {IDS_DRIVER_JACK, "jack"},
{"NAS", "nas"}, {IDS_DRIVER_NAS, "nas"},
{"Audio IO(Solaris)", "audioio"}, {IDS_DRIVER_AUDIOIO, "audioio"},
{"CoreAudio", "coreaudio"}, {IDS_DRIVER_COREAUDIO, "coreaudio"},
{"Disable sound", ""}, {0, ""}
{"", ""}
}; };
/* list of available drivers */ /* list of available drivers */
@ -106,7 +109,7 @@ static void configureAudioDriver(HWND hDlg)
if (strlen(pAudioDrv->szDriver) != 0) if (strlen(pAudioDrv->szDriver) != 0)
{ {
HDRVR hdrvr; HDRVR hdrvr;
char wine_driver[MAX_NAME_LENGTH + 8]; char wine_driver[MAX_NAME_LENGTH + 9];
sprintf(wine_driver, "wine%s.drv", pAudioDrv->szDriver); sprintf(wine_driver, "wine%s.drv", pAudioDrv->szDriver);
hdrvr = OpenDriverA(wine_driver, 0, 0); hdrvr = OpenDriverA(wine_driver, 0, 0);
if (hdrvr != 0) if (hdrvr != 0)
@ -124,9 +127,17 @@ static void configureAudioDriver(HWND hDlg)
} }
else else
{ {
char str[1024]; WCHAR wine_driverW[MAX_NAME_LENGTH+9];
sprintf(str, "Couldn't open %s!", wine_driver); WCHAR messageStr[256];
MessageBox(hDlg, str, "Fixme", MB_OK | MB_ICONERROR); WCHAR str[1024];
MultiByteToWideChar (CP_ACP, 0, wine_driver, -1, wine_driverW,
sizeof (wine_driverW)/sizeof(wine_driverW[0]));
LoadStringW (GetModuleHandle (NULL), IDS_OPEN_DRIVER_ERROR, messageStr,
sizeof(messageStr)/sizeof(messageStr[0]));
wsprintfW (str, messageStr, wine_driverW);
MessageBoxW (hDlg, str, NULL, MB_OK | MB_ICONERROR);
} }
} }
} }
@ -201,13 +212,13 @@ static void initAudioDeviceTree(HWND hDlg)
{ {
const AUDIO_DRIVER *pAudioDrv = NULL; const AUDIO_DRIVER *pAudioDrv = NULL;
int i, j; int i, j;
TVINSERTSTRUCT insert; TVINSERTSTRUCTW insert;
HTREEITEM root, driver[10]; HTREEITEM root, driver[10];
HWND tree = NULL; HWND tree = NULL;
HIMAGELIST hImageList; HIMAGELIST hImageList;
HBITMAP hBitMap; HBITMAP hBitMap;
HCURSOR old_cursor; HCURSOR old_cursor;
static TCHAR driver_typeT[] = {'S','o','u','n','d',' ','D','r','i','v','e','r','s',0}; WCHAR driver_type[64], dev_type[64];
tree = GetDlgItem(hDlg, IDC_AUDIO_TREE); tree = GetDlgItem(hDlg, IDC_AUDIO_TREE);
@ -225,12 +236,14 @@ static void initAudioDeviceTree(HWND hDlg)
SendMessageW( tree, TVM_SETIMAGELIST, TVSIL_STATE, (LPARAM)hImageList ); SendMessageW( tree, TVM_SETIMAGELIST, TVSIL_STATE, (LPARAM)hImageList );
/* root item */ /* root item */
LoadStringW (GetModuleHandle (NULL), IDS_SOUNDDRIVERS, driver_type,
sizeof(driver_type)/sizeof(driver_type[0]));
insert.hParent = TVI_ROOT; insert.hParent = TVI_ROOT;
insert.hInsertAfter = TVI_LAST; insert.hInsertAfter = TVI_LAST;
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = driver_typeT; insert.u.item.pszText = driver_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
root = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); root = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
/* change to the wait cursor because this can take a while if there is a /* change to the wait cursor because this can take a while if there is a
* misbehaving driver that takes a long time to open * misbehaving driver that takes a long time to open
@ -238,13 +251,14 @@ static void initAudioDeviceTree(HWND hDlg)
old_cursor = SetCursor(LoadCursor(0, IDC_WAIT)); old_cursor = SetCursor(LoadCursor(0, IDC_WAIT));
/* iterate over list of loaded drivers */ /* iterate over list of loaded drivers */
for (pAudioDrv = loadedAudioDrv, i = 0; *pAudioDrv->szName; i++, pAudioDrv++) { for (pAudioDrv = loadedAudioDrv, i = 0; pAudioDrv->nameID; i++, pAudioDrv++) {
HDRVR hdrv; HDRVR hdrv;
char name[MAX_PATH]; char name[MAX_PATH];
char text[MAX_PATH]; WCHAR text[MAX_PATH];
sprintf(name, "wine%s.drv", pAudioDrv->szDriver); sprintf(name, "wine%s.drv", pAudioDrv->szDriver);
sprintf(text, "%s Driver", pAudioDrv->szName); LoadStringW (GetModuleHandle (NULL), pAudioDrv->nameID, text,
sizeof(text)/sizeof(text[0]));
if ((hdrv = OpenDriverA(name, 0, 0))) if ((hdrv = OpenDriverA(name, 0, 0)))
{ {
@ -285,7 +299,7 @@ static void initAudioDeviceTree(HWND hDlg)
insert.u.item.stateMask = TVIS_STATEIMAGEMASK; insert.u.item.stateMask = TVIS_STATEIMAGEMASK;
insert.u.item.lParam = i + DRIVER_MASK; insert.u.item.lParam = i + DRIVER_MASK;
driver[i] = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); driver[i] = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
else else
{ {
@ -303,173 +317,167 @@ static void initAudioDeviceTree(HWND hDlg)
else else
insert.u.item.state = INDEXTOSTATEIMAGEMASK(1); insert.u.item.state = INDEXTOSTATEIMAGEMASK(1);
driver[i] = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); driver[i] = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
if (num_wod) if (num_wod)
{ {
TCHAR dev_typeT[] = {'W','a','v','e',' ','O','u','t',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_WAVEOUT, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_wod; j++) for (j = 0; j < num_wod; j++)
{ {
WAVEOUTCAPSW caps; WAVEOUTCAPSW caps;
char szPname[MAXPNAMELEN];
wodMessagePtr(j, WODM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); wodMessagePtr(j, WODM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
if (num_wid) if (num_wid)
{ {
TCHAR dev_typeT[] = {'W','a','v','e',' ','I','n',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_WAVEIN, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_wid; j++) for (j = 0; j < num_wid; j++)
{ {
WAVEINCAPSW caps; WAVEINCAPSW caps;
char szPname[MAXPNAMELEN];
widMessagePtr(j, WIDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); widMessagePtr(j, WIDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
if (num_mod) if (num_mod)
{ {
TCHAR dev_typeT[] = {'M','I','D','I',' ','O','u','t',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_MIDIOUT, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_mod; j++) for (j = 0; j < num_mod; j++)
{ {
MIDIOUTCAPSW caps; MIDIOUTCAPSW caps;
char szPname[MAXPNAMELEN];
modMessagePtr(j, MODM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); modMessagePtr(j, MODM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
if (num_mid) if (num_mid)
{ {
TCHAR dev_typeT[] = {'M','I','D','I',' ','I','n',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_MIDIIN, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_mid; j++) for (j = 0; j < num_mid; j++)
{ {
MIDIINCAPSW caps; MIDIINCAPSW caps;
char szPname[MAXPNAMELEN];
midMessagePtr(j, MIDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); midMessagePtr(j, MIDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
if (num_aux) if (num_aux)
{ {
TCHAR dev_typeT[] = {'A','u','x',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_AUX, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_aux; j++) for (j = 0; j < num_aux; j++)
{ {
AUXCAPSW caps; AUXCAPSW caps;
char szPname[MAXPNAMELEN];
auxMessagePtr(j, AUXDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); auxMessagePtr(j, AUXDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
if (num_mxd) if (num_mxd)
{ {
TCHAR dev_typeT[] = {'M','i','x','e','r',' ','D','e','v','i','c','e','s',0}; LoadStringW (GetModuleHandle (NULL), IDS_DEVICES_MIXER, dev_type,
sizeof(dev_type)/sizeof(dev_type[0]));
insert.hParent = driver[i]; insert.hParent = driver[i];
insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN; insert.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
insert.u.item.pszText = dev_typeT; insert.u.item.pszText = dev_type;
insert.u.item.cChildren = 1; insert.u.item.cChildren = 1;
type = (HTREEITEM)SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); type = (HTREEITEM)SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
for (j = 0; j < num_mxd; j++) for (j = 0; j < num_mxd; j++)
{ {
MIXERCAPSW caps; MIXERCAPSW caps;
char szPname[MAXPNAMELEN];
mxdMessagePtr(j, MXDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps)); mxdMessagePtr(j, MXDM_GETDEVCAPS, 0, (DWORD_PTR)&caps, sizeof(caps));
WideCharToMultiByte(CP_ACP, 0, caps.szPname, -1, szPname, MAXPNAMELEN, 0, 0);
insert.hParent = type; insert.hParent = type;
insert.u.item.mask = TVIF_TEXT | TVIF_PARAM; insert.u.item.mask = TVIF_TEXT | TVIF_PARAM;
insert.u.item.pszText = szPname; insert.u.item.pszText = caps.szPname;
insert.u.item.lParam = j + DEVICE_MASK; insert.u.item.lParam = j + DEVICE_MASK;
SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert); SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
} }
} }
} }
@ -502,7 +510,7 @@ static void findAudioDrivers(void)
*/ */
old_cursor = SetCursor(LoadCursor(0, IDC_WAIT)); old_cursor = SetCursor(LoadCursor(0, IDC_WAIT));
for (pAudioDrv = sAudioDrivers; *pAudioDrv->szName; pAudioDrv++) for (pAudioDrv = sAudioDrivers; pAudioDrv->nameID; pAudioDrv++)
{ {
if (strlen(pAudioDrv->szDriver)) if (strlen(pAudioDrv->szDriver))
{ {
@ -550,7 +558,7 @@ start_over:
while (token != NULL) while (token != NULL)
{ {
BOOL found = FALSE; BOOL found = FALSE;
for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++) for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
{ {
if (strcmp(token, pAudioDrv->szDriver) == 0) if (strcmp(token, pAudioDrv->szDriver) == 0)
{ {
@ -560,9 +568,19 @@ start_over:
} }
if (found == FALSE) if (found == FALSE)
{ {
char str[1024]; WCHAR tokenW[MAX_NAME_LENGTH+1];
sprintf(str, "Found driver in registry that in not available!\n\nRemove \"%s\" from registry?", token); WCHAR messageStr[256];
if (MessageBox(hDlg, str, "WARNING", MB_ICONWARNING | MB_YESNOCANCEL) == IDYES) WCHAR str[1024];
WCHAR caption[64];
MultiByteToWideChar (CP_ACP, 0, token, -1, tokenW, sizeof(tokenW)/sizeof(tokenW[0]));
LoadStringW (GetModuleHandle (NULL), IDS_UNAVAILABLE_DRIVER, messageStr,
sizeof(messageStr)/sizeof(messageStr[0]));
wsprintfW (str, messageStr, tokenW);
LoadStringW (GetModuleHandle (NULL), IDS_WARNING, caption,
sizeof(caption)/sizeof(caption[0]));
if (MessageBoxW (hDlg, str, caption, MB_ICONWARNING | MB_YESNOCANCEL) == IDYES)
{ {
removeDriver(token); removeDriver(token);
strcpy(tokens, curAudioDriver); strcpy(tokens, curAudioDriver);
@ -612,7 +630,7 @@ static void initAudioDlg (HWND hDlg)
const AUDIO_DRIVER *pAudioDrv = NULL; const AUDIO_DRIVER *pAudioDrv = NULL;
/* select oss if available */ /* select oss if available */
for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++) for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
{ {
if (strcmp(pAudioDrv->szDriver, "oss") == 0) if (strcmp(pAudioDrv->szDriver, "oss") == 0)
{ {
@ -624,7 +642,7 @@ static void initAudioDlg (HWND hDlg)
if (strlen(curAudioDriver) == 0) if (strlen(curAudioDriver) == 0)
{ {
/* select alsa if available */ /* select alsa if available */
for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++) for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
{ {
if (strcmp(pAudioDrv->szDriver, "alsa") == 0) if (strcmp(pAudioDrv->szDriver, "alsa") == 0)
{ {
@ -652,17 +670,20 @@ static void initAudioDlg (HWND hDlg)
initAudioDeviceTree(hDlg); initAudioDeviceTree(hDlg);
SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_RESETCONTENT, 0, 0); SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_RESETCONTENT, 0, 0);
for (i = 0; NULL != DSound_HW_Accels[i]; ++i) { for (i = 0; 0 != DSound_HW_Accels[i].displayID; ++i) {
SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_ADDSTRING, 0, (LPARAM) DSound_HW_Accels[i]); WCHAR accelStr[64];
LoadStringW (GetModuleHandle (NULL), DSound_HW_Accels[i].displayID, accelStr,
sizeof(accelStr)/sizeof(accelStr[0]));
SendDlgItemMessageW (hDlg, IDC_DSOUND_HW_ACCEL, CB_ADDSTRING, 0, (LPARAM)accelStr);
} }
buf = get_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", "Full"); buf = get_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", "Full");
for (i = 0; NULL != DSound_HW_Accels[i]; ++i) { for (i = 0; NULL != DSound_HW_Accels[i].settingStr; ++i) {
if (strcmp(buf, DSound_HW_Accels[i]) == 0) { if (strcmp(buf, DSound_HW_Accels[i].settingStr) == 0) {
SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_SETCURSEL, i, 0); SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_SETCURSEL, i, 0);
break ; break ;
} }
} }
if (NULL == DSound_HW_Accels[i]) { if (NULL == DSound_HW_Accels[i].settingStr) {
WINE_ERR("Invalid Direct Sound HW Accel read from registry (%s)\n", buf); WINE_ERR("Invalid Direct Sound HW Accel read from registry (%s)\n", buf);
} }
HeapFree(GetProcessHeap(), 0, buf); HeapFree(GetProcessHeap(), 0, buf);
@ -716,7 +737,8 @@ AudioDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
int selected_dsound_accel; int selected_dsound_accel;
SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0); SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
selected_dsound_accel = SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_GETCURSEL, 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]); set_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration",
DSound_HW_Accels[selected_dsound_accel].settingStr);
} }
break; break;
case IDC_DSOUND_RATES: case IDC_DSOUND_RATES:

View File

@ -56,7 +56,7 @@ typedef struct
typedef struct typedef struct
{ {
char szName[MAX_NAME_LENGTH]; UINT nameID;
char szDriver[MAX_NAME_LENGTH]; char szDriver[MAX_NAME_LENGTH];
} AUDIO_DRIVER; } AUDIO_DRIVER;

View File

@ -172,6 +172,28 @@
#define IDS_AUDIO_MISSING 1308 #define IDS_AUDIO_MISSING 1308
#define IDC_DSOUND_RATES 1309 #define IDC_DSOUND_RATES 1309
#define IDC_DSOUND_BITS 1310 #define IDC_DSOUND_BITS 1310
#define IDS_ACCEL_FULL 8300
#define IDS_ACCEL_STANDARD 8301
#define IDS_ACCEL_BASIC 8302
#define IDS_ACCEL_EMULATION 8303
#define IDS_DRIVER_ALSA 8304
#define IDS_DRIVER_ARTS 8305
#define IDS_DRIVER_ESOUND 8306
#define IDS_DRIVER_OSS 8307
#define IDS_DRIVER_JACK 8308
#define IDS_DRIVER_NAS 8309
#define IDS_DRIVER_AUDIOIO 8310
#define IDS_DRIVER_COREAUDIO 8311
#define IDS_OPEN_DRIVER_ERROR 8312
#define IDS_SOUNDDRIVERS 8313
#define IDS_DEVICES_WAVEOUT 8314
#define IDS_DEVICES_WAVEIN 8315
#define IDS_DEVICES_MIDIOUT 8316
#define IDS_DEVICES_MIDIIN 8317
#define IDS_DEVICES_AUX 8318
#define IDS_DEVICES_MIXER 8319
#define IDS_UNAVAILABLE_DRIVER 8320
#define IDS_WARNING 8321
/* desktop integration tab */ /* desktop integration tab */
#define IDC_THEME_COLORCOMBO 1401 #define IDC_THEME_COLORCOMBO 1401