From 1bc607cb66a0a643d953ac06953152cf8815826c Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 2 Feb 2011 15:24:09 +0000 Subject: 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 --- src/plugins/Input/flac/decoderflacfactory.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/plugins/Input/flac/decoderflacfactory.cpp') 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 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() << info; + } + if(fileName.endsWith(".flac", Qt::CaseInsensitive)) { flacFile = new TagLib::FLAC::File(fileName.toLocal8Bit ()); -- cgit v1.2.3-13-gbd6f