diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/qmmp/outputwriter.cpp | 2 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.cpp | 12 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.h | 13 | ||||
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 9 | ||||
| -rw-r--r-- | src/qmmpui/forms/configdialog.ui | 47 |
5 files changed, 46 insertions, 37 deletions
diff --git a/src/qmmp/outputwriter.cpp b/src/qmmp/outputwriter.cpp index 8e78bb6c3..5c542e771 100644 --- a/src/qmmp/outputwriter.cpp +++ b/src/qmmp/outputwriter.cpp @@ -78,7 +78,7 @@ bool OutputWriter::initialize(quint32 freq, ChannelMap map) return false; } - if (!m_output->initialize(freq, map, Qmmp::PCM_S16LE)) + if (!m_output->initialize(freq, map, m_settings->outputFormat())) { qWarning("OutputWriter: unable to initialize output"); delete m_output; diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp index 497496cb9..333d388aa 100644 --- a/src/qmmp/qmmpsettings.cpp +++ b/src/qmmp/qmmpsettings.cpp @@ -42,7 +42,7 @@ QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent) settings.endGroup(); //audio settings m_aud_software_volume = settings.value("Output/software_volume", false).toBool(); - m_aud_16bit = settings.value("Output/use_16bit", false).toBool(); + m_aud_format = (Qmmp::AudioFormat) settings.value("Output/format", Qmmp::PCM_S16LE).toInt(); m_aud_dithering = settings.value("Output/dithering", true).toBool(); //cover settings settings.beginGroup("Cover"); @@ -107,9 +107,9 @@ bool QmmpSettings::useSoftVolume() const return m_aud_software_volume; } -bool QmmpSettings::use16BitOutput() const +Qmmp::AudioFormat QmmpSettings::outputFormat() const { - return m_aud_16bit; + return m_aud_format; } bool QmmpSettings::useDithering() const @@ -117,10 +117,10 @@ bool QmmpSettings::useDithering() const return m_aud_dithering; } -void QmmpSettings::setAudioSettings(bool soft_volume, bool use_16bit, bool use_dithering) +void QmmpSettings::setAudioSettings(bool soft_volume, Qmmp::AudioFormat format, bool use_dithering) { m_aud_software_volume = soft_volume; - m_aud_16bit = use_16bit; + m_aud_format = format; m_aud_dithering = use_dithering; m_timer->start(); emit audioSettingsChanged(); @@ -224,7 +224,7 @@ void QmmpSettings::sync() settings.endGroup(); //audio settings settings.setValue("Output/software_volume", m_aud_software_volume); - settings.setValue("Output/use_16bit", m_aud_16bit); + settings.setValue("Output/format", m_aud_format); settings.setValue("Output/dithering", m_aud_dithering); //cover settings settings.beginGroup("Cover"); diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h index af8b465fa..03714a289 100644 --- a/src/qmmp/qmmpsettings.h +++ b/src/qmmp/qmmpsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2010-2013 by Ilya Kotov * + * Copyright (C) 2010-2016 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -24,6 +24,7 @@ #include <QObject> #include <QUrl> #include <QStringList> +#include "qmmp.h" #include "eqsettings.h" class QTimer; @@ -83,9 +84,9 @@ public: */ bool useSoftVolume() const; /*! - * Returns \b true if 16-bit converter is enabled; otherwise returns \b false. + * Returns preferd output format. */ - bool use16BitOutput() const; + Qmmp::AudioFormat outputFormat() const; /*! * Returns \b true if dithering is enabled; otherwise returns \b false. */ @@ -93,10 +94,10 @@ public: /*! * Sets audio settings. * @param soft_volume State of software volume. - * @param use_16bit State of the 16-bit audio converter. + * @param format Preferd output format. Supported values: Qmmp::PCM_S16LE, Qmmp::PCM_S24LE, Qmmp::PCM_S32LE. * @param use_dithering Enable/Disable audio dithering. */ - void setAudioSettings(bool soft_volume, bool use_16bit, bool use_dithering); + void setAudioSettings(bool soft_volume, Qmmp::AudioFormat format, bool use_dithering); /*! * If \b include is \b true, this function returns include cover file name filters, * otherwise returns exclude filters. @@ -212,8 +213,8 @@ private: bool m_rg_prevent_clipping; //audio settings bool m_aud_software_volume; - bool m_aud_16bit; bool m_aud_dithering; + Qmmp::AudioFormat m_aud_format; //cover settings QStringList m_cover_inc; QStringList m_cover_exclude; diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index f84123621..4e3bb9cb2 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -69,6 +69,9 @@ ConfigDialog::ConfigDialog (QWidget *parent) : QDialog (parent) m_ui->replayGainModeComboBox->addItem (tr("Track"), QmmpSettings::REPLAYGAIN_TRACK); m_ui->replayGainModeComboBox->addItem (tr("Album"), QmmpSettings::REPLAYGAIN_ALBUM); m_ui->replayGainModeComboBox->addItem (tr("Disabled"), QmmpSettings::REPLAYGAIN_DISABLED); + m_ui->bitDepthComboBox->addItem("16", Qmmp::PCM_S16LE); + m_ui->bitDepthComboBox->addItem("24", Qmmp::PCM_S24LE); + m_ui->bitDepthComboBox->addItem("32", Qmmp::PCM_S32LE); readSettings(); loadPluginsInfo(); loadLanguages(); @@ -150,7 +153,7 @@ void ConfigDialog::readSettings() m_ui->defaultGainDoubleSpinBox->setValue(gs->replayGainDefaultGain()); //audio m_ui->softVolumeCheckBox->setChecked(gs->useSoftVolume()); - m_ui->use16BitCheckBox->setChecked(gs->use16BitOutput()); + m_ui->bitDepthComboBox->setCurrentIndex(m_ui->bitDepthComboBox->findData(gs->outputFormat())); m_ui->ditheringCheckBox->setChecked(gs->useDithering()); m_ui->bufferSizeSpinBox->setValue(gs->bufferSize()); //geometry @@ -409,7 +412,9 @@ void ConfigDialog::saveSettings() m_ui->preampDoubleSpinBox->value(), m_ui->defaultGainDoubleSpinBox->value(), m_ui->clippingCheckBox->isChecked()); - gs->setAudioSettings(m_ui->softVolumeCheckBox->isChecked(), m_ui->use16BitCheckBox->isChecked(), + i = m_ui->bitDepthComboBox->currentIndex(); + gs->setAudioSettings(m_ui->softVolumeCheckBox->isChecked(), + (Qmmp::AudioFormat)m_ui->bitDepthComboBox->itemData(i).toInt(), m_ui->ditheringCheckBox->isChecked()); gs->setBufferSize(m_ui->bufferSizeSpinBox->value()); gs->setDetermineFileTypeByContent(m_ui->byContentCheckBox->isChecked()); diff --git a/src/qmmpui/forms/configdialog.ui b/src/qmmpui/forms/configdialog.ui index 1cf7a46ff..55321fcff 100644 --- a/src/qmmpui/forms/configdialog.ui +++ b/src/qmmpui/forms/configdialog.ui @@ -758,6 +758,13 @@ <string>Audio</string> </property> <layout class="QGridLayout" name="gridLayout3"> + <item row="3" column="0" colspan="3"> + <widget class="QCheckBox" name="ditheringCheckBox"> + <property name="text"> + <string>Use dithering</string> + </property> + </widget> + </item> <item row="0" column="0"> <widget class="QLabel" name="label_20"> <property name="text"> @@ -793,39 +800,35 @@ </property> </widget> </item> - <item row="0" column="2"> - <spacer name="horizontalSpacer_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>266</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - <item row="1" column="0" colspan="3"> + <item row="2" column="0" colspan="3"> <widget class="QCheckBox" name="softVolumeCheckBox"> <property name="text"> <string>Use software volume control</string> </property> </widget> </item> - <item row="2" column="0" colspan="3"> - <widget class="QCheckBox" name="use16BitCheckBox"> + <item row="1" column="0"> + <widget class="QLabel" name="label_4"> <property name="text"> - <string>16-bit output</string> + <string>Output bit depth:</string> </property> </widget> </item> - <item row="3" column="0" colspan="3"> - <widget class="QCheckBox" name="ditheringCheckBox"> - <property name="text"> - <string>Use dithering</string> + <item row="1" column="1"> + <widget class="QComboBox" name="bitDepthComboBox"/> + </item> + <item row="0" column="2" rowspan="2"> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> - </widget> + <property name="sizeHint" stdset="0"> + <size> + <width>266</width> + <height>20</height> + </size> + </property> + </spacer> </item> </layout> </widget> |
