This repository has been archived on 2025-02-27. You can view files and clone it, but cannot push or open issues or pull requests.
CnC_Renegade/Code/Commando/dlgconfigaudiotab.cpp

767 lines
22 KiB
C++
Raw Permalink Normal View History

/*
** Command & Conquer Renegade(tm)
** Copyright 2025 Electronic Arts Inc.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
/***********************************************************************************************
*** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S ***
***********************************************************************************************
* *
* Project Name : commando *
* *
* $Archive:: /Commando/Code/Commando/dlgconfigaudiotab.cpp $*
* *
* Author:: Patrick Smith *
* *
* $Modtime:: 1/25/02 7:12p $*
* *
* $Revision:: 11 $*
* *
*---------------------------------------------------------------------------------------------*
* Functions: *
* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
#include "dlgconfigaudiotab.h"
#include "resource.h"
#include "sliderctrl.h"
#include "wwaudio.h"
#include "comboboxctrl.h"
#include "listctrl.h"
#include "_globals.h"
#include "string_ids.h"
#include "translatedb.h"
#include "audiblesound.h"
#include "dialogmgr.h"
////////////////////////////////////////////////////////////////
//
// DlgConfigAudioTabClass
//
////////////////////////////////////////////////////////////////
DlgConfigAudioTabClass::DlgConfigAudioTabClass (void) :
InitialDeviceIndex (0),
InitialIsStereo (true),
InitialHertz (44100),
InitialBits (16),
SoundVolumeTestSound (NULL),
MusicVolumeTestSound (NULL),
DialogVolumeTestSound (NULL),
CinematicVolumeTestSound (NULL),
SoundVolumeTestSoundStartTime (0),
MusicVolumeTestSoundStartTime (0),
DialogVolumeTestSoundStartTime (0),
CinematicVolumeTestSoundStartTime (0),
ChildDialogClass (IDD_CONFIG_AUDIO)
{
SoundVolumeTestSound = WWAudioClass::Get_Instance ()->Create_Sound_Effect ("laser_rifle_fire_01.wav");
if (SoundVolumeTestSound != NULL) {
SoundVolumeTestSound->Set_Loop_Count (0);
SoundVolumeTestSound->Set_Type (AudibleSoundClass::TYPE_SOUND_EFFECT);
}
MusicVolumeTestSound = WWAudioClass::Get_Instance ()->Create_Sound_Effect ("sakura battle theme.mp3");
if (MusicVolumeTestSound != NULL) {
MusicVolumeTestSound->Set_Type (AudibleSoundClass::TYPE_MUSIC);
}
DialogVolumeTestSound = WWAudioClass::Get_Instance ()->Create_Sound_Effect ("m00s1_s1s1gbmg_snd.wav");
if (DialogVolumeTestSound != NULL) {
DialogVolumeTestSound->Set_Loop_Count (0);
DialogVolumeTestSound->Set_Type (AudibleSoundClass::TYPE_DIALOG);
}
CinematicVolumeTestSound = WWAudioClass::Get_Instance ()->Create_Sound_Effect ("00-n000e.wav");
if (CinematicVolumeTestSound != NULL) {
CinematicVolumeTestSound->Set_Loop_Count (0);
CinematicVolumeTestSound->Set_Type (AudibleSoundClass::TYPE_CINEMATIC);
}
return ;
}
////////////////////////////////////////////////////////////////
//
// ~DlgConfigAudioTabClass
//
////////////////////////////////////////////////////////////////
DlgConfigAudioTabClass::~DlgConfigAudioTabClass (void)
{
if (SoundVolumeTestSound != NULL) {
SoundVolumeTestSound->Stop ();
REF_PTR_RELEASE (SoundVolumeTestSound);
}
if (MusicVolumeTestSound != NULL) {
MusicVolumeTestSound->Stop ();
REF_PTR_RELEASE (MusicVolumeTestSound);
}
if (DialogVolumeTestSound != NULL) {
DialogVolumeTestSound->Stop ();
REF_PTR_RELEASE (DialogVolumeTestSound);
}
if (CinematicVolumeTestSound != NULL) {
CinematicVolumeTestSound->Stop ();
REF_PTR_RELEASE (CinematicVolumeTestSound);
}
return ;
}
////////////////////////////////////////////////////////////////
//
// On_Init_Dialog
//
////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::On_Init_Dialog (void)
{
ChildDialogClass::On_Init_Dialog ();
//
// Read the audio library's settings from the registry
//
bool is_stereo = WWAudioClass::Get_Instance ()->Get_Playback_Stereo ();
float sound_vol = WWAudioClass::Get_Instance ()->Get_Sound_Effects_Volume ();
float music_vol = WWAudioClass::Get_Instance ()->Get_Music_Volume ();
float dialog_vol = WWAudioClass::Get_Instance ()->Get_Dialog_Volume ();
float cinematic_vol = WWAudioClass::Get_Instance ()->Get_Cinematic_Volume ();
bool sound_on = WWAudioClass::Get_Instance ()->Are_Sound_Effects_On ();
bool music_on = WWAudioClass::Get_Instance ()->Is_Music_On ();
bool dialog_on = WWAudioClass::Get_Instance ()->Is_Dialog_On ();
bool cinematic_on = WWAudioClass::Get_Instance ()->Is_Cinematic_Sound_On ();
SliderCtrlClass *snd_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_SOUND_EFFECTS_SLIDER);
SliderCtrlClass *mus_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_MUSIC_SLIDER);
SliderCtrlClass *dia_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_DIALOG_SLIDER);
SliderCtrlClass *cin_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_CINEMATIC_SLIDER);
//
// Setup the sound volume controls
//
Check_Dlg_Button (IDC_SOUND_EFFECTS_CHECK, sound_on);
if (snd_vol_slider != NULL) {
snd_vol_slider->Set_Range (0, 100);
snd_vol_slider->Set_Pos (static_cast<int>(sound_vol * 100), false);
}
//
// Setup the music volume controls
//
Check_Dlg_Button (IDC_MUSIC_CHECK, music_on);
if (mus_vol_slider != NULL) {
mus_vol_slider->Set_Range (0, 100);
mus_vol_slider->Set_Pos (static_cast<int>(music_vol * 100), false);
}
//
// Setup the dialog volume controls
//
Check_Dlg_Button (IDC_DIALOG_CHECK, dialog_on);
if (dia_vol_slider != NULL) {
dia_vol_slider->Set_Range (0, 100);
dia_vol_slider->Set_Pos (static_cast<int>(dialog_vol * 100), false);
}
//
// Setup the dialog volume controls
//
Check_Dlg_Button (IDC_CINEMATIC_CHECK, cinematic_on);
if (cin_vol_slider != NULL) {
cin_vol_slider->Set_Range (0, 100);
cin_vol_slider->Set_Pos (static_cast<int>(cinematic_vol * 100), false);
}
//
// Check the stereo box if necessary
//
Check_Dlg_Button (IDC_STEREO_CHECK, is_stereo);
InitialIsStereo = is_stereo;
//
// Configure the comboboxes and list control
//
Configure_Quality_Combobox ();
Configure_Rate_Combobox ();
Configure_Speaker_Combobox ();
Configure_Driver_List ();
//
// Update the enabled state of the volume sliders
//
Update_Slider_Enable_State ();
return ;
}
/////////////////////////////////////////////////////////////////////////////
//
// Update_Slider_Enable_State
//
/////////////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Update_Slider_Enable_State (void)
{
bool sound_enabled = Is_Dlg_Button_Checked (IDC_SOUND_EFFECTS_CHECK);
bool music_enabled = Is_Dlg_Button_Checked (IDC_MUSIC_CHECK);
bool dialog_enabled = Is_Dlg_Button_Checked (IDC_DIALOG_CHECK);
bool cinematic_enabled = Is_Dlg_Button_Checked (IDC_CINEMATIC_CHECK);
//
// Enable the slider's based on the state of the check boxes
//
Enable_Dlg_Item (IDC_SOUND_EFFECTS_SLIDER, sound_enabled);
Enable_Dlg_Item (IDC_MUSIC_SLIDER, music_enabled);
Enable_Dlg_Item (IDC_DIALOG_SLIDER, dialog_enabled);
Enable_Dlg_Item (IDC_CINEMATIC_SLIDER, cinematic_enabled);
//
// Update the audio itself
//
WWAudioClass::Get_Instance ()->Allow_Sound_Effects (sound_enabled);
WWAudioClass::Get_Instance ()->Allow_Music (music_enabled);
WWAudioClass::Get_Instance ()->Allow_Dialog (dialog_enabled);
WWAudioClass::Get_Instance ()->Allow_Cinematic_Sound (cinematic_enabled);
return ;
}
//////////////////////////////////////////////////////////////////////
//
// Configure_Rate_Combobox
//
//////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Configure_Rate_Combobox (void)
{
ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_RATE_COMBO);
if (combo_box == NULL) {
return ;
}
//
// Add an entry for each locale to the combobox
//
combo_box->Add_String (TRANSLATE (IDS_SND_RATE_11));
combo_box->Add_String (TRANSLATE (IDS_SND_RATE_22));
combo_box->Add_String (TRANSLATE (IDS_SND_RATE_44));
InitialHertz = WWAudioClass::Get_Instance ()->Get_Playback_Rate ();
switch (InitialHertz)
{
case 11025:
combo_box->Set_Curr_Sel (0);
break;
case 22050:
combo_box->Set_Curr_Sel (1);
break;
default:
case 44100:
combo_box->Set_Curr_Sel (2);
break;
}
return ;
}
//////////////////////////////////////////////////////////////////////
//
// Configure_Speaker_Combobox
//
//////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Configure_Speaker_Combobox (void)
{
ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_SPEAKER_SETUP_COMBO);
if (combo_box == NULL) {
return ;
}
//
// Add an entry for each speaker type to the combobox
//
combo_box->Add_String (TRANSLATE (IDS_MENU_SPEAKER_2));
combo_box->Add_String (TRANSLATE (IDS_MENU_SPEAKER_HEADPHONE));
combo_box->Add_String (TRANSLATE (IDS_MENU_SPEAKER_SURROUND));
combo_box->Add_String (TRANSLATE (IDS_MENU_SPEAKER_4));
//
// Select the current setting
//
int type = WWAudioClass::Get_Instance ()->Get_Speaker_Type ();
switch (type)
{
default:
case AIL_3D_2_SPEAKER:
combo_box->Set_Curr_Sel (0);
break;
case AIL_3D_HEADPHONE:
combo_box->Set_Curr_Sel (1);
break;
case AIL_3D_SURROUND:
combo_box->Set_Curr_Sel (2);
break;
case AIL_3D_4_SPEAKER:
combo_box->Set_Curr_Sel (3);
break;
}
return ;
}
//////////////////////////////////////////////////////////////////////
//
// Configure_Quality_Combobox
//
//////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Configure_Quality_Combobox (void)
{
ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_QUALITY_COMBO);
if (combo_box == NULL) {
return ;
}
//
// Add an entry for each locale to the combobox
//
combo_box->Add_String (TRANSLATE (IDS_SND_8_BIT));
combo_box->Add_String (TRANSLATE (IDS_SND_16_BIT));
InitialBits = WWAudioClass::Get_Instance ()->Get_Playback_Bits ();
//
// Select the appropriate quality combobox entry
//
switch (InitialBits)
{
case 8:
combo_box->Set_Curr_Sel (0);
break;
default:
case 16:
combo_box->Set_Curr_Sel (1);
break;
}
return ;
}
//////////////////////////////////////////////////////////////////////
//
// On_Command
//
//////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::On_Command (int ctrl_id, int message_id, DWORD param)
{
switch (ctrl_id)
{
case IDC_SOUND_EFFECTS_CHECK:
case IDC_MUSIC_CHECK:
case IDC_DIALOG_CHECK:
case IDC_CINEMATIC_CHECK:
Update_Slider_Enable_State ();
break;
case IDC_DEFAULTS_BUTTON:
Set_Default_Volumes ();
break;
}
ChildDialogClass::On_Command (ctrl_id, message_id, param);
return ;
}
//////////////////////////////////////////////////////////////////////
//
// Configure_Driver_List
//
//////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Configure_Driver_List (void)
{
ListCtrlClass *list_ctrl = (ListCtrlClass *)Get_Dlg_Item (IDC_DRIVER_LIST);
if (list_ctrl == NULL) {
return ;
}
//
// Get the name of the current 3D driver
//
StringClass device_name = WWAudioClass::Get_Instance ()->Get_3D_Driver_Name ();
//
// Configure the column
//
list_ctrl->Add_Column (TRANSLATE (IDS_SND_DRIVER_COL), 1.0F, Vector3 (1, 1, 1));
//
// Loop over all the drivers
//
bool selected_default = false;
int driver_count = WWAudioClass::Get_Instance ()->Get_3D_Device_Count ();
for (int index = 0; index < driver_count; index ++) {
//
// Get information about this sound driver
//
WWAudioClass::DRIVER_INFO_STRUCT *driver_info = NULL;
if (WWAudioClass::Get_Instance ()->Get_3D_Device (index, &driver_info)) {
WideStringClass wide_driver_name;
wide_driver_name.Convert_From (driver_info->name);
//
// Add an entry to the list for this driver
//
int item_index = list_ctrl->Insert_Entry (index, wide_driver_name);
if (item_index >= 0) {
list_ctrl->Set_Entry_Data (item_index, 0, (DWORD)driver_info->driver);
//
// Select this entry if its the default
//
if (::lstrcmpi (device_name, driver_info->name) == 0) {
list_ctrl->Set_Curr_Sel (item_index);
selected_default = true;
}
}
}
}
//
// Select the first entry by default (if necessary)
//
if (selected_default == false) {
list_ctrl->Set_Curr_Sel (0);
}
//
// Record the initial device index so we don't have
// to recreate the device if its not necessary
//
InitialDeviceIndex = list_ctrl->Get_Curr_Sel ();
return ;
}
/////////////////////////////////////////////////////////////////////////////
//
// On_Apply
//
/////////////////////////////////////////////////////////////////////////////
bool
DlgConfigAudioTabClass::On_Apply (void)
{
StringClass device_name;
int hertz = 44100;
int bits = 16;
int speaker_type = 0;
bool is_stereo = true;
float sound_vol = 1.0F;
float music_vol = 1.0F;
float dialog_vol = 1.0F;
float cinematic_vol = 1.0F;
bool sound_on = true;
bool music_on = true;
bool dialog_on = true;
bool cinematic_on = true;
SliderCtrlClass *snd_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_SOUND_EFFECTS_SLIDER);
SliderCtrlClass *mus_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_MUSIC_SLIDER);
SliderCtrlClass *dia_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_DIALOG_SLIDER);
SliderCtrlClass *cin_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_CINEMATIC_SLIDER);
//
// Get the volume settings
//
sound_vol = snd_vol_slider->Get_Pos () / 100.0F;
music_vol = mus_vol_slider->Get_Pos () / 100.0F;
dialog_vol = dia_vol_slider->Get_Pos () / 100.0F;
cinematic_vol = cin_vol_slider->Get_Pos () / 100.0F;
//
// Setup the music volume controls
//
sound_on = Is_Dlg_Button_Checked (IDC_SOUND_EFFECTS_CHECK);
music_on = Is_Dlg_Button_Checked (IDC_MUSIC_CHECK);
dialog_on = Is_Dlg_Button_Checked (IDC_DIALOG_CHECK);
cinematic_on = Is_Dlg_Button_Checked (IDC_CINEMATIC_CHECK);
//
// Get the name of the selected device
//
ListCtrlClass *list_ctrl = (ListCtrlClass *)Get_Dlg_Item (IDC_DRIVER_LIST);
int device_index = list_ctrl->Get_Curr_Sel ();
if (device_index >= 0) {
WideStringClass wide_device_name = list_ctrl->Get_Entry_Text (device_index, 0);
wide_device_name.Convert_To (device_name);
}
//
// Get the stereo flag from the dialog
//
is_stereo = Is_Dlg_Button_Checked (IDC_STEREO_CHECK);
//
// Get the playback bit rate from the dialog
//
ComboBoxCtrlClass *combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_QUALITY_COMBO);
int quality_cursel = combo_box->Get_Curr_Sel ();
if (quality_cursel == 0) {
bits = 8;
} else if (quality_cursel == 1) {
bits = 16;
}
//
// Get the playback rate from the controls
//
combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_RATE_COMBO);
int rate_cursel = combo_box->Get_Curr_Sel ();
if (rate_cursel == 0) {
hertz = 11025;
} else if (rate_cursel == 1) {
hertz = 22050;
} else if (rate_cursel == 2) {
hertz = 44100;
}
//
// Get the playback rate from the controls
//
combo_box = (ComboBoxCtrlClass *)Get_Dlg_Item (IDC_SPEAKER_SETUP_COMBO);
speaker_type = combo_box->Get_Curr_Sel ();
//
// Store these settings in the registry
//
WWAudioClass::Get_Instance ()->Save_To_Registry (APPLICATION_SUB_KEY_NAME_SOUND,
device_name, is_stereo, bits, hertz, sound_on,
music_on, dialog_on, cinematic_on, sound_vol, music_vol,
dialog_vol, cinematic_vol, speaker_type);
//
// Don't change drivers unless necessary
//
if (InitialBits != bits || InitialHertz != hertz || InitialDeviceIndex != device_index || is_stereo != InitialIsStereo) {
WWAudioClass::Get_Instance ()->Open_2D_Device (is_stereo, bits, hertz);
WWAudioClass::Get_Instance ()->Select_3D_Device (device_name);
}
//
// Apply the simple changes
//
WWAudioClass::Get_Instance ()->Set_Sound_Effects_Volume (sound_vol);
WWAudioClass::Get_Instance ()->Set_Music_Volume (music_vol);
WWAudioClass::Get_Instance ()->Set_Dialog_Volume (dialog_vol);
WWAudioClass::Get_Instance ()->Set_Cinematic_Volume (cinematic_vol);
WWAudioClass::Get_Instance ()->Allow_Sound_Effects (sound_on);
WWAudioClass::Get_Instance ()->Allow_Music (music_on);
WWAudioClass::Get_Instance ()->Allow_Dialog (dialog_on);
WWAudioClass::Get_Instance ()->Allow_Cinematic_Sound (cinematic_on);
WWAudioClass::Get_Instance ()->Set_Speaker_Type (speaker_type);
return true;
}
/////////////////////////////////////////////////////////////////////////////
//
// On_SliderCtrl_Pos_Changed
//
/////////////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::On_SliderCtrl_Pos_Changed
(
SliderCtrlClass * slider_ctrl,
int ctrl_id,
int new_pos
)
{
if (ctrl_id == IDC_SOUND_EFFECTS_SLIDER) {
//
// Update the sound effects volume...
//
float sound_vol = slider_ctrl->Get_Pos () / 100.0F;
WWAudioClass::Get_Instance ()->Set_Sound_Effects_Volume (sound_vol);
//
// Start the sound effect sound playing
//
if ( SoundVolumeTestSound != NULL &&
(SoundVolumeTestSound->Is_Playing () == false || ((DialogMgrClass::Get_Time () - SoundVolumeTestSoundStartTime) > 150)))
{
SoundVolumeTestSound->Stop ();
SoundVolumeTestSound->Set_Loop_Count (0);
SoundVolumeTestSound->Play ();
//
// Record a time stamp for this sound...
//
SoundVolumeTestSoundStartTime = DialogMgrClass::Get_Time ();
}
} else if (ctrl_id == IDC_MUSIC_SLIDER) {
//
// Update the music volume...
//
float music_vol = slider_ctrl->Get_Pos () / 100.0F;
WWAudioClass::Get_Instance ()->Set_Music_Volume (music_vol);
//
// Start the music sound playing
//
if (MusicVolumeTestSound != NULL && MusicVolumeTestSound->Is_Playing () == false) {
MusicVolumeTestSound->Play ();
}
//
// Record a time stamp for this sound...
//
MusicVolumeTestSoundStartTime = DialogMgrClass::Get_Time ();
} else if (ctrl_id == IDC_DIALOG_SLIDER) {
//
// Update the dialog volume...
//
float dialog_vol = slider_ctrl->Get_Pos () / 100.0F;
WWAudioClass::Get_Instance ()->Set_Dialog_Volume (dialog_vol);
//
// Start the dialog effect sound playing
//
if (DialogVolumeTestSound != NULL) {
DialogVolumeTestSound->Set_Loop_Count (0);
DialogVolumeTestSound->Play ();
//
// Record a time stamp for this sound...
//
DialogVolumeTestSoundStartTime = DialogMgrClass::Get_Time ();
}
} else if (ctrl_id == IDC_CINEMATIC_SLIDER) {
//
// Update the dialog volume...
//
float cinematic_vol = slider_ctrl->Get_Pos () / 100.0F;
WWAudioClass::Get_Instance ()->Set_Cinematic_Volume (cinematic_vol);
//
// Start the dialog effect sound playing
//
if (CinematicVolumeTestSound != NULL) {
CinematicVolumeTestSound->Set_Loop_Count (0);
CinematicVolumeTestSound->Play ();
//
// Record a time stamp for this sound...
//
CinematicVolumeTestSoundStartTime = DialogMgrClass::Get_Time ();
}
}
return ;
}
/////////////////////////////////////////////////////////////////////////////
//
// On_Frame_Update
//
/////////////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::On_Frame_Update (void)
{
int curr_time = DialogMgrClass::Get_Time ();
//
// Stop the sound volume test sound if necessary
//
if (SoundVolumeTestSound != NULL && (curr_time - SoundVolumeTestSoundStartTime) > 500) {
SoundVolumeTestSound->Set_Loop_Count (1);
}
//
// Stop the sound volume test sound if necessary
//
if (MusicVolumeTestSound != NULL && (curr_time - MusicVolumeTestSoundStartTime) > 2000) {
MusicVolumeTestSound->Stop ();
}
//
// Stop the dialog test sound if necessary
//
if (DialogVolumeTestSound != NULL && (curr_time - DialogVolumeTestSoundStartTime) > 2000) {
DialogVolumeTestSound->Set_Loop_Count (1);
}
//
// Stop the cinematic test sound if necessary
//
if (CinematicVolumeTestSound != NULL && (curr_time - CinematicVolumeTestSoundStartTime) > 2000) {
CinematicVolumeTestSound->Set_Loop_Count (1);
}
ChildDialogClass::On_Frame_Update ();
return ;
}
/////////////////////////////////////////////////////////////////////////////
//
// Set_Default_Volumes
//
/////////////////////////////////////////////////////////////////////////////
void
DlgConfigAudioTabClass::Set_Default_Volumes (void)
{
int defaultmusicvolume, defaultsoundvolume, defaultdialogvolume, defaultcinematicvolume;
SliderCtrlClass *snd_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_SOUND_EFFECTS_SLIDER);
SliderCtrlClass *mus_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_MUSIC_SLIDER);
SliderCtrlClass *dia_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_DIALOG_SLIDER);
SliderCtrlClass *cin_vol_slider = (SliderCtrlClass *)Get_Dlg_Item (IDC_CINEMATIC_SLIDER);
// IML: Get the default settings from the audio system.
WWAudioClass::Get_Instance()->Load_Default_Volume (defaultmusicvolume, defaultsoundvolume, defaultdialogvolume, defaultcinematicvolume);
snd_vol_slider->Set_Pos (defaultsoundvolume);
mus_vol_slider->Set_Pos (defaultmusicvolume);
dia_vol_slider->Set_Pos (defaultdialogvolume);
cin_vol_slider->Set_Pos (defaultcinematicvolume);
return ;
}