mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-10-02 05:50:16 -05:00
don't call QAudioOutput constructor unless sound is enabled
This commit is contained in:
@@ -191,6 +191,7 @@ void SettingsCache::setSoundEnabled(int _soundEnabled)
|
||||
{
|
||||
soundEnabled = _soundEnabled;
|
||||
settings->setValue("sound/enabled", soundEnabled);
|
||||
emit soundEnabledChanged();
|
||||
}
|
||||
|
||||
void SettingsCache::setSoundPath(const QString &_soundPath)
|
||||
|
||||
@@ -22,6 +22,7 @@ signals:
|
||||
void horizontalHandChanged();
|
||||
void invertVerticalCoordinateChanged();
|
||||
void minPlayersForMultiColumnLayoutChanged();
|
||||
void soundEnabledChanged();
|
||||
void soundPathChanged();
|
||||
void ignoreUnregisteredUsersChanged();
|
||||
private:
|
||||
|
||||
@@ -6,20 +6,14 @@
|
||||
#include <QBuffer>
|
||||
|
||||
SoundEngine::SoundEngine(QObject *parent)
|
||||
: QObject(parent)
|
||||
: QObject(parent), audio(0)
|
||||
{
|
||||
inputBuffer = new QBuffer;
|
||||
QAudioFormat format;
|
||||
format.setFrequency(44100);
|
||||
format.setChannels(1);
|
||||
format.setSampleSize(16);
|
||||
format.setCodec("audio/pcm");
|
||||
format.setByteOrder(QAudioFormat::LittleEndian);
|
||||
format.setSampleType(QAudioFormat::SignedInt);
|
||||
audio = new QAudioOutput(format, this);
|
||||
inputBuffer = new QBuffer(this);
|
||||
|
||||
connect(settingsCache, SIGNAL(soundPathChanged()), this, SLOT(cacheData()));
|
||||
connect(settingsCache, SIGNAL(soundEnabledChanged()), this, SLOT(soundEnabledChanged()));
|
||||
cacheData();
|
||||
soundEnabledChanged();
|
||||
}
|
||||
|
||||
void SoundEngine::cacheData()
|
||||
@@ -34,9 +28,29 @@ void SoundEngine::cacheData()
|
||||
}
|
||||
}
|
||||
|
||||
void SoundEngine::soundEnabledChanged()
|
||||
{
|
||||
if (settingsCache->getSoundEnabled()) {
|
||||
qDebug("SoundEngine: enabling sound");
|
||||
QAudioFormat format;
|
||||
format.setFrequency(44100);
|
||||
format.setChannels(1);
|
||||
format.setSampleSize(16);
|
||||
format.setCodec("audio/pcm");
|
||||
format.setByteOrder(QAudioFormat::LittleEndian);
|
||||
format.setSampleType(QAudioFormat::SignedInt);
|
||||
audio = new QAudioOutput(format, this);
|
||||
} else if (audio) {
|
||||
qDebug("SoundEngine: disabling sound");
|
||||
audio->stop();
|
||||
audio->deleteLater();
|
||||
audio = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void SoundEngine::playSound(const QString &fileName)
|
||||
{
|
||||
if (!settingsCache->getSoundEnabled())
|
||||
if (!audio)
|
||||
return;
|
||||
|
||||
audio->stop();
|
||||
|
||||
@@ -16,6 +16,7 @@ private:
|
||||
QAudioOutput *audio;
|
||||
private slots:
|
||||
void cacheData();
|
||||
void soundEnabledChanged();
|
||||
public:
|
||||
SoundEngine(QObject *parent = 0);
|
||||
public slots:
|
||||
|
||||
Reference in New Issue
Block a user