aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/cue/decodercuefactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/cue/decodercuefactory.cpp')
-rw-r--r--src/plugins/Input/cue/decodercuefactory.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/plugins/Input/cue/decodercuefactory.cpp b/src/plugins/Input/cue/decodercuefactory.cpp
index 6befcca66..1bdeae7bd 100644
--- a/src/plugins/Input/cue/decodercuefactory.cpp
+++ b/src/plugins/Input/cue/decodercuefactory.cpp
@@ -63,10 +63,20 @@ Decoder *DecoderCUEFactory::create(const QString &path, QIODevice *input)
QList<FileInfo *> DecoderCUEFactory::createPlayList(const QString &fileName, bool useMetaData)
{
Q_UNUSED(useMetaData);
- if(!QFile::exists(fileName))
- return QList<FileInfo *>();
CUEParser parser(fileName);
- return parser.createPlayList();
+ if(fileName.contains("://"))
+ {
+ QList<FileInfo *> list;
+ int track = fileName.section("#", -1).toInt();
+ if (!parser.count() || track <= 0 || track > parser.count())
+ return list;
+ list = parser.createPlayList();
+ FileInfo *info = list.takeAt(track - 1);
+ qDeleteAll(list);
+ return QList<FileInfo *>() << info;
+ }
+ else
+ return parser.createPlayList();
}
MetaDataModel* DecoderCUEFactory::createMetaDataModel(const QString &path, QObject *parent)