aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/flac/decoderflacfactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-02-02 15:24:09 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-02-02 15:24:09 +0000
commit1bc607cb66a0a643d953ac06953152cf8815826c (patch)
tree02e8d67d74cbffe4adb7b33517b46b754a6288db /src/plugins/Input/flac/decoderflacfactory.cpp
parent83d98a0ef5565a596342eabc21c357fb87eb5695 (diff)
downloadqmmp-1bc607cb66a0a643d953ac06953152cf8815826c.tar.gz
qmmp-1bc607cb66a0a643d953ac06953152cf8815826c.tar.bz2
qmmp-1bc607cb66a0a643d953ac06953152cf8815826c.zip
added possibility to save cue tracks inside playlist files
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2036 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/flac/decoderflacfactory.cpp')
-rw-r--r--src/plugins/Input/flac/decoderflacfactory.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp
index 33e97d1b4..d2797e09b 100644
--- a/src/plugins/Input/flac/decoderflacfactory.cpp
+++ b/src/plugins/Input/flac/decoderflacfactory.cpp
@@ -73,6 +73,27 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo
TagLib::FLAC::File *flacFile = 0;
TagLib::Ogg::FLAC::File *oggFlacFile = 0;
+ //extract metadata of one cue track
+ if(fileName.contains("://"))
+ {
+ QString path = QUrl(fileName).path();
+ path.replace(QString(QUrl::toPercentEncoding("#")), "#");
+ path.replace(QString(QUrl::toPercentEncoding("?")), "?");
+ path.replace(QString(QUrl::toPercentEncoding("%")), "%");
+ path.replace(QString(QUrl::toPercentEncoding(":")), ":");
+ int track = fileName.section("#", -1).toInt();
+ list = createPlayList(path, true);
+ if (list.isEmpty() || track <= 0 || track > list.count())
+ {
+ qDeleteAll(list);
+ list.clear();
+ return list;
+ }
+ FileInfo *info = list.takeAt(track - 1);
+ qDeleteAll(list);
+ return QList<FileInfo *>() << info;
+ }
+
if(fileName.endsWith(".flac", Qt::CaseInsensitive))
{
flacFile = new TagLib::FLAC::File(fileName.toLocal8Bit ());