aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wavpack/decoder_wavpack.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/wavpack/decoder_wavpack.cpp')
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.cpp16
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)