From b67a746b18fecb139bfbbd52635dcec56da06ac5 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 26 Nov 2013 05:02:51 +0000 Subject: 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 --- src/qmmpui/playlistparser.cpp | 51 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) (limited to 'src/qmmpui/playlistparser.cpp') 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 #include #include +#include #include #include "playlistformat.h" #include "playlistparser.h" @@ -78,6 +79,56 @@ PlayListFormat *PlayListParser::findByUrl(const QUrl &url) return findByPath(path); } +void PlayListParser::savePlayList(QList 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) -- cgit v1.2.3-13-gbd6f