diff --git a/code/ryzom/tools/client/client_config_qt/src/sound_settings_widget.cpp b/code/ryzom/tools/client/client_config_qt/src/sound_settings_widget.cpp
index b820a696f..49348d38b 100644
--- a/code/ryzom/tools/client/client_config_qt/src/sound_settings_widget.cpp
+++ b/code/ryzom/tools/client/client_config_qt/src/sound_settings_widget.cpp
@@ -25,11 +25,16 @@ CSoundSettingsWidget::CSoundSettingsWidget( QWidget *parent ) :
setupUi( this );
load();
+ connect(autoRadioButton, SIGNAL(clicked(bool)), this, SLOT(onSomethingChanged()));
+ connect(openalRadioButton, SIGNAL(clicked(bool)), this, SLOT(onSomethingChanged()));
+ connect(fmodRadioButton, SIGNAL(clicked(bool)), this, SLOT(onSomethingChanged()));
+ connect(xaudio2RadioButton, SIGNAL(clicked(bool)), this, SLOT(onSomethingChanged()));
+ connect(directsoundRadioButton, SIGNAL(clicked(bool)), this, SLOT(onSomethingChanged()));
+
connect( tracksSlider, SIGNAL( valueChanged( int ) ), this, SLOT( onTracksSliderChange() ) );
connect( soundCheckBox, SIGNAL( clicked( bool ) ), this, SLOT( onSomethingChanged() ) );
connect( eaxCheckBox, SIGNAL( clicked( bool ) ), this, SLOT( onSomethingChanged() ) );
connect( softwareCheckBox, SIGNAL( clicked( bool ) ), this, SLOT( onSomethingChanged() ) );
- connect( fmodCheckBox, SIGNAL( clicked( bool ) ), this, SLOT( onSomethingChanged() ) );
}
CSoundSettingsWidget::~CSoundSettingsWidget()
@@ -64,8 +69,38 @@ void CSoundSettingsWidget::load()
updateTracksLabel();
- if( s.config.getString( "DriverSound" ).compare( "FMod" ) == 0 )
- fmodCheckBox->setChecked( true );
+ std::string soundDriver = NLMISC::toLower(s.config.getString("DriverSound"));
+
+#ifdef Q_OS_WIN32
+ fmodRadioButton->setEnabled(true);
+ xaudio2RadioButton->setEnabled(true);
+ directsoundRadioButton->setEnabled(true);
+#else
+ fmodRadioButton->setEnabled(false);
+ xaudio2RadioButton->setEnabled(false);
+ directsoundRadioButton->setEnabled(false);
+#endif
+
+ if (soundDriver.compare("openal") == 0)
+ {
+ openalRadioButton->setChecked(true);
+ }
+ else if (soundDriver.compare("fmod") == 0)
+ {
+ fmodRadioButton->setChecked(true);
+ }
+ else if (soundDriver.compare("xaudio2") == 0)
+ {
+ xaudio2RadioButton->setChecked(true);
+ }
+ else if (soundDriver.compare("directsound") == 0)
+ {
+ directsoundRadioButton->setChecked(true);
+ }
+ else
+ {
+ autoRadioButton->setChecked(true);
+ }
}
void CSoundSettingsWidget::save()
@@ -83,8 +118,18 @@ void CSoundSettingsWidget::save()
s.config.setInt( "MaxTrack", tracksSlider->value() * 4 );
- if( fmodCheckBox->isChecked() )
- s.config.setString( "DriverSound", std::string( "FMod" ) );
+ if (openalRadioButton->isChecked())
+ s.config.setString("DriverSound", std::string("OpenAL"));
+#ifdef Q_OS_WIN32
+ else if (fmodRadioButton->isChecked())
+ s.config.setString("DriverSound", std::string("FMod"));
+ else if (xaudio2RadioButton->isChecked())
+ s.config.setString("DriverSound", std::string("XAudio2"));
+ else if (directsoundRadioButton->isChecked())
+ s.config.setString("DriverSound", std::string("DirectSound"));
+#endif
+ else
+ s.config.setString("DriverSound", std::string("Auto"));
}
void CSoundSettingsWidget::updateTracksLabel()
diff --git a/code/ryzom/tools/client/client_config_qt/ui/sound_settings_widget.ui b/code/ryzom/tools/client/client_config_qt/ui/sound_settings_widget.ui
index dc973292a..37a9b0b92 100644
--- a/code/ryzom/tools/client/client_config_qt/ui/sound_settings_widget.ui
+++ b/code/ryzom/tools/client/client_config_qt/ui/sound_settings_widget.ui
@@ -6,147 +6,140 @@
0
0
- 391
- 429
+ 294
+ 317
Sound
-
- -
-
-
-
-
-
-
-
-
- Enable sound
-
-
-
- -
-
-
- Enable EAX
-
-
-
- -
-
-
- Enable FMod
-
-
-
- -
-
-
- Software sound buffer (may increase FPS)
-
-
-
- -
-
-
- Qt::Vertical
-
-
- QSizePolicy::Maximum
-
-
-
- 20
- 13
-
-
-
-
- -
-
-
- Sound tracks
-
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
- QSizePolicy::Maximum
-
-
-
- 20
- 18
-
-
-
-
- -
-
-
-
-
-
- 1
-
-
- 8
-
-
- 1
-
-
- 4
-
-
- 1
-
-
- Qt::Horizontal
-
-
-
- -
-
-
- 8 tracks
-
-
-
-
-
-
+
+ -
+
+
+ Driver
+
+
+
-
+
+
+ Auto
+
+
+
+ -
+
+
+ OpenAL
+
+
+
+ -
+
+
+ FMod
+
+
+
+ -
+
+
+ XAudio2
+
+
+
+ -
+
+
+ DirectSound
+
+
+
+
+
- -
-
-
- Qt::Horizontal
+
-
+
+
+ Parameters
-
-
- 180
- 20
-
-
-
-
- -
-
-
- Qt::Vertical
-
-
-
- 20
- 223
-
-
-
+
+
-
+
+
+ Enable sound
+
+
+
+ -
+
+
+ Enable EAX
+
+
+
+ -
+
+
+ Software sound buffer (may increase FPS)
+
+
+
+ -
+
+
+ Sound tracks
+
+
+
+ -
+
+
-
+
+
+ 1
+
+
+ 8
+
+
+ 1
+
+
+ 4
+
+
+ 1
+
+
+ Qt::Horizontal
+
+
+
+ -
+
+
+ 8 tracks
+
+
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+