aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wavpack/decoder_wavpack.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-01-28 21:10:00 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-01-28 21:10:00 +0000
commit47f1be7e4f2878f9b248401f60ac6160ac734e41 (patch)
treeb252c95d16d52edea6c909d1e852773ae75e2b7e /src/plugins/Input/wavpack/decoder_wavpack.cpp
parentbb38383b4d6b0f88fa77fb919d6adbf7a75f5234 (diff)
downloadqmmp-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.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)