diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-01-28 21:10:00 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-01-28 21:10:00 +0000 |
| commit | 47f1be7e4f2878f9b248401f60ac6160ac734e41 (patch) | |
| tree | b252c95d16d52edea6c909d1e852773ae75e2b7e /src/plugins/Input/wavpack/decoder_wavpack.cpp | |
| parent | bb38383b4d6b0f88fa77fb919d6adbf7a75f5234 (diff) | |
| download | qmmp-47f1be7e4f2878f9b248401f60ac6160ac734e41.tar.gz qmmp-47f1be7e4f2878f9b248401f60ac6160ac734e41.tar.bz2 qmmp-47f1be7e4f2878f9b248401f60ac6160ac734e41.zip | |
flac/wavpack plugin: fixed windows support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2571 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/wavpack/decoder_wavpack.cpp')
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/plugins/Input/wavpack/decoder_wavpack.cpp b/src/plugins/Input/wavpack/decoder_wavpack.cpp index aa7ed1861..b75f2e8d4 100644 --- a/src/plugins/Input/wavpack/decoder_wavpack.cpp +++ b/src/plugins/Input/wavpack/decoder_wavpack.cpp @@ -22,6 +22,7 @@ #include <QObject> #include <QIODevice> #include <QFile> +#include <QRegExp> #include <math.h> #include <stdint.h> #include <qmmp/buffer.h> @@ -67,12 +68,15 @@ bool DecoderWavPack::initialize() char err [80]; if (m_path.startsWith("wvpack://")) //embeded cue track { - QString p = QUrl(m_path).path(); - p.replace(QString(QUrl::toPercentEncoding("#")), "#"); - p.replace(QString(QUrl::toPercentEncoding("?")), "?"); - p.replace(QString(QUrl::toPercentEncoding("%")), "%"); - p.replace(QString(QUrl::toPercentEncoding(":")), ":"); - m_context = WavpackOpenFileInput (p.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0); + QString p = m_path; + p.remove("wvpack://"); + p.remove(QRegExp("#\\d+$")); + m_context = WavpackOpenFileInput (p.toLocal8Bit().constData(), err, OPEN_WVC | OPEN_TAGS, 0); + if (!m_context) + { + qWarning("DecoderWavPack: error: %s", err); + return false; + } int cue_len = WavpackGetTagItem (m_context, "cuesheet", NULL, 0); char *value; if (cue_len) |
