aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/cue
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-01-17 17:52:35 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-01-17 17:52:35 +0000
commitf91f63b99f25d8a01dc1d211e31cc4f39c0476bf (patch)
tree9a72048abb609290caa56f61c3ae8a4983c1d230 /src/plugins/Input/cue
parenta5c350a7cd30d835deb6f7f2ef3b913b473725a2 (diff)
downloadqmmp-f91f63b99f25d8a01dc1d211e31cc4f39c0476bf.tar.gz
qmmp-f91f63b99f25d8a01dc1d211e31cc4f39c0476bf.tar.bz2
qmmp-f91f63b99f25d8a01dc1d211e31cc4f39c0476bf.zip
added feature to exclude cue data files
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4693 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/cue')
-rw-r--r--src/plugins/Input/cue/cueparser.cpp19
-rw-r--r--src/plugins/Input/cue/cueparser.h3
-rw-r--r--src/plugins/Input/cue/decodercuefactory.cpp7
-rw-r--r--src/plugins/Input/cue/decodercuefactory.h4
4 files changed, 27 insertions, 6 deletions
diff --git a/src/plugins/Input/cue/cueparser.cpp b/src/plugins/Input/cue/cueparser.cpp
index d326ce8b1..7383e4111 100644
--- a/src/plugins/Input/cue/cueparser.cpp
+++ b/src/plugins/Input/cue/cueparser.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2013 by Ilya Kotov *
+ * Copyright (C) 2008-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -213,6 +213,23 @@ const QString CUEParser::filePath(int track) const
return (track <= m_tracks.count()) ? m_tracks[track - 1]->file : QString();
}
+const QStringList CUEParser::dataFiles() const
+{
+ QStringList files;
+ for(int i = 0; i < m_tracks.count(); ++i)
+ {
+ if(i == 0)
+ {
+ files << m_tracks[i]->file;
+ continue;
+ }
+
+ if(files.last() != m_tracks[i]->file)
+ files.append(m_tracks[i]->file);
+ }
+ return files;
+}
+
qint64 CUEParser::offset(int track) const
{
return m_tracks.at(track - 1)->offset;
diff --git a/src/plugins/Input/cue/cueparser.h b/src/plugins/Input/cue/cueparser.h
index 55c04c20a..797f3ae23 100644
--- a/src/plugins/Input/cue/cueparser.h
+++ b/src/plugins/Input/cue/cueparser.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -40,6 +40,7 @@ public:
QList<FileInfo*> createPlayList();
const QString filePath(int track) const;
+ const QStringList dataFiles() const;
qint64 offset(int track) const;
qint64 length(int track) const;
int count() const;
diff --git a/src/plugins/Input/cue/decodercuefactory.cpp b/src/plugins/Input/cue/decodercuefactory.cpp
index 68ccc4fd4..a77190a2b 100644
--- a/src/plugins/Input/cue/decodercuefactory.cpp
+++ b/src/plugins/Input/cue/decodercuefactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2012 by Ilya Kotov *
+ * Copyright (C) 2008-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -60,7 +60,7 @@ Decoder *DecoderCUEFactory::create(const QString &path, QIODevice *input)
return new DecoderCUE(path);
}
-QList<FileInfo *> DecoderCUEFactory::createPlayList(const QString &fileName, bool useMetaData)
+QList<FileInfo *> DecoderCUEFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredPaths)
{
Q_UNUSED(useMetaData);
CUEParser parser(fileName);
@@ -76,7 +76,10 @@ QList<FileInfo *> DecoderCUEFactory::createPlayList(const QString &fileName, boo
return QList<FileInfo *>() << info;
}
else
+ {
+ ignoredPaths->append(parser.dataFiles());
return parser.createPlayList();
+ }
}
MetaDataModel* DecoderCUEFactory::createMetaDataModel(const QString &path, QObject *parent)
diff --git a/src/plugins/Input/cue/decodercuefactory.h b/src/plugins/Input/cue/decodercuefactory.h
index e5fadd935..0e146ccf5 100644
--- a/src/plugins/Input/cue/decodercuefactory.h
+++ b/src/plugins/Input/cue/decodercuefactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008-2009 by Ilya Kotov *
+ * Copyright (C) 2008-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -41,7 +41,7 @@ public:
bool canDecode(QIODevice *input) const;
const DecoderProperties properties() const;
Decoder *create(const QString &, QIODevice *);
- QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData);
+ QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredPaths);
MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0);
void showSettings(QWidget *parent);
void showAbout(QWidget *parent);