diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-04-30 15:15:29 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2009-04-30 15:15:29 +0000 |
| commit | f904c854aba7f97bd45b50beb75179fb54c326af (patch) | |
| tree | 00bddbb57daf467aae5cbd358182241fa0cf80a7 /src/plugins/Input/wavpack | |
| parent | 0bdc0470cca2afb520201e55848891c854dfa871 (diff) | |
| download | qmmp-f904c854aba7f97bd45b50beb75179fb54c326af.tar.gz qmmp-f904c854aba7f97bd45b50beb75179fb54c326af.tar.bz2 qmmp-f904c854aba7f97bd45b50beb75179fb54c326af.zip | |
fixed playing cue files with symbol '#' in the path
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@921 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/wavpack')
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 5 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp index 081912dba..db837c427 100644 --- a/src/plugins/Input/wavpack/cueparser.cpp +++ b/src/plugins/Input/wavpack/cueparser.cpp @@ -59,7 +59,10 @@ CUEParser::CUEParser(const QByteArray &array, const QString &fileName) } else if (words[0] == "TRACK") { - FileInfo info("wvpack://" + fileName + QString("#%1").arg(words[1].toInt())); + QString path = fileName; + path.replace("%", QString(QUrl::toPercentEncoding("%"))); //replace special symbols + path.replace("#", QString(QUrl::toPercentEncoding("#"))); + FileInfo info("wvpack://" + path + QString("#%1").arg(words[1].toInt())); info.setMetaData(Qmmp::TRACK, words[1].toInt()); m_infoList << info; m_offsets << 0; diff --git a/src/plugins/Input/wavpack/decoder_wavpack.cpp b/src/plugins/Input/wavpack/decoder_wavpack.cpp index 3260ef5e1..5c13dd075 100644 --- a/src/plugins/Input/wavpack/decoder_wavpack.cpp +++ b/src/plugins/Input/wavpack/decoder_wavpack.cpp @@ -130,6 +130,8 @@ bool DecoderWavPack::initialize() if (m_path.startsWith("wvpack://")) //embeded cue track { QString p = QUrl(m_path).path(); + p.replace(QString(QUrl::toPercentEncoding("#")), "#"); + p.replace(QString(QUrl::toPercentEncoding("%")), "%"); m_context = WavpackOpenFileInput (p.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0); int cue_len = WavpackGetTagItem (m_context, "cuesheet", NULL, 0); char *value; |
