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 | |
| 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
| -rw-r--r-- | src/plugins/Input/flac/cueparser.cpp | 7 | ||||
| -rw-r--r-- | src/plugins/Input/flac/decoder_flac.cpp | 14 | ||||
| -rw-r--r-- | src/plugins/Input/flac/decoderflacfactory.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Input/flac/flacmetadatamodel.cpp | 8 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 7 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 16 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoderwavpackfactory.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/replaygainreader.cpp | 10 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/wavpackmetadatamodel.cpp | 10 |
9 files changed, 36 insertions, 57 deletions
diff --git a/src/plugins/Input/flac/cueparser.cpp b/src/plugins/Input/flac/cueparser.cpp index 3402dc114..c014c49ee 100644 --- a/src/plugins/Input/flac/cueparser.cpp +++ b/src/plugins/Input/flac/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("flac://" + path + QString("#%1").arg(words[1].toInt())); + FileInfo info("flac://" + 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/flac/decoder_flac.cpp b/src/plugins/Input/flac/decoder_flac.cpp index 3258ee701..a8a1c3c1f 100644 --- a/src/plugins/Input/flac/decoder_flac.cpp +++ b/src/plugins/Input/flac/decoder_flac.cpp @@ -270,19 +270,11 @@ bool DecoderFLAC::initialize() { if (!data()->input) { - QString p = m_path; if (m_path.startsWith("flac://")) //embeded cue track { - p = QUrl(m_path).path(); - if (!p.endsWith(".flac")) - { - qWarning("DecoderFLAC: invalid url."); - return false; - } - p.replace(QString(QUrl::toPercentEncoding("#")), "#"); - p.replace(QString(QUrl::toPercentEncoding("?")), "?"); - p.replace(QString(QUrl::toPercentEncoding("%")), "%"); - p.replace(QString(QUrl::toPercentEncoding(":")), ":"); + QString p = m_path; + p.remove("flac://"); + p.remove(QRegExp("#\\d+$")); TagLib::FLAC::File fileRef(p.toLocal8Bit().constData()); //looking for cuesheet comment TagLib::Ogg::XiphComment *xiph_comment = fileRef.xiphComment(); diff --git a/src/plugins/Input/flac/decoderflacfactory.cpp b/src/plugins/Input/flac/decoderflacfactory.cpp index af787efe1..fc9779d82 100644 --- a/src/plugins/Input/flac/decoderflacfactory.cpp +++ b/src/plugins/Input/flac/decoderflacfactory.cpp @@ -79,14 +79,12 @@ QList<FileInfo *> DecoderFLACFactory::createPlayList(const QString &fileName, bo TagLib::FLAC::File *flacFile = 0; TagLib::Ogg::FLAC::File *oggFlacFile = 0; - //extract metadata of one cue track + //extract metadata of the 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("flac://"); + path.remove(QRegExp("#\\d+$")); int track = fileName.section("#", -1).toInt(); list = createPlayList(path, true); if (list.isEmpty() || track <= 0 || track > list.count()) diff --git a/src/plugins/Input/flac/flacmetadatamodel.cpp b/src/plugins/Input/flac/flacmetadatamodel.cpp index fffc703db..1dbb4a33f 100644 --- a/src/plugins/Input/flac/flacmetadatamodel.cpp +++ b/src/plugins/Input/flac/flacmetadatamodel.cpp @@ -33,11 +33,9 @@ FLACMetaDataModel::FLACMetaDataModel(const QString &path, QObject *parent) : Met { if(path.startsWith("flac://")) { - 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("flac://"); + p.remove(QRegExp("#\\d+$")); m_path = p; } else 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) { |
