diff options
Diffstat (limited to 'src/plugins/Input/flac')
| -rw-r--r-- | src/plugins/Input/flac/cueparser.cpp | 7 | ||||
| -rw-r--r-- | src/plugins/Input/flac/decoder_flac.cpp | 14 | ||||
| -rw-r--r-- | src/plugins/Input/flac/decoderflacfactory.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Input/flac/flacmetadatamodel.cpp | 8 |
4 files changed, 11 insertions, 28 deletions
diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp index 3402dc114..c014c49ee 100644 --- a/src/plugins/Input/flac/cueparser.cpp +++ b/src/plugins/Input/flac/cueparser.cpp @@ -59,12 +59,7 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) } else if (words[0] == "TRACK") { - QString path = fileName; - path.replace("%", QString(QUrl::toPercentEncoding("%"))); //replace special symbols - path.replace("#", QString(QUrl::toPercentEncoding("#"))); - path.replace("?", QString(QUrl::toPercentEncoding("?"))); - path.replace(":", QString(QUrl::toPercentEncoding(":"))); - FileInfo info("flac://" + path + QString("#%1").arg(words[1].toInt())); + FileInfo info("flac://" + fileName + QString("#%1").arg(words[1].toInt())); info.setMetaData(Qmmp::TRACK, words[1].toInt()); info.setMetaData(Qmmp::ALBUM, album); info.setMetaData(Qmmp::GENRE, genre); diff --git a/src/plugins/Input/flac/decoder_flac.cpp b/src/plugins/Input/flac/decoder_flac.cpp index 3258ee701..a8a1c3c1f 100644 --- a/src/plugins/Input/flac/decoder_flac.cpp +++ b/src/plugins/Input/flac/decoder_flac.cpp @@ -270,19 +270,11 @@ bool DecoderFLAC::initialize() { if (!data()->input) { - QString p = m_path; if (m_path.startsWith("flac://")) //embeded cue track { - p = QUrl(m_path).path(); - if (!p.endsWith(".flac")) - { - qWarning("DecoderFLAC: invalid url."); - return false; - } - p.replace(QString(QUrl::toPercentEncoding("#")), "#"); - p.replace(QString(QUrl::toPercentEncoding("?")), "?"); - p.replace(QString(QUrl::toPercentEncoding("%")), "%"); - p.replace(QString(QUrl::toPercentEncoding(":")), ":"); + QString p = m_path; + p.remove("flac://"); + p.remove(QRegExp("#\\d+$")); TagLib::FLAC::File fileRef(p.toLocal8Bit().constData()); //looking for cuesheet comment TagLib::Ogg::XiphComment *xiph_comment = fileRef.xiphComment(); diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp index af787efe1..fc9779d82 100644 --- a/src/plugins/Input/flac/decoderflacfactory.cpp +++ b/src/plugins/Input/flac/decoderflacfactory.cpp @@ -79,14 +79,12 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo TagLib::FLAC::File *flacFile = 0; TagLib::Ogg::FLAC::File *oggFlacFile = 0; - //extract metadata of one cue track + //extract metadata of the 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(":")), ":"); + QString path = fileName; + path.remove("flac://"); + path.remove(QRegExp("#\\d+$")); int track = fileName.section("#", -1).toInt(); list = createPlayList(path, true); if (list.isEmpty() || track <= 0 || track > list.count()) diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp index fffc703db..1dbb4a33f 100644 --- a/src/plugins/Input/flac/flacmetadatamodel.cpp +++ b/src/plugins/Input/flac/flacmetadatamodel.cpp @@ -33,11 +33,9 @@ FLACMetaDataModel::FLACMetaDataModel(const QString &path, QObject *parent) : Met { if(path.startsWith("flac://")) { - QString p = QUrl(path).path(); - p.replace(QString(QUrl::toPercentEncoding("#")), "#"); - p.replace(QString(QUrl::toPercentEncoding("?")), "?"); - p.replace(QString(QUrl::toPercentEncoding("%")), "%"); - p.replace(QString(QUrl::toPercentEncoding(":")), ":"); + QString p = path; + p.remove("flac://"); + p.remove(QRegExp("#\\d+$")); m_path = p; } else |
