diff options
| -rw-r--r-- | src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Input/ffmpeg/settingsdialog.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/Input/ffmpeg/settingsdialog.ui | 11 |
3 files changed, 24 insertions, 7 deletions
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp index 29379fb74..e9d0d1f64 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp @@ -92,8 +92,9 @@ bool DecoderFFmpegFactory::canDecode(QIODevice *i) const DecoderProperties DecoderFFmpegFactory::properties() const { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - QStringList filters; - filters << "*.wma" << "*.ape" << "*.tta" << "*.m4a" << "*.aac" << "*.ra" << "*.shn" << "*.vqf" << "*.ac3" << "*.tak"; + QStringList filters = { + "*.wma", "*.ape", "*.tta", "*.m4a", "*.aac", "*.ra", "*.shn", "*.vqf", "*.ac3", "*.tak", "*.dsf", "*.dsdiff" + }; filters = settings.value("FFMPEG/filters", filters).toStringList(); if(!avcodec_find_decoder(AV_CODEC_ID_WMAV1)) @@ -122,7 +123,11 @@ DecoderProperties DecoderFFmpegFactory::properties() const filters.removeAll("*.vqf"); if(!avcodec_find_decoder(AV_CODEC_ID_TAK)) filters.removeAll("*.tak"); - + if(!avcodec_find_decoder(AV_CODEC_ID_DSD_LSBF)) + { + filters.removeAll("*.dsf"); + filters.removeAll("*.dsdiff"); + } DecoderProperties properties; properties.name = tr("FFmpeg Plugin"); diff --git a/src/plugins/Input/ffmpeg/settingsdialog.cpp b/src/plugins/Input/ffmpeg/settingsdialog.cpp index e3c2ad22c..5c7bfb8d3 100644 --- a/src/plugins/Input/ffmpeg/settingsdialog.cpp +++ b/src/plugins/Input/ffmpeg/settingsdialog.cpp @@ -35,8 +35,9 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_ui.setupUi(this); setAttribute(Qt::WA_DeleteOnClose); QSettings settings(Qmmp::configFile(), QSettings::IniFormat); - QStringList filters; - filters << "*.wma" << "*.ape" << "*.tta" << "*.m4a" << "*.aac" << "*.ra" << "*.shn" << "*.vqf" << "*.ac3" << "*.tak"; + QStringList filters = { + "*.wma", "*.ape", "*.tta", "*.m4a", "*.aac", "*.ra", "*.shn", "*.vqf", "*.ac3", "*.tak", "*.dsf", "*.dsdiff" + }; filters = settings.value("FFMPEG/filters", filters).toStringList(); m_ui.wmaCheckBox->setEnabled(avcodec_find_decoder(AV_CODEC_ID_WMAV1)); @@ -65,6 +66,8 @@ SettingsDialog::SettingsDialog(QWidget *parent) m_ui.vqfCheckBox->setChecked(filters.contains("*.vqf") && avcodec_find_decoder(AV_CODEC_ID_TWINVQ)); m_ui.takCheckBox->setEnabled(avcodec_find_decoder(AV_CODEC_ID_TAK)); m_ui.takCheckBox->setChecked(filters.contains("*.tak") && avcodec_find_decoder(AV_CODEC_ID_TAK)); + m_ui.dsdCheckBox->setEnabled(avcodec_find_decoder(AV_CODEC_ID_DSD_LSBF)); + m_ui.dsdCheckBox->setChecked(filters.contains("*.dsd") && avcodec_find_decoder(AV_CODEC_ID_DSD_LSBF)); } SettingsDialog::~SettingsDialog() @@ -100,6 +103,8 @@ void SettingsDialog::accept() filters << "*.vqf"; if (m_ui.takCheckBox->isChecked()) filters << "*.tak"; + if (m_ui.dsdCheckBox->isChecked()) + filters << "*.dsf" << "*.dsdiff"; QSettings settings(Qmmp::configFile(), QSettings::IniFormat); settings.setValue("FFMPEG/filters", filters); QDialog::accept(); diff --git a/src/plugins/Input/ffmpeg/settingsdialog.ui b/src/plugins/Input/ffmpeg/settingsdialog.ui index ba601556a..0df5618c9 100644 --- a/src/plugins/Input/ffmpeg/settingsdialog.ui +++ b/src/plugins/Input/ffmpeg/settingsdialog.ui @@ -6,8 +6,8 @@ <rect> <x>0</x> <y>0</y> - <width>337</width> - <height>447</height> + <width>361</width> + <height>486</height> </rect> </property> <property name="windowTitle"> @@ -146,6 +146,13 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="dsdCheckBox"> + <property name="text"> + <string>Direct Stream Digital (DSD)</string> + </property> + </widget> + </item> </layout> </widget> </item> |
