diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-21 19:06:38 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2020-02-21 19:06:38 +0000 |
| commit | 2ae491146e17b34e3a3973d96289e136ff0c4002 (patch) | |
| tree | 0fa2138032fc67adc9a69f91c98f282461bfe434 | |
| parent | 94d94622cb6067a073833b1e4afe306878a1e584 (diff) | |
| download | qmmp-2ae491146e17b34e3a3973d96289e136ff0c4002.tar.gz qmmp-2ae491146e17b34e3a3973d96289e136ff0c4002.tar.bz2 qmmp-2ae491146e17b34e3a3973d96289e136ff0c4002.zip | |
feature to display average bitrate (#1032)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@9239 90c681e8-e032-0410-971d-27865f9a5e38
| -rw-r--r-- | src/qmmp/outputwriter.cpp | 7 | ||||
| -rw-r--r-- | src/qmmp/outputwriter_p.h | 1 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.cpp | 14 | ||||
| -rw-r--r-- | src/qmmp/qmmpsettings.h | 12 | ||||
| -rw-r--r-- | src/qmmpui/configdialog.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/forms/configdialog.ui | 19 |
6 files changed, 48 insertions, 7 deletions
diff --git a/src/qmmp/outputwriter.cpp b/src/qmmp/outputwriter.cpp index 64a2fd1a5..4eb6c4b46 100644 --- a/src/qmmp/outputwriter.cpp +++ b/src/qmmp/outputwriter.cpp @@ -71,6 +71,7 @@ bool OutputWriter::initialize(quint32 freq, ChannelMap map) m_chan_map = m_output->channelMap(); m_channels = m_chan_map.count(); m_format = m_output->format(); + m_abr = m_settings->averageBitrate(); qDebug("OutputWriter: [%s] %s ==> %s", qPrintable(Output::currentFactory()->properties().shortName), @@ -269,10 +270,14 @@ void OutputWriter::run() { if((b = recycler()->next())) { - if(b->rate) + if(b->rate && !m_abr) m_kbps = b->rate; if(b->trackInfo) + { m_output->setTrackInfo(*b->trackInfo); + if(m_abr) + m_kbps = b->trackInfo->value(Qmmp::BITRATE).toInt(); + } } } diff --git a/src/qmmp/outputwriter_p.h b/src/qmmp/outputwriter_p.h index 379e12019..6989d40c8 100644 --- a/src/qmmp/outputwriter_p.h +++ b/src/qmmp/outputwriter_p.h @@ -112,6 +112,7 @@ private: std::atomic_bool m_finish = ATOMIC_VAR_INIT(false); bool m_paused = false; bool m_useEq = false; + bool m_abr = false; qint64 m_totalWritten = 0, m_currentMilliseconds = -1; QmmpSettings *m_settings; Output *m_output = nullptr; diff --git a/src/qmmp/qmmpsettings.cpp b/src/qmmp/qmmpsettings.cpp index a078d0613..612e94fe6 100644 --- a/src/qmmp/qmmpsettings.cpp +++ b/src/qmmp/qmmpsettings.cpp @@ -45,6 +45,7 @@ QmmpSettings::QmmpSettings(QObject *parent) : QObject(parent) m_aud_format = static_cast<Qmmp::AudioFormat>(settings.value("Output/format", Qmmp::PCM_S16LE).toInt()); m_aud_dithering = settings.value("Output/dithering", true).toBool(); m_volume_step = settings.value("Output/volume_step", 5).toInt(); + m_average_bitrate = settings.value("Output/average_bitrate", false).toBool(); //cover settings settings.beginGroup("Cover"); m_cover_inc = settings.value("include", (QStringList() << "*.jpg" << "*.png")).toStringList(); @@ -230,6 +231,18 @@ int QmmpSettings::volumeStep() const return m_volume_step; } +void QmmpSettings::setAverageBitrate(bool enabled) +{ + m_average_bitrate = enabled; + m_timer->start(); + emit audioSettingsChanged(); +} + +bool QmmpSettings::averageBitrate() const +{ + return m_average_bitrate; +} + void QmmpSettings::sync() { qDebug("%s", Q_FUNC_INFO); @@ -246,6 +259,7 @@ void QmmpSettings::sync() settings.setValue("Output/format", m_aud_format); settings.setValue("Output/dithering", m_aud_dithering); settings.setValue("Output/volume_step", m_volume_step); + settings.setValue("Output/average_bitrate", m_average_bitrate); //cover settings settings.beginGroup("Cover"); settings.setValue("include", m_cover_inc); diff --git a/src/qmmp/qmmpsettings.h b/src/qmmp/qmmpsettings.h index 7a4f9c785..76f665fca 100644 --- a/src/qmmp/qmmpsettings.h +++ b/src/qmmp/qmmpsettings.h @@ -186,6 +186,17 @@ public: */ int volumeStep() const; /*! + * Enables/Disables average bitrate displaying. + * @param enabled State of the average bitrate displaying + * (\b true - enabled, \b false - disabled). This function emits + * \b audioSettingsChanged() signal. + */ + void setAverageBitrate(bool enabled); + /*! + * Returns \b true if average bitrate displaying is enabled, otherwise returns \b false + */ + bool averageBitrate() const; + /*! * Enables/Disables file type determination by content. * @param enabled State of the content based type determination. * (\b true - enabled, \b false - disabled). @@ -239,6 +250,7 @@ private: bool m_aud_dithering; Qmmp::AudioFormat m_aud_format; int m_volume_step; + bool m_average_bitrate; //cover settings QStringList m_cover_inc; QStringList m_cover_exclude; diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp index 860ad80f5..60c701d11 100644 --- a/src/qmmpui/configdialog.cpp +++ b/src/qmmpui/configdialog.cpp @@ -162,6 +162,7 @@ void ConfigDialog::readSettings() m_ui->bitDepthComboBox->setCurrentIndex(m_ui->bitDepthComboBox->findData(gs->outputFormat())); m_ui->ditheringCheckBox->setChecked(gs->useDithering()); m_ui->bufferSizeSpinBox->setValue(gs->bufferSize()); + m_ui->abrCheckBox->setChecked(gs->averageBitrate()); //equalizer m_ui->twoPassEqCheckBox->setChecked(gs->eqSettings().twoPasses()); //geometry @@ -425,6 +426,7 @@ void ConfigDialog::saveSettings() gs->setAudioSettings(m_ui->softVolumeCheckBox->isChecked(), (Qmmp::AudioFormat)m_ui->bitDepthComboBox->itemData(i).toInt(), m_ui->ditheringCheckBox->isChecked()); + gs->setAverageBitrate(m_ui->abrCheckBox->isChecked()); gs->setBufferSize(m_ui->bufferSizeSpinBox->value()); gs->setDetermineFileTypeByContent(m_ui->byContentCheckBox->isChecked()); gs->setVolumeStep(m_ui->volumeStepSpinBox->value()); diff --git a/src/qmmpui/forms/configdialog.ui b/src/qmmpui/forms/configdialog.ui index 0960b807a..9bc4d8cc6 100644 --- a/src/qmmpui/forms/configdialog.ui +++ b/src/qmmpui/forms/configdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>640</width> - <height>489</height> + <width>739</width> + <height>545</height> </rect> </property> <property name="windowTitle"> @@ -341,15 +341,15 @@ <property name="title"> <string>Look and Feel</string> </property> - <layout class="QHBoxLayout" name="horizontalLayout"> - <item> + <layout class="QGridLayout" name="gridLayout_2"> + <item row="0" column="0"> <widget class="QLabel" name="label_10"> <property name="text"> <string>Language:</string> </property> </widget> </item> - <item> + <item row="0" column="1"> <widget class="QComboBox" name="langComboBox"> <property name="sizePolicy"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> @@ -359,7 +359,7 @@ </property> </widget> </item> - <item> + <item row="0" column="2"> <spacer name="horizontalSpacer_2"> <property name="orientation"> <enum>Qt::Horizontal</enum> @@ -375,6 +375,13 @@ </property> </spacer> </item> + <item row="1" column="0" colspan="3"> + <widget class="QCheckBox" name="abrCheckBox"> + <property name="text"> + <string>Display average bitrate</string> + </property> + </widget> + </item> </layout> </widget> </item> |
