aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2017-06-12 12:49:11 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2017-06-12 12:49:11 +0000
commitb45f600a4ecf9b3f6121a30794e9fcbbb2fee621 (patch)
treed746e7f60565bcf19f9489bedc9c850c8559242c /src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp
parent7a1dd2cf2c2b4b6c8bbdf3c3282feeef1be1cac1 (diff)
downloadqmmp-b45f600a4ecf9b3f6121a30794e9fcbbb2fee621.tar.gz
qmmp-b45f600a4ecf9b3f6121a30794e9fcbbb2fee621.tar.bz2
qmmp-b45f600a4ecf9b3f6121a30794e9fcbbb2fee621.zip
improved m3u support (#910)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7227 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp')
-rw-r--r--src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp b/src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp
index e436eaec3..eb3fc19d1 100644
--- a/src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp
+++ b/src/plugins/PlayListFormats/m3u/m3uplaylistformat.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2017 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -20,6 +20,7 @@
#include <QFileInfo>
#include <QtPlugin>
+#include <qmmpui/metadataformatter.h>
#include "m3uplaylistformat.h"
const PlayListFormatProperties M3UPlaylistFormat::properties() const
@@ -51,15 +52,26 @@ QStringList M3UPlaylistFormat::decode(const QString & contents)
return out;
}
-QString M3UPlaylistFormat::encode(const QList<PlayListTrack*> & contents)
+QString M3UPlaylistFormat::encode(const QList<PlayListTrack*> & contents, const QString &path)
{
QStringList out;
out << QString("#EXTM3U");
+ MetaDataFormatter formatter("%if(%p,%p - %t,%t)%if(%p|%t,,%f)");
+ QString m3uDir = QFileInfo(path).canonicalPath();
+
foreach(PlayListTrack* f,contents)
{
- QString info = "#EXTINF:" + QString::number(f->length()) + "," + f->value(Qmmp::TITLE);
+ QString info = "#EXTINF:" + QString::number(f->length()) + "," + formatter.format(f);
out.append(info);
- out.append(f->url());
+
+ if(!f->url().contains("://") && f->url().startsWith(m3uDir))
+ {
+ QString p = f->url();
+ p.remove(0, m3uDir.size() + 1);
+ out.append(p);
+ }
+ else
+ out.append(f->url());
}
return out.join("\n");
}