aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/wavpack
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
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')
-rw-r--r--src/plugins/Input/wavpack/cueparser.cpp7
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.cpp16
-rw-r--r--src/plugins/Input/wavpack/decoderwavpackfactory.cpp11
-rw-r--r--src/plugins/Input/wavpack/replaygainreader.cpp10
-rw-r--r--src/plugins/Input/wavpack/wavpackmetadatamodel.cpp10
5 files changed, 25 insertions, 29 deletions
diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp
index 3a5f1b30e..36dbacc3c 100644
--- a/src/plugins/Input/wavpack/cueparser.cpp
+++ b/src/plugins/Input/wavpack/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("wvpack://" + path + QString("#%1").arg(words[1].toInt()));
+ FileInfo info("wvpack://" + 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/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)
diff --git a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp b/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
index 2eb49a73e..b2349e13e 100644
--- a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
+++ b/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
@@ -68,11 +68,9 @@ QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName,
//extract metadata of 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("wvpack://");
+ path.remove(QRegExp("#\\d+$"));
int track = fileName.section("#", -1).toInt();
list = createPlayList(path, true);
if (list.isEmpty() || track <= 0 || track > list.count())
@@ -86,7 +84,8 @@ QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName,
return QList<FileInfo *>() << info;
}
- WavpackContext *ctx = WavpackOpenFileInput (fileName.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0);
+ WavpackContext *ctx = WavpackOpenFileInput (fileName.toLocal8Bit().constData(),
+ err, OPEN_WVC | OPEN_TAGS, 0);
if (!ctx)
{
qWarning("DecoderWavPackFactory: error: %s", err);
diff --git a/src/plugins/Input/wavpack/replaygainreader.cpp b/src/plugins/Input/wavpack/replaygainreader.cpp
index 032cc3210..ce23d0027 100644
--- a/src/plugins/Input/wavpack/replaygainreader.cpp
+++ b/src/plugins/Input/wavpack/replaygainreader.cpp
@@ -19,16 +19,16 @@
***************************************************************************/
#include <QtGlobal>
+#include <QRegExp>
#include "replaygainreader.h"
ReplayGainReader::ReplayGainReader(const QString &path)
{
if(path.contains("://"))
{
- QString p = QUrl(path).path();
- p.replace(QString(QUrl::toPercentEncoding("#")), "#");
- p.replace(QString(QUrl::toPercentEncoding("?")), "?");
- p.replace(QString(QUrl::toPercentEncoding("%")), "%");
+ QString p = m_path;
+ p.remove("wvpack://");
+ p.remove(QRegExp("#\\d+$"));
m_path = p;
}
else
@@ -39,7 +39,7 @@ ReplayGainReader::ReplayGainReader(const QString &path)
OPEN_WVC | OPEN_EDIT_TAGS, 0);
if (!m_ctx)
{
- qWarning("WavPackMetaDataModel: error: %s", err);
+ qWarning("ReplayGainReader: error: %s", err);
return;
}
readAPE();
diff --git a/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp b/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp
index d5bb27eee..1b1e4740c 100644
--- a/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp
+++ b/src/plugins/Input/wavpack/wavpackmetadatamodel.cpp
@@ -26,18 +26,16 @@ WavPackMetaDataModel::WavPackMetaDataModel(const QString &path, QObject *parent)
{
if(path.contains("://"))
{
- 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("wvpack://");
+ p.remove(QRegExp("#\\d+$"));
m_path = p;
}
else
m_path = path;
char err[80];
- m_ctx = WavpackOpenFileInput (m_path.toLocal8Bit(), err,
+ m_ctx = WavpackOpenFileInput (m_path.toLocal8Bit().constData(), err,
OPEN_WVC | OPEN_EDIT_TAGS, 0);
if (!m_ctx)
{