diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-01-17 17:52:35 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-01-17 17:52:35 +0000 |
| commit | f91f63b99f25d8a01dc1d211e31cc4f39c0476bf (patch) | |
| tree | 9a72048abb609290caa56f61c3ae8a4983c1d230 | |
| parent | a5c350a7cd30d835deb6f7f2ef3b913b473725a2 (diff) | |
| download | qmmp-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
40 files changed, 151 insertions, 96 deletions
diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.cpp b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp index 8db5dbe8d..8449fb411 100644 --- a/src/plugins/Engines/mplayer/mplayerenginefactory.cpp +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.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 * @@ -58,7 +58,7 @@ AbstractEngine *MplayerEngineFactory::create(QObject *parent) return new MplayerEngine(parent); } -QList<FileInfo *> MplayerEngineFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> MplayerEngineFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { Q_UNUSED(useMetaData); QList<FileInfo *> info; diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.h b/src/plugins/Engines/mplayer/mplayerenginefactory.h index 436b38900..960399ec5 100644 --- a/src/plugins/Engines/mplayer/mplayerenginefactory.h +++ b/src/plugins/Engines/mplayer/mplayerenginefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2009 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -33,13 +33,13 @@ class MplayerEngineFactory : public QObject, EngineFactory { Q_OBJECT -Q_INTERFACES(EngineFactory); +Q_INTERFACES(EngineFactory) public: const EngineProperties properties() const; bool supports(const QString &source) const; AbstractEngine *create(QObject *parent = 0); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/aac/decoderaacfactory.cpp b/src/plugins/Input/aac/decoderaacfactory.cpp index d054def12..38a9467c8 100644 --- a/src/plugins/Input/aac/decoderaacfactory.cpp +++ b/src/plugins/Input/aac/decoderaacfactory.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 * @@ -58,7 +58,7 @@ Decoder *DecoderAACFactory::create(const QString &, QIODevice *input) return new DecoderAAC(input); } -QList<FileInfo *> DecoderAACFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderAACFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { FileInfo *info = new FileInfo(fileName); diff --git a/src/plugins/Input/aac/decoderaacfactory.h b/src/plugins/Input/aac/decoderaacfactory.h index d306b35ce..40189858d 100644 --- a/src/plugins/Input/aac/decoderaacfactory.h +++ b/src/plugins/Input/aac/decoderaacfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2012 by Ilya Kotov * + * Copyright (C) 2006-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 *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/cdaudio/decodercdaudiofactory.cpp b/src/plugins/Input/cdaudio/decodercdaudiofactory.cpp index 64d03ecad..0dc7bf75d 100644 --- a/src/plugins/Input/cdaudio/decodercdaudiofactory.cpp +++ b/src/plugins/Input/cdaudio/decodercdaudiofactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2013 by Ilya Kotov * + * Copyright (C) 2009-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -57,7 +57,7 @@ Decoder *DecoderCDAudioFactory::create(const QString &url, QIODevice *input) return new DecoderCDAudio(url); } -QList<FileInfo *> DecoderCDAudioFactory::createPlayList(const QString &url, bool useMetaData) +QList<FileInfo *> DecoderCDAudioFactory::createPlayList(const QString &url, bool useMetaData, QStringList *) { Q_UNUSED(useMetaData); QList <FileInfo*> list; diff --git a/src/plugins/Input/cdaudio/decodercdaudiofactory.h b/src/plugins/Input/cdaudio/decodercdaudiofactory.h index a63ea94d3..1227dfb37 100644 --- a/src/plugins/Input/cdaudio/decodercdaudiofactory.h +++ b/src/plugins/Input/cdaudio/decodercdaudiofactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2013 by Ilya Kotov * + * Copyright (C) 2009-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -38,7 +38,7 @@ public: bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &, QIODevice *); - QList<FileInfo *> createPlayList(const QString &url, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &url, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); 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); diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp index 397b9e6e4..296c48381 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 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 * @@ -185,7 +185,7 @@ Decoder *DecoderFFmpegFactory::create(const QString &path, QIODevice *input) return new DecoderFFmpeg(path, input); } -QList<FileInfo *> DecoderFFmpegFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderFFmpegFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { QList <FileInfo*> list; AVFormatContext *in = 0; diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.h b/src/plugins/Input/ffmpeg/decoderffmpegfactory.h index 3848b98df..bca54e7e9 100644 --- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.h +++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2013 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -42,7 +42,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 *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp index af7b00dcf..c2af6a06c 100644 --- a/src/plugins/Input/flac/decoderflacfactory.cpp +++ b/src/plugins/Input/flac/decoderflacfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 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 * @@ -73,7 +73,7 @@ Decoder *DecoderFLACFactory::create(const QString &path, QIODevice *i) return new DecoderFLAC(path, i); } -QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredFiles) { QList <FileInfo*> list; TagLib::Ogg::XiphComment *tag = 0; @@ -89,7 +89,7 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo path.remove("flac://"); path.remove(QRegExp("#\\d+$")); int track = fileName.section("#", -1).toInt(); - list = createPlayList(path, true); + list = createPlayList(path, true, ignoredFiles); if (list.isEmpty() || track <= 0 || track > list.count()) { qDeleteAll(list); diff --git a/src/plugins/Input/flac/decoderflacfactory.h b/src/plugins/Input/flac/decoderflacfactory.h index 39310edd2..addada2c7 100644 --- a/src/plugins/Input/flac/decoderflacfactory.h +++ b/src/plugins/Input/flac/decoderflacfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2008 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -33,14 +33,14 @@ class DecoderFLACFactory : public QObject, DecoderFactory { Q_OBJECT -Q_INTERFACES(DecoderFactory); +Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; 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 *ignoredFiles); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/gme/decodergmefactory.cpp b/src/plugins/Input/gme/decodergmefactory.cpp index 0858b35ec..e2ef81cdc 100644 --- a/src/plugins/Input/gme/decodergmefactory.cpp +++ b/src/plugins/Input/gme/decodergmefactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2010-2013 by Ilya Kotov * + * Copyright (C) 2010-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -64,7 +64,7 @@ Decoder *DecoderGmeFactory::create(const QString &path, QIODevice *input) return new DecoderGme(path); } -QList<FileInfo *> DecoderGmeFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderGmeFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredFiles) { QList <FileInfo*> list; GmeHelper helper; @@ -75,7 +75,7 @@ QList<FileInfo *> DecoderGmeFactory::createPlayList(const QString &fileName, boo path.remove("gme://"); path.remove(QRegExp("#\\d+$")); int track = fileName.section("#", -1).toInt(); - list = createPlayList(path, true); + list = createPlayList(path, true, ignoredFiles); if (list.isEmpty() || track <= 0 || track > list.count()) { qDeleteAll(list); diff --git a/src/plugins/Input/gme/decodergmefactory.h b/src/plugins/Input/gme/decodergmefactory.h index a3612685d..ae5b4c8aa 100644 --- a/src/plugins/Input/gme/decodergmefactory.h +++ b/src/plugins/Input/gme/decodergmefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2010 by Ilya Kotov * + * Copyright (C) 2010-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -36,14 +36,14 @@ class DecoderGmeFactory : public QObject, DecoderFactory { Q_OBJECT - Q_INTERFACES(DecoderFactory); + Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredFiles); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/mad/decodermadfactory.cpp b/src/plugins/Input/mad/decodermadfactory.cpp index c1457c29f..265ced841 100644 --- a/src/plugins/Input/mad/decodermadfactory.cpp +++ b/src/plugins/Input/mad/decodermadfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 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 * @@ -122,7 +122,7 @@ Decoder *DecoderMADFactory::create(const QString &url, QIODevice *input) return d; } -QList<FileInfo *> DecoderMADFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderMADFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { FileInfo *info = new FileInfo(fileName); TagLib::Tag *tag = 0; diff --git a/src/plugins/Input/mad/decodermadfactory.h b/src/plugins/Input/mad/decodermadfactory.h index 67fbad20a..70e827a28 100644 --- a/src/plugins/Input/mad/decodermadfactory.h +++ b/src/plugins/Input/mad/decodermadfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2014 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -42,7 +42,7 @@ public: bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/modplug/decodermodplugfactory.cpp b/src/plugins/Input/modplug/decodermodplugfactory.cpp index 45c25fb63..356afc08f 100644 --- a/src/plugins/Input/modplug/decodermodplugfactory.cpp +++ b/src/plugins/Input/modplug/decodermodplugfactory.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 * @@ -74,7 +74,7 @@ Decoder *DecoderModPlugFactory::create(const QString &path, QIODevice *input) return new DecoderModPlug(path); } -QList<FileInfo *> DecoderModPlugFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderModPlugFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { QList <FileInfo*> list; QSettings settings(Qmmp::configFile(), QSettings::IniFormat); diff --git a/src/plugins/Input/modplug/decodermodplugfactory.h b/src/plugins/Input/modplug/decodermodplugfactory.h index 94112daf3..be1bfe520 100644 --- a/src/plugins/Input/modplug/decodermodplugfactory.h +++ b/src/plugins/Input/modplug/decodermodplugfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008 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 * @@ -35,14 +35,14 @@ class DecoderModPlugFactory : public QObject, DecoderFactory { Q_OBJECT -Q_INTERFACES(DecoderFactory); +Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; 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 *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/mpc/decodermpcfactory.cpp b/src/plugins/Input/mpc/decodermpcfactory.cpp index 30d06365b..cdbc4dcd4 100644 --- a/src/plugins/Input/mpc/decodermpcfactory.cpp +++ b/src/plugins/Input/mpc/decodermpcfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 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 * @@ -74,7 +74,7 @@ Decoder *DecoderMPCFactory::create(const QString &, QIODevice *i) return new DecoderMPC(i); } -QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { FileInfo *info = new FileInfo(fileName); diff --git a/src/plugins/Input/mpc/decodermpcfactory.h b/src/plugins/Input/mpc/decodermpcfactory.h index 0212457f8..ffd968531 100644 --- a/src/plugins/Input/mpc/decodermpcfactory.h +++ b/src/plugins/Input/mpc/decodermpcfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2008 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -37,14 +37,14 @@ class DecoderMPCFactory : public QObject, DecoderFactory { Q_OBJECT -Q_INTERFACES(DecoderFactory); +Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &url, QIODevice *i); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/opus/decoderopusfactory.cpp b/src/plugins/Input/opus/decoderopusfactory.cpp index 697e3a434..445d2a6df 100644 --- a/src/plugins/Input/opus/decoderopusfactory.cpp +++ b/src/plugins/Input/opus/decoderopusfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -72,7 +72,7 @@ MetaDataModel* DecoderOpusFactory::createMetaDataModel(const QString &path, QObj return new OpusMetaDataModel(path, parent); } -QList<FileInfo *> DecoderOpusFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderOpusFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { FileInfo *info = new FileInfo(fileName); diff --git a/src/plugins/Input/opus/decoderopusfactory.h b/src/plugins/Input/opus/decoderopusfactory.h index 34bbd66d7..091a6d178 100644 --- a/src/plugins/Input/opus/decoderopusfactory.h +++ b/src/plugins/Input/opus/decoderopusfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -44,7 +44,7 @@ public: const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); QObject* showDetails(QWidget *parent, const QString &path); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/sid/decodersidfactory.cpp b/src/plugins/Input/sid/decodersidfactory.cpp index e4b1d0b52..eda6768bd 100644 --- a/src/plugins/Input/sid/decodersidfactory.cpp +++ b/src/plugins/Input/sid/decodersidfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -82,7 +82,7 @@ Decoder *DecoderSIDFactory::create(const QString &path, QIODevice *input) return new DecoderSID(&m_db, path); } -QList<FileInfo *> DecoderSIDFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderSIDFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { SIDHelper helper(&m_db); helper.load(fileName); @@ -133,4 +133,4 @@ QTranslator *DecoderSIDFactory::createTranslator(QObject *parent) translator->load(QString(":/sid_plugin_") + locale); return translator; } -Q_EXPORT_PLUGIN2(gme,DecoderSIDFactory) +Q_EXPORT_PLUGIN2(sid,DecoderSIDFactory) diff --git a/src/plugins/Input/sid/decodersidfactory.h b/src/plugins/Input/sid/decodersidfactory.h index d8bc4bc71..eec7b01db 100644 --- a/src/plugins/Input/sid/decodersidfactory.h +++ b/src/plugins/Input/sid/decodersidfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2013 by Ilya Kotov * + * Copyright (C) 2013-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -45,7 +45,7 @@ public: bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/sndfile/decodersndfilefactory.cpp b/src/plugins/Input/sndfile/decodersndfilefactory.cpp index d2e7c63db..5f3500ba1 100644 --- a/src/plugins/Input/sndfile/decodersndfilefactory.cpp +++ b/src/plugins/Input/sndfile/decodersndfilefactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007-2012 by Ilya Kotov * + * Copyright (C) 2007-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -78,7 +78,7 @@ Decoder *DecoderSndFileFactory::create(const QString &path, QIODevice *) return new DecoderSndFile(path); } -QList<FileInfo *> DecoderSndFileFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderSndFileFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { QList <FileInfo *> list; SF_INFO snd_info; diff --git a/src/plugins/Input/sndfile/decodersndfilefactory.h b/src/plugins/Input/sndfile/decodersndfilefactory.h index f4db9e8e0..e4a15d1fb 100644 --- a/src/plugins/Input/sndfile/decodersndfilefactory.h +++ b/src/plugins/Input/sndfile/decodersndfilefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007-2009 by Ilya Kotov * + * Copyright (C) 2007-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -34,14 +34,14 @@ class DecoderSndFileFactory : public QObject, DecoderFactory { Q_OBJECT -Q_INTERFACES(DecoderFactory); +Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp index 342a543af..31fbdb94d 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp +++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2014 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 * @@ -77,7 +77,7 @@ MetaDataModel* DecoderVorbisFactory::createMetaDataModel(const QString &path, QO return new VorbisMetaDataModel(path, parent); } -QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { FileInfo *info = new FileInfo(fileName); diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.h b/src/plugins/Input/vorbis/decodervorbisfactory.h index cbb07c8f6..bacdf0747 100644 --- a/src/plugins/Input/vorbis/decodervorbisfactory.h +++ b/src/plugins/Input/vorbis/decodervorbisfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2008 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -46,7 +46,7 @@ public: const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); QObject* showDetails(QWidget *parent, const QString &path); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp b/src/plugins/Input/wavpack/decoderwavpackfactory.cpp index d668e0a97..0384a6613 100644 --- a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp +++ b/src/plugins/Input/wavpack/decoderwavpackfactory.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 * @@ -29,8 +29,7 @@ bool DecoderWavPackFactory::supports(const QString &source) const { - - return (source.right(3).toLower() == ".wv"); + return source.endsWith(".wv", Qt::CaseInsensitive); } bool DecoderWavPackFactory::canDecode(QIODevice *input) const @@ -59,7 +58,7 @@ Decoder *DecoderWavPackFactory::create(const QString &p, QIODevice *) return new DecoderWavPack(p); } -QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredFiles) { QList <FileInfo*> list; char err[80]; @@ -72,7 +71,7 @@ QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName, path.remove("wvpack://"); path.remove(QRegExp("#\\d+$")); int track = fileName.section("#", -1).toInt(); - list = createPlayList(path, true); + list = createPlayList(path, true, ignoredFiles); if (list.isEmpty() || track <= 0 || track > list.count()) { qDeleteAll(list); diff --git a/src/plugins/Input/wavpack/decoderwavpackfactory.h b/src/plugins/Input/wavpack/decoderwavpackfactory.h index 69c0f550e..571cb1568 100644 --- a/src/plugins/Input/wavpack/decoderwavpackfactory.h +++ b/src/plugins/Input/wavpack/decoderwavpackfactory.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 * @@ -35,14 +35,14 @@ class DecoderWavPackFactory : public QObject, DecoderFactory { Q_OBJECT - Q_INTERFACES(DecoderFactory); + Q_INTERFACES(DecoderFactory) public: bool supports(const QString &source) const; bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &p, QIODevice *i); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredFiles); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp b/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp index 5c9f4ad2d..7c31524b8 100644 --- a/src/plugins/Input/wildmidi/decoderwildmidifactory.cpp +++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.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 * @@ -63,7 +63,7 @@ Decoder *DecoderWildMidiFactory::create(const QString &path, QIODevice *input) return new DecoderWildMidi(path); } -QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName, bool useMetaData) +QList<FileInfo *> DecoderWildMidiFactory::createPlayList(const QString &fileName, bool useMetaData, QStringList *) { Q_UNUSED(useMetaData); QList <FileInfo*> list; diff --git a/src/plugins/Input/wildmidi/decoderwildmidifactory.h b/src/plugins/Input/wildmidi/decoderwildmidifactory.h index 60d0d6f47..6a7e43f42 100644 --- a/src/plugins/Input/wildmidi/decoderwildmidifactory.h +++ b/src/plugins/Input/wildmidi/decoderwildmidifactory.h @@ -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 * @@ -40,7 +40,7 @@ public: bool canDecode(QIODevice *input) const; const DecoderProperties properties() const; Decoder *create(const QString &path, QIODevice *input); - QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData); + QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *); MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0); void showSettings(QWidget *parent); void showAbout(QWidget *parent); diff --git a/src/qmmp/decoderfactory.h b/src/qmmp/decoderfactory.h index 4c8e57739..f2578822a 100644 --- a/src/qmmp/decoderfactory.h +++ b/src/qmmp/decoderfactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006-2012 by Ilya Kotov * + * Copyright (C) 2006-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -90,14 +90,16 @@ public: * @param path File path * @param input Input data (if required) */ - virtual Decoder *create(const QString &path , QIODevice *input = 0) = 0; + virtual Decoder *create(const QString &path, QIODevice *input = 0) = 0; /*! * Extracts metadata and audio information from file \b path and returns a list of FileInfo items. * One file may contain several playlist items (for example: cda disk or flac with embedded cue) * @param fileName File path. * @param useMetaData Metadata usage (\b true - use, \b - do not use) + * @param ignoredPaths Pointer to a list of the files which should be ignored by the recursive search + * (useful to exclude cue data files from playlist) */ - virtual QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData) = 0; + virtual QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredPaths) = 0; /*! * Creats metadata object, which provides full access to file tags. * @param path File path. diff --git a/src/qmmp/enginefactory.h b/src/qmmp/enginefactory.h index 13004683a..b44389147 100644 --- a/src/qmmp/enginefactory.h +++ b/src/qmmp/enginefactory.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2012 by Ilya Kotov * + * Copyright (C) 2009-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -82,8 +82,10 @@ public: * One file may contain several playlist items (for example: cda disk or flac with embedded cue) * @param fileName File path. * @param useMetaData Metadata usage (\b true - use, \b - do not use) + * @param ignoredPaths Pointer to a list of the files which should be ignored by the recursive search + * (useful to exclude cue data files from playlist) */ - virtual QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData) = 0; + virtual QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredPaths) = 0; /*! * Creats metadata object, which provides full access to file tags. * @param path File path. diff --git a/src/qmmp/metadatamanager.cpp b/src/qmmp/metadatamanager.cpp index 22a884908..96bb1b971 100644 --- a/src/qmmp/metadatamanager.cpp +++ b/src/qmmp/metadatamanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2014 by Ilya Kotov * + * Copyright (C) 2009-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -44,21 +44,24 @@ MetaDataManager::~MetaDataManager() m_instance = 0; } -QList <FileInfo *> MetaDataManager::createPlayList(const QString &fileName, bool useMetaData) const +QList <FileInfo *> MetaDataManager::createPlayList(const QString &fileName, bool useMetaData, QStringList *ignoredPaths) const { QMutexLocker locker(&m_mutex); QList <FileInfo *> list; DecoderFactory *fact = 0; EngineFactory *efact = 0; + QStringList dummyList; + if(!ignoredPaths) + ignoredPaths = &dummyList; if (!fileName.contains("://")) //local file { if(!QFile::exists(fileName)) return list; else if((fact = Decoder::findByPath(fileName, m_settings->determineFileTypeByContent()))) - return fact->createPlayList(fileName, useMetaData); + return fact->createPlayList(fileName, useMetaData, ignoredPaths); else if((efact = AbstractEngine::findByPath(fileName))) - return efact->createPlayList(fileName, useMetaData); + return efact->createPlayList(fileName, useMetaData, ignoredPaths); return list; } else @@ -72,7 +75,7 @@ QList <FileInfo *> MetaDataManager::createPlayList(const QString &fileName, bool foreach(fact, Decoder::factories()) { if(fact->properties().protocols.contains(scheme) && Decoder::isEnabled(fact)) - return fact->createPlayList(fileName, useMetaData); + return fact->createPlayList(fileName, useMetaData, ignoredPaths); } } return list; diff --git a/src/qmmp/metadatamanager.h b/src/qmmp/metadatamanager.h index 8fc872793..130ee3036 100644 --- a/src/qmmp/metadatamanager.h +++ b/src/qmmp/metadatamanager.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2009-2014 by Ilya Kotov * + * Copyright (C) 2009-2015 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -54,8 +54,10 @@ public: * One file may contain several playlist items (for example: cda disk or flac with embedded cue) * @param path Source file path. * @param useMetaData Metadata usage (\b true - use, \b - do not use) + * @param ignoredPaths Pointer to a list of the files which should be ignored by the recursive search + * (useful to exclude cue data files from playlist) */ - QList <FileInfo *> createPlayList(const QString &path, bool useMetaData = true) const; + QList <FileInfo *> createPlayList(const QString &path, bool useMetaData = true, QStringList *ignoredPaths = 0) const; /*! * Creats metadata object, which provides full access to file tags. * @param url File path or URL. diff --git a/src/qmmpui/fileloader.cpp b/src/qmmpui/fileloader.cpp index 2bd61483c..3bb505108 100644 --- a/src/qmmpui/fileloader.cpp +++ b/src/qmmpui/fileloader.cpp @@ -37,10 +37,10 @@ FileLoader::FileLoader(QObject *parent) : QThread(parent) FileLoader::~FileLoader() {} -QList<PlayListTrack *> FileLoader::processFile(const QString &path) +QList<PlayListTrack *> FileLoader::processFile(const QString &path, QStringList *ignoredPaths) { QList<PlayListTrack *> tracks; - QList <FileInfo *> infoList = MetaDataManager::instance()->createPlayList(path, m_use_meta); + QList <FileInfo *> infoList = MetaDataManager::instance()->createPlayList(path, m_use_meta, ignoredPaths); foreach (FileInfo *info, infoList) { @@ -53,14 +53,20 @@ QList<PlayListTrack *> FileLoader::processFile(const QString &path) void FileLoader::addDirectory(const QString& s, PlayListItem *before) { QList<PlayListTrack *> tracks; + QStringList ignoredPaths; QDir dir(s); dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks); dir.setSorting(QDir::Name); QFileInfoList l = dir.entryInfoList(m_filters); + foreach(QFileInfo info, l) { if(checkRestrictFilters(info) && checkExcludeFilters(info)) - tracks.append(processFile(info.absoluteFilePath ())); + { + QStringList paths; + tracks.append(processFile(info.absoluteFilePath (), &ignoredPaths)); + ignoredPaths.append(paths); + } if (m_finished) { @@ -69,16 +75,20 @@ void FileLoader::addDirectory(const QString& s, PlayListItem *before) return; } - if(tracks.count() > 20) //do not send more than 20 tracks at once + if(tracks.count() > 30) //do not send more than 30 tracks at once { + removeIgnoredTracks(&tracks, ignoredPaths); emit newTracksToInsert(before, tracks); tracks.clear(); + ignoredPaths.clear(); } } if(!tracks.isEmpty()) { + removeIgnoredTracks(&tracks, ignoredPaths); emit newTracksToInsert(before, tracks); + ignoredPaths.clear(); } dir.setFilter(QDir::Dirs | QDir::NoDotAndDotDot); @@ -210,3 +220,18 @@ bool FileLoader::checkExcludeFilters(const QFileInfo &info) } return true; } + +void FileLoader::removeIgnoredTracks(QList<PlayListTrack *> *tracks, const QStringList &ignoredPaths) +{ + if(ignoredPaths.isEmpty()) + return; + + foreach(PlayListTrack *track, *tracks) + { + if(ignoredPaths.contains(track->url())) + { + tracks->removeAll(track); + delete track; + } + } +} diff --git a/src/qmmpui/fileloader_p.h b/src/qmmpui/fileloader_p.h index d38163e03..b2cf2c006 100644 --- a/src/qmmpui/fileloader_p.h +++ b/src/qmmpui/fileloader_p.h @@ -78,10 +78,11 @@ signals: private: void run(); - QList<PlayListTrack*> processFile(const QString &path); + QList<PlayListTrack*> processFile(const QString &path, QStringList *ignoredPaths = 0); void addDirectory(const QString &s, PlayListItem *before = 0); bool checkRestrictFilters(const QFileInfo &info); bool checkExcludeFilters(const QFileInfo &info); + void removeIgnoredTracks(QList<PlayListTrack *> *tracks, const QStringList &ignoredPaths); struct LoaderTask { QString path; |
