winecfg: audio: Use strings from resources

Frank Richter frank.richter at gmail.com
Fri Aug 18 22:19:57 CDT 2006



-------------- next part --------------
From 9b8160879cceb62510746767fcc5b41528dd26db Mon Sep 17 00:00:00 2001
From: Frank Richter frank.richter at gmail.com <frank.richter at gmail.com>
Date: Sat, 19 Aug 2006 05:18:59 +0200
Subject: [PATCH] winecfg: audio: Use strings from resources
---
 programs/winecfg/Bg.rc        |   26 ++++++
 programs/winecfg/De.rc        |   26 ++++++
 programs/winecfg/En.rc        |   26 ++++++
 programs/winecfg/Es.rc        |   26 ++++++
 programs/winecfg/Fi.rc        |   26 ++++++
 programs/winecfg/Fr.rc        |   26 ++++++
 programs/winecfg/Hu.rc        |   26 ++++++
 programs/winecfg/Ja.rc        |   26 ++++++
 programs/winecfg/Ko.rc        |   26 ++++++
 programs/winecfg/Nl.rc        |   26 ++++++
 programs/winecfg/No.rc        |   26 ++++++
 programs/winecfg/Ru.rc        |   26 ++++++
 programs/winecfg/Tr.rc        |   26 ++++++
 programs/winecfg/audio.c      |  190 +++++++++++++++++++++++------------------
 programs/winecfg/properties.h |    2 
 programs/winecfg/resource.h   |   22 +++++
 16 files changed, 467 insertions(+), 85 deletions(-)

diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index 9440958..e0f819b 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -254,3 +254,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index fd10280..74fef89 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -252,3 +252,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index c8b047f..c75869e 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -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"
 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
 /****************************************************************/
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index a9377dd..89702d6 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -248,3 +248,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index d3f99cb..56d211c 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -251,3 +251,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index ee9c558..2ff8e85 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -252,3 +252,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc
index 289ede2..d368115 100644
--- a/programs/winecfg/Hu.rc
+++ b/programs/winecfg/Hu.rc
@@ -248,3 +248,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index 15935a4..8e1396d 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -246,3 +246,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index c678180..32793df 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -255,3 +255,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index 1a73d04..2cf9d3f 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -253,3 +253,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index b69d79d..59a9d28 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -251,3 +251,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index 4cd4f4b..cb44a82 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -248,3 +248,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc
index 9345936..252b867 100644
--- a/programs/winecfg/Tr.rc
+++ b/programs/winecfg/Tr.rc
@@ -251,3 +251,29 @@ BEGIN
     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"
 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
diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c
index ce3664e..19f5df7 100644
--- a/programs/winecfg/audio.c
+++ b/programs/winecfg/audio.c
@@ -52,12 +52,16 @@ #define DEVICE_MASK 0x40000000
 
 typedef DWORD (WINAPI * MessagePtr)(UINT, UINT, DWORD, DWORD, DWORD);
 
-static const char* DSound_HW_Accels[] = {
-  "Full",
-  "Standard",
-  "Basic",
-  "Emulation",
-  NULL
+static struct DSOUNDACCEL
+{
+  UINT displayID;
+  const char* settingStr;
+} const DSound_HW_Accels[] = {
+  {IDS_ACCEL_FULL,      "Full"},
+  {IDS_ACCEL_STANDARD,  "Standard"},
+  {IDS_ACCEL_BASIC,     "Basic"},
+  {IDS_ACCEL_EMULATION, "Emulation"},
+  {0, 0}
 };
 
 static const char* DSound_Rates[] = {
@@ -77,16 +81,15 @@ static const char* DSound_Bits[] = {
 };
 
 static const AUDIO_DRIVER sAudioDrivers[] = {
-  {"ALSA", "alsa"},
-  {"aRts", "arts"},
-  {"EsounD", "esd"},
-  {"OSS", "oss"},
-  {"JACK", "jack"},
-  {"NAS", "nas"},
-  {"Audio IO(Solaris)", "audioio"},
-  {"CoreAudio", "coreaudio"},
-  {"Disable sound", ""},
-  {"", ""}
+  {IDS_DRIVER_ALSA,      "alsa"},
+  {IDS_DRIVER_ARTS,      "arts"},
+  {IDS_DRIVER_ESOUND,    "esd"},
+  {IDS_DRIVER_OSS,       "oss"},
+  {IDS_DRIVER_JACK,      "jack"},
+  {IDS_DRIVER_NAS,       "nas"},
+  {IDS_DRIVER_AUDIOIO,   "audioio"},
+  {IDS_DRIVER_COREAUDIO, "coreaudio"},
+  {0, ""}
 };
 
 /* list of available drivers */
@@ -106,7 +109,7 @@ static void configureAudioDriver(HWND hD
     if (strlen(pAudioDrv->szDriver) != 0)
     {
         HDRVR hdrvr;
-        char wine_driver[MAX_NAME_LENGTH + 8];
+        char wine_driver[MAX_NAME_LENGTH + 9];
         sprintf(wine_driver, "wine%s.drv", pAudioDrv->szDriver);
         hdrvr = OpenDriverA(wine_driver, 0, 0);
         if (hdrvr != 0)
@@ -124,9 +127,17 @@ static void configureAudioDriver(HWND hD
         }
         else
         {
-            char str[1024];
-            sprintf(str, "Couldn't open %s!", wine_driver);
-            MessageBox(hDlg, str, "Fixme", MB_OK | MB_ICONERROR);
+            WCHAR wine_driverW[MAX_NAME_LENGTH+9];
+            WCHAR messageStr[256];
+            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 hDl
 {
     const AUDIO_DRIVER *pAudioDrv = NULL;
     int i, j;
-    TVINSERTSTRUCT insert;
+    TVINSERTSTRUCTW insert;
     HTREEITEM root, driver[10];
     HWND tree = NULL;
     HIMAGELIST hImageList;
     HBITMAP hBitMap;
     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);
 
@@ -225,12 +236,14 @@ static void initAudioDeviceTree(HWND hDl
     SendMessageW( tree, TVM_SETIMAGELIST, TVSIL_STATE, (LPARAM)hImageList );
 
     /* root item */
+    LoadStringW (GetModuleHandle (NULL), IDS_SOUNDDRIVERS, driver_type,
+        sizeof(driver_type)/sizeof(driver_type[0]));
     insert.hParent = TVI_ROOT;
     insert.hInsertAfter = TVI_LAST;
     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;
-    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
      * misbehaving driver that takes a long time to open
@@ -238,13 +251,14 @@ static void initAudioDeviceTree(HWND hDl
     old_cursor = SetCursor(LoadCursor(0, IDC_WAIT));
 
     /* 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;
         char name[MAX_PATH];
-        char text[MAX_PATH];
+        WCHAR text[MAX_PATH];
 
         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)))
         {
@@ -285,7 +299,7 @@ static void initAudioDeviceTree(HWND hDl
                     insert.u.item.stateMask = TVIS_STATEIMAGEMASK;
                     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
                 {
@@ -303,173 +317,167 @@ static void initAudioDeviceTree(HWND hDl
                     else
                         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)
                     {
-                        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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             WAVEOUTCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert);
+                            SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
                         }
                     }
 
                     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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             WAVEINCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert);
+                            SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
                         }
                     }
 
                     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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             MIDIOUTCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert);
+                            SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
                         }
                     }
 
                     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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             MIDIINCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert);
+                            SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
                         }
                     }
 
                     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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             AUXCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            SendDlgItemMessage(hDlg, IDC_AUDIO_TREE, TVM_INSERTITEM, 0, (LPARAM)&insert);
+                            SendDlgItemMessageW (hDlg, IDC_AUDIO_TREE, TVM_INSERTITEMW, 0, (LPARAM)&insert);
                         }
                     }
 
                     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.u.item.mask = TVIF_TEXT | TVIF_CHILDREN;
-                        insert.u.item.pszText = dev_typeT;
+                        insert.u.item.pszText = dev_type;
                         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++)
                         {
                             MIXERCAPSW caps;
-                            char szPname[MAXPNAMELEN];
 
                             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.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;
 
-                            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));
 
-    for (pAudioDrv = sAudioDrivers; *pAudioDrv->szName; pAudioDrv++)
+    for (pAudioDrv = sAudioDrivers; pAudioDrv->nameID; pAudioDrv++)
     {
         if (strlen(pAudioDrv->szDriver))
         {
@@ -550,7 +558,7 @@ start_over:
     while (token != NULL)
     {
         BOOL found = FALSE;
-        for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++)
+        for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
         {
             if (strcmp(token, pAudioDrv->szDriver) == 0)
             {
@@ -560,9 +568,19 @@ start_over:
         }
         if (found == FALSE)
         {
-            char str[1024];
-            sprintf(str, "Found driver in registry that in not available!\n\nRemove \"%s\" from registry?", token);
-            if (MessageBox(hDlg, str, "WARNING", MB_ICONWARNING | MB_YESNOCANCEL) == IDYES)
+            WCHAR tokenW[MAX_NAME_LENGTH+1];
+            WCHAR messageStr[256];
+            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);
                 strcpy(tokens, curAudioDriver);
@@ -612,7 +630,7 @@ static void initAudioDlg (HWND hDlg)
         const AUDIO_DRIVER *pAudioDrv = NULL;
 
         /* select oss if available */
-        for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++)
+        for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
         {
             if (strcmp(pAudioDrv->szDriver, "oss") == 0)
             {
@@ -624,7 +642,7 @@ static void initAudioDlg (HWND hDlg)
         if (strlen(curAudioDriver) == 0)
         {
             /* select alsa if available */
-            for (pAudioDrv = loadedAudioDrv; *pAudioDrv->szName; pAudioDrv++)
+            for (pAudioDrv = loadedAudioDrv; pAudioDrv->nameID; pAudioDrv++)
             {
                 if (strcmp(pAudioDrv->szDriver, "alsa") == 0)
                 {
@@ -652,17 +670,20 @@ static void initAudioDlg (HWND hDlg)
     initAudioDeviceTree(hDlg);
 
     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]);
+    for (i = 0; 0 != DSound_HW_Accels[i].displayID; ++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");
-    for (i = 0; NULL != DSound_HW_Accels[i]; ++i) {
-      if (strcmp(buf, DSound_HW_Accels[i]) == 0) {
+    for (i = 0; NULL != DSound_HW_Accels[i].settingStr; ++i) {
+      if (strcmp(buf, DSound_HW_Accels[i].settingStr) == 0) {
 	SendDlgItemMessage(hDlg, IDC_DSOUND_HW_ACCEL, CB_SETCURSEL, i, 0);
 	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);
     }
     HeapFree(GetProcessHeap(), 0, buf);
@@ -716,7 +737,8 @@ AudioDlgProc (HWND hDlg, UINT uMsg, WPAR
 	      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]);
+	      set_reg_key(config_key, keypath("DirectSound"), "HardwareAcceleration", 
+	         DSound_HW_Accels[selected_dsound_accel].settingStr);
 	    }
 	    break;
           case IDC_DSOUND_RATES:
diff --git a/programs/winecfg/properties.h b/programs/winecfg/properties.h
index 078a95c..8ff17c6 100644
--- a/programs/winecfg/properties.h
+++ b/programs/winecfg/properties.h
@@ -56,7 +56,7 @@ typedef struct
 
 typedef struct
 {
-  char szName[MAX_NAME_LENGTH];
+  UINT nameID;
   char szDriver[MAX_NAME_LENGTH];
 } AUDIO_DRIVER;
 
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 0ee15f8..1fb5e88 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -172,6 +172,28 @@ #define IDB_DEVICE                      
 #define IDS_AUDIO_MISSING               1308
 #define IDC_DSOUND_RATES                1309
 #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 */
 #define IDC_THEME_COLORCOMBO            1401
-- 
1.4.1.1



More information about the wine-patches mailing list