aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playlistparser.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-26 05:02:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-11-26 05:02:51 +0000
commitb67a746b18fecb139bfbbd52635dcec56da06ac5 (patch)
tree2de7550fe960bd2dc28a8b004482a07e652427b0 /src/qmmpui/playlistparser.cpp
parent81ce1a88424aece4b638fd12c4ceb5b8cbadc2b7 (diff)
downloadqmmp-b67a746b18fecb139bfbbd52635dcec56da06ac5.tar.gz
qmmp-b67a746b18fecb139bfbbd52635dcec56da06ac5.tar.bz2
qmmp-b67a746b18fecb139bfbbd52635dcec56da06ac5.zip
added new api functions: PlayListParser::savePlayList and
PlayListParser::loadPlaylist git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3929 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playlistparser.cpp')
-rw-r--r--src/qmmpui/playlistparser.cpp51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/qmmpui/playlistparser.cpp b/src/qmmpui/playlistparser.cpp
index 52cfa5c9b..5e467a132 100644
--- a/src/qmmpui/playlistparser.cpp
+++ b/src/qmmpui/playlistparser.cpp
@@ -23,6 +23,7 @@
#include <QList>
#include <QDir>
#include <QApplication>
+#include <QTextStream>
#include <qmmp/qmmp.h>
#include "playlistformat.h"
#include "playlistparser.h"
@@ -78,6 +79,56 @@ PlayListFormat *PlayListParser::findByUrl(const QUrl &url)
return findByPath(path);
}
+void PlayListParser::savePlayList(QList<PlayListTrack *> tracks, const QString &f_name)
+{
+ if(tracks.isEmpty())
+ return;
+ PlayListFormat* prs = PlayListParser::findByPath(f_name);
+ if (!prs)
+ return;
+ QFile file(f_name);
+ if (file.open(QIODevice::WriteOnly))
+ {
+ QTextStream ts(&file);
+ ts << prs->encode(tracks);
+ file.close();
+ }
+ else
+ qWarning("PlayListParser: unable to save playlist, error: %s", qPrintable(file.errorString()));
+}
+
+QStringList PlayListParser::loadPlaylist(const QString &f_name)
+{
+ QStringList list;
+ if(!QFile::exists(f_name))
+ return list;
+ PlayListFormat* prs = PlayListParser::findByPath(f_name);
+ if(!prs)
+ return list;
+
+ QFile file(f_name);
+ if (!file.open(QIODevice::ReadOnly))
+ {
+ qWarning("PlayListParser: unable to open playlist, error: %s", qPrintable(file.errorString()));
+ return;
+ }
+
+ list = prs->decode(QTextStream(&file).readAll());
+ if(list.isEmpty())
+ qWarning("PlayListParser: error opening %s",qPrintable(f_name));
+
+ for (int i = 0; i < list.size(); ++i)
+ {
+ if(list.at(i).contains("://"))
+ continue;
+
+ if (QFileInfo(list.at(i)).isRelative())
+ list[i].prepend(QFileInfo(f_name).canonicalPath () + "/");
+ }
+ file.close();
+ return list;
+}
+
void PlayListParser::checkFormats()
{
if (m_formats)