aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-12-19 17:30:41 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-12-19 17:30:41 +0000
commite8d99698c23b1d8ac4a396635e9af60d52a12229 (patch)
tree00572f714497b467d5eb96524b1c8ada552b5734 /src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
parent5f99afc31569637ac29935b2073e943ac1c2414b (diff)
downloadqmmp-e8d99698c23b1d8ac4a396635e9af60d52a12229.tar.gz
qmmp-e8d99698c23b1d8ac4a396635e9af60d52a12229.tar.bz2
qmmp-e8d99698c23b1d8ac4a396635e9af60d52a12229.zip
more ffmpeg formats support (including ape); ffmpeg plugin settings
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@692 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp')
-rw-r--r--src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp36
1 files changed, 28 insertions, 8 deletions
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
index 22f16799e..7ed9d4b78 100644
--- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
+++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
@@ -19,6 +19,7 @@
***************************************************************************/
#include <QtGui>
+#include <QSettings>
extern "C"
{
@@ -41,6 +42,7 @@ extern "C"
}
#include "detailsdialog.h"
+#include "settingsdialog.h"
#include "decoder_ffmpeg.h"
#include "decoderffmpegfactory.h"
@@ -49,8 +51,15 @@ extern "C"
bool DecoderFFmpegFactory::supports(const QString &source) const
{
-
- return (source.right(4).toLower() == ".wma");
+ QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat);
+ QStringList filters = settings.value("FFMPEG/filters","*.wma").toStringList();
+ foreach(QString filter, filters)
+ {
+ QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
+ if (regexp.exactMatch(source))
+ return TRUE;
+ }
+ return FALSE;
}
bool DecoderFFmpegFactory::canDecode(QIODevice *) const
@@ -60,13 +69,15 @@ bool DecoderFFmpegFactory::canDecode(QIODevice *) const
const DecoderProperties DecoderFFmpegFactory::properties() const
{
+ QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat);
+ QStringList filters = settings.value("FFMPEG/filters","*.wma").toStringList();
DecoderProperties properties;
properties.name = tr("FFMPEG Plugin");
- properties.filter = "*.wma";
- properties.description = tr("WMA Files");
+ properties.filter = filters.join(" ");
+ properties.description = tr("FFMPEG Formats");
//properties.contentType = "";
properties.hasAbout = TRUE;
- properties.hasSettings = FALSE;
+ properties.hasSettings = TRUE;
properties.noInput = TRUE;
properties.protocols = "file";
return properties;
@@ -114,14 +125,23 @@ QObject* DecoderFFmpegFactory::showDetails(QWidget *parent, const QString &path)
return d;
}
-void DecoderFFmpegFactory::showSettings(QWidget *)
-{}
+void DecoderFFmpegFactory::showSettings(QWidget *parent)
+{
+ SettingsDialog *s = new SettingsDialog(parent);
+ s->show();
+}
void DecoderFFmpegFactory::showAbout(QWidget *parent)
{
QMessageBox::about (parent, tr("About FFmpeg Audio Plugin"),
tr("Qmmp FFmpeg Audio Plugin")+"\n"+
- tr("Suppored formats: WMA")+"\n"+
+ QString(tr("Compiled against libavformat-%1.%2.%3 and libavcodec-%4.%5.%6"))
+ .arg(LIBAVFORMAT_VERSION_MAJOR)
+ .arg(LIBAVFORMAT_VERSION_MINOR)
+ .arg(LIBAVFORMAT_VERSION_MICRO)
+ .arg(LIBAVCODEC_VERSION_MAJOR)
+ .arg(LIBAVCODEC_VERSION_MINOR)
+ .arg(LIBAVCODEC_VERSION_MICRO)+"\n"+
tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>"));
}