From 1a72354c0765d2ac473ce052ca507963ce0b007c Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Sat, 27 Apr 2019 16:50:58 +0000 Subject: ignore invalid cue files git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8797 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/cue/cuefile.cpp | 22 +++++++++++----------- src/plugins/Input/cue/decodercuefactory.cpp | 8 +------- 2 files changed, 12 insertions(+), 18 deletions(-) (limited to 'src/plugins/Input') diff --git a/src/plugins/Input/cue/cuefile.cpp b/src/plugins/Input/cue/cuefile.cpp index 69a4622b9..897578860 100644 --- a/src/plugins/Input/cue/cuefile.cpp +++ b/src/plugins/Input/cue/cuefile.cpp @@ -79,7 +79,7 @@ CueFile::CueFile(const QString &path) : CueParser() codec = QTextCodec::codecForName("UTF-8"); settings.endGroup(); //qDebug("CUEParser: using %s encoding", codec->name().constData()); - loadData(data, codec->name()); + loadData(data, codec); setUrl("cue", path); for(const QString &dataFileName : files()) { @@ -94,6 +94,16 @@ CueFile::CueFile(const QString &path) : CueParser() pl.clear(); } } + + for(const QString &path : m_dataFiles.values()) + { + if(!QFile::exists(path)) + { + qDebug("CueFile: unable to find file: %s", qPrintable(path)); + clear(); + return; + } + } } CueFile::~CueFile() @@ -144,16 +154,6 @@ QStringList CueFile::splitLine(const QString &line) return list; } -/*qint64 CueFile::getLength(const QString &str) -{ - QStringList list = str.split(":"); - if (list.size() == 2) - return (qint64)list.at(0).toInt()*60000 + list.at(1).toInt()*1000; - else if (list.size() == 3) - return (qint64)list.at(0).toInt()*60000 + list.at(1).toInt()*1000 + list.at(2).toInt()*1000/75; - return 0; -}*/ - QString CueFile::getDirtyPath(const QString &cue_path, const QString &path) { if((QFile::exists(path) && Decoder::findByFilePath(path)) || !m_dirty) diff --git a/src/plugins/Input/cue/decodercuefactory.cpp b/src/plugins/Input/cue/decodercuefactory.cpp index 43bbb7354..386d3e94d 100644 --- a/src/plugins/Input/cue/decodercuefactory.cpp +++ b/src/plugins/Input/cue/decodercuefactory.cpp @@ -58,14 +58,8 @@ QList DecoderCUEFactory::createPlayList(const QString &path, TrackI CueFile parser(path); if(path.contains("://")) { - QList list; int track = path.section("#", -1).toInt(); - if (!parser.count() || track <= 0 || track > parser.count()) - return list; - list = parser.createPlayList(); - TrackInfo *info = list.takeAt(track - 1); - qDeleteAll(list); - return QList() << info; + return parser.createPlayList(track); } else { -- cgit v1.2.3-13-gbd6f