Skip to content

Commit

Permalink
UI|Client: Added "Preferred Music" option, apply resampling rate changes
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Sep 2, 2013
1 parent 080302f commit 912eef9
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 2 deletions.
1 change: 1 addition & 0 deletions doomsday/client/include/audio/audiodriver_music.h
Expand Up @@ -30,6 +30,7 @@
#define LIBDENG_AUDIODRIVER_MUSIC_H

#include <de/str.h>
#include "dd_types.h"
#include "audiodriver.h"

#ifdef __cplusplus
Expand Down
4 changes: 3 additions & 1 deletion doomsday/client/include/ui/dialogs/audiosettingsdialog.h
Expand Up @@ -32,7 +32,9 @@ class AudioSettingsDialog : public DialogWidget
AudioSettingsDialog(de::String const &name = "audiosettings");

public slots:
void resetToDefaults();
void sampleRateChanged(uint);
void musicSourceChanged(uint);
void resetToDefaults();

private:
DENG2_PRIVATE(d)
Expand Down
32 changes: 31 additions & 1 deletion doomsday/client/src/ui/dialogs/audiosettingsdialog.cpp
Expand Up @@ -21,6 +21,7 @@
#include "ui/widgets/cvartogglewidget.h"
#include "ui/widgets/choicewidget.h"

#include "de_audio.h"
#include "con_main.h"
#include "SignalAction"

Expand All @@ -35,6 +36,7 @@ DENG_GUI_PIMPL(AudioSettingsDialog)
CVarToggleWidget *sound3D;
CVarToggleWidget *sound16bit;
ChoiceWidget *sampleRate;
ChoiceWidget *musicSource;
CVarToggleWidget *soundInfo;

Instance(Public *i) : Base(i)
Expand All @@ -47,6 +49,7 @@ DENG_GUI_PIMPL(AudioSettingsDialog)
area.add(sound3D = new CVarToggleWidget("sound-3d"));
area.add(sound16bit = new CVarToggleWidget("sound-16bit"));
area.add(sampleRate = new ChoiceWidget);
area.add(musicSource = new ChoiceWidget);
area.add(soundInfo = new CVarToggleWidget("sound-info"));
}

Expand All @@ -59,8 +62,8 @@ DENG_GUI_PIMPL(AudioSettingsDialog)
sound16bit->updateFromCVar();
soundInfo->updateFromCVar();

// Update the selected sample rate.
sampleRate->setSelected(sampleRate->items().findData(Con_GetInteger("sound-rate")));
musicSource->setSelected(musicSource->items().findData(Con_GetInteger("music-source")));
}
};

Expand Down Expand Up @@ -93,6 +96,21 @@ AudioSettingsDialog::AudioSettingsDialog(String const &name)
<< new ChoiceItem(tr("2x @ 22050 Hz"), 22050)
<< new ChoiceItem(tr("4x @ 44100 Hz"), 44100);

connect(d->sampleRate, SIGNAL(selectionChangedByUser(uint)),
this, SLOT(sampleRateChanged(uint)));

LabelWidget *musSrcLabel = new LabelWidget;
musSrcLabel->setText(tr("Preferred Music:"));
area().add(musSrcLabel);

d->musicSource->items()
<< new ChoiceItem(tr("MUS lumps"), MUSP_MUS)
<< new ChoiceItem(tr("External files"), MUSP_EXT)
<< new ChoiceItem(tr("CD"), MUSP_CD);

connect(d->musicSource, SIGNAL(selectionChangedByUser(uint)),
this, SLOT(musicSourceChanged(uint)));

d->soundInfo->setText(tr("Developer Info"));

// Layout.
Expand All @@ -103,6 +121,7 @@ AudioSettingsDialog::AudioSettingsDialog(String const &name)
<< *musicVolLabel << *d->musicVolume
<< *rvbVolLabel << *d->reverbVolume
<< Const(0) << *d->sound3D
<< *musSrcLabel << *d->musicSource
<< *rateLabel << *d->sampleRate
<< Const(0) << *d->sound16bit
<< Const(0) << *d->soundInfo;
Expand All @@ -117,6 +136,16 @@ AudioSettingsDialog::AudioSettingsDialog(String const &name)
d->fetch();
}

void AudioSettingsDialog::sampleRateChanged(uint)
{
Con_SetInteger("sound-rate", d->sampleRate->selectedItem().data().toInt());
}

void AudioSettingsDialog::musicSourceChanged(uint)
{
Con_SetInteger("music-source", d->musicSource->selectedItem().data().toInt());
}

void AudioSettingsDialog::resetToDefaults()
{
Con_SetInteger("sound-volume", 255 );
Expand All @@ -126,6 +155,7 @@ void AudioSettingsDialog::resetToDefaults()
Con_SetInteger("sound-rate", 11025);
Con_SetInteger("sound-16bit", 0 );
Con_SetInteger("sound-3d", 0 );
Con_SetInteger("music-source", MUSP_EXT);

d->fetch();
}

0 comments on commit 912eef9

Please sign in to comment.