aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-02-06 20:05:37 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-02-06 20:05:37 +0000
commit37ec3ed3be7dbb33bb34a1dcd09758b6f537652f (patch)
tree6f4ff266750c8d0a0d40e37f229f3e4477e0a41f /src/plugins
parent02ef6f2f2131d2e75846d937064f4e14ac3b27fd (diff)
downloadqmmp-37ec3ed3be7dbb33bb34a1dcd09758b6f537652f.tar.gz
qmmp-37ec3ed3be7dbb33bb34a1dcd09758b6f537652f.tar.bz2
qmmp-37ec3ed3be7dbb33bb34a1dcd09758b6f537652f.zip
wavpack embeded cue support (thanks to Dmitry Kostin)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@780 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Input/wavpack/CMakeLists.txt2
-rw-r--r--src/plugins/Input/wavpack/cueparser.cpp188
-rw-r--r--src/plugins/Input/wavpack/cueparser.h58
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.cpp59
-rw-r--r--src/plugins/Input/wavpack/decoder_wavpack.h5
-rw-r--r--src/plugins/Input/wavpack/decoderwavpackfactory.cpp69
-rw-r--r--src/plugins/Input/wavpack/decoderwavpackfactory.h8
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts12
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts13
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts13
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts13
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts13
-rw-r--r--src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts13
-rw-r--r--src/plugins/Input/wavpack/wavpack.pro6
14 files changed, 383 insertions, 89 deletions
diff --git a/src/plugins/Input/wavpack/CMakeLists.txt b/src/plugins/Input/wavpack/CMakeLists.txt
index 675509921..a3f807914 100644
--- a/src/plugins/Input/wavpack/CMakeLists.txt
+++ b/src/plugins/Input/wavpack/CMakeLists.txt
@@ -35,12 +35,14 @@ SET(libwavpack_SRCS
decoder_wavpack.cpp
decoderwavpackfactory.cpp
detailsdialog.cpp
+ cueparser.cpp
)
SET(libwavpack_MOC_HDRS
decoderwavpackfactory.h
decoder_wavpack.h
detailsdialog.h
+ cueparser.h
)
SET(libwavpack_RCCS translations/translations.qrc)
diff --git a/src/plugins/Input/wavpack/cueparser.cpp b/src/plugins/Input/wavpack/cueparser.cpp
new file mode 100644
index 000000000..7ef9cec00
--- /dev/null
+++ b/src/plugins/Input/wavpack/cueparser.cpp
@@ -0,0 +1,188 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+
+#include <QDir>
+#include <QSettings>
+#include <QTextStream>
+#include <QTextCodec>
+
+#include <qmmp/decoder.h>
+
+#include "cueparser.h"
+
+CUEParser::CUEParser(const QByteArray &array, const QString &fileName)
+{
+ QString album, genre, date, comment;
+ QTextStream textStream (array);
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ QTextCodec *codec = QTextCodec::codecForName(settings.value("CUE/encoding","ISO-8859-1").toByteArray ());
+ textStream.setCodec(codec);
+ m_filePath = fileName;
+ QString artist;
+ while (!textStream.atEnd())
+ {
+ QString line = textStream.readLine().trimmed();
+ QStringList words = splitLine(line);
+ if (words.size() < 2)
+ continue;
+
+ if (words[0] == "PERFORMER")
+ {
+ if (m_infoList.isEmpty())
+ {
+ artist = words[1];
+ continue;
+ }
+ else
+ m_infoList.last().setMetaData(Qmmp::ARTIST, words[1]);
+
+ }
+ else if (words[0] == "TITLE")
+ {
+ if (m_infoList.isEmpty())
+ album = words[1];
+ else
+ m_infoList.last().setMetaData(Qmmp::TITLE, words[1]);
+ }
+ else if (words[0] == "TRACK")
+ {
+ FileInfo info("wvpack://" + fileName + QString("#%1").arg(words[1].toInt()));
+ info.setMetaData(Qmmp::TRACK, words[1].toInt());
+ m_infoList << info;
+ m_offsets << 0;
+ }
+ else if (words[0] == "INDEX")
+ {
+ if (m_infoList.isEmpty())
+ continue;
+ m_infoList.last ().setLength(getLength(words[2]));
+ m_offsets.last() = getLength(words[2]);
+ }
+ else if (words[0] == "REM")
+ {
+ if (words.size() < 3)
+ continue;
+ if (words[1] == "GENRE")
+ genre = words[2];
+ else if (words[1] == "DATE")
+ date = words[2];
+ else if (words[1] == "COMMENT")
+ comment = words[2];
+ }
+ }
+ //calculate length
+ for (int i = 0; i < m_infoList.size() - 1; ++i)
+ m_infoList[i].setLength(m_infoList[i+1].length() - m_infoList[i].length());
+ //calculate last item length
+ QList <FileInfo *> f_list = Decoder::createPlayList(m_filePath, FALSE);
+ qint64 l = f_list.isEmpty() ? 0 : f_list.at(0)->length();
+ if (l > m_infoList.last().length())
+ m_infoList.last().setLength(l - m_infoList.last().length());
+ else
+ m_infoList.last().setLength(0);
+
+ for (int i = 0; i < m_infoList.size(); ++i)
+ {
+ m_infoList[i].setMetaData(Qmmp::ALBUM, album);
+ m_infoList[i].setMetaData(Qmmp::GENRE, genre);
+ m_infoList[i].setMetaData(Qmmp::YEAR, date);
+ m_infoList[i].setMetaData(Qmmp::COMMENT, comment);
+ if(!m_infoList[i].metaData().count(Qmmp::ARTIST) && !artist.isEmpty())
+ m_infoList[i].setMetaData(Qmmp::ARTIST, artist);
+ }
+}
+
+
+CUEParser::~CUEParser()
+{
+}
+
+QList<FileInfo*> CUEParser::createPlayList()
+{
+ QList<FileInfo*> list;
+ foreach(FileInfo info, m_infoList)
+ {
+ list << new FileInfo(info);
+ }
+ return list;
+}
+
+const QString CUEParser::filePath()
+{
+ return m_filePath;
+}
+
+qint64 CUEParser::offset(int track)
+{
+ return m_offsets.at(track - 1);
+}
+
+qint64 CUEParser::length(int track)
+{
+ return m_infoList.at(track - 1).length();
+}
+
+int CUEParser::count()
+{
+ return m_infoList.count();
+}
+
+FileInfo *CUEParser::info(int track)
+{
+ return &m_infoList[track - 1];
+}
+
+QStringList CUEParser::splitLine(const QString &line)
+{
+ //qDebug("row string = %s",qPrintable(line));
+ QStringList list;
+ QString buf = line.trimmed();
+ if (buf.isEmpty())
+ return list;
+ while (!buf.isEmpty())
+ {
+ //qDebug(qPrintable(buf));
+ if (buf.startsWith('"'))
+ {
+ int end = buf.indexOf('"',1);
+ list << buf.mid (1, end - 1);
+ buf.remove (0, end+1);
+ }
+ else
+ {
+ int end = buf.indexOf(' ', 0);
+ if (end < 0)
+ end = buf.size();
+ list << buf.mid (0, end);
+ buf.remove (0, end);
+ }
+ buf = buf.trimmed();
+ }
+ return list;
+}
+
+int CUEParser::getLength(const QString &str)
+{
+ QStringList list = str.split(":");
+ if (list.size() < 2)
+ return 0;
+ return list.at(0).toInt()*60 + list.at(1).toInt();
+}
diff --git a/src/plugins/Input/wavpack/cueparser.h b/src/plugins/Input/wavpack/cueparser.h
new file mode 100644
index 000000000..fccd85912
--- /dev/null
+++ b/src/plugins/Input/wavpack/cueparser.h
@@ -0,0 +1,58 @@
+/***************************************************************************
+ * Copyright (C) 2008 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+#ifndef CUEPARSER_H
+#define CUEPARSER_H
+
+#include <QList>
+#include <QMap>
+#include <QByteArray>
+#include <QString>
+#include <QStringList>
+
+#include <qmmp/fileinfo.h>
+
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class CUEParser
+{
+public:
+ CUEParser(const QByteArray &array, const QString &fileName);
+
+ ~CUEParser();
+
+ QList<FileInfo*> createPlayList();
+ const QString filePath();
+ qint64 offset(int track);
+ qint64 length(int track);
+ int count();
+ FileInfo *info(int track);
+
+private:
+ QString m_filePath;
+ QList <FileInfo> m_infoList;
+ QList <int> m_offsets;
+ QStringList splitLine(const QString &line);
+ int getLength(const QString &str);
+
+};
+
+#endif
diff --git a/src/plugins/Input/wavpack/decoder_wavpack.cpp b/src/plugins/Input/wavpack/decoder_wavpack.cpp
index d4b28c473..87892f9da 100644
--- a/src/plugins/Input/wavpack/decoder_wavpack.cpp
+++ b/src/plugins/Input/wavpack/decoder_wavpack.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -29,8 +29,10 @@
#include <qmmp/buffer.h>
#include <qmmp/output.h>
#include <qmmp/recycler.h>
+#include "QtDebug"
#include "decoder_wavpack.h"
+#include "cueparser.h"
// Decoder class
@@ -53,6 +55,8 @@ DecoderWavPack::DecoderWavPack(QObject *parent, DecoderFactory *d, Output *o, co
m_chan = 0;
m_output_size = 0;
m_context = 0;
+ m_length = 0;
+ m_offset = 0;
}
DecoderWavPack::~DecoderWavPack()
@@ -123,19 +127,46 @@ bool DecoderWavPack::initialize()
m_output_bytes = 0;
char err [80];
- m_context = WavpackOpenFileInput (m_path.toLocal8Bit(), err,
- OPEN_WVC | OPEN_TAGS, 0);
- if(!m_context)
+ if (m_path.startsWith("wvpack://")) //embeded cue track
+ {
+ QString p = QUrl(m_path).path();
+ m_context = WavpackOpenFileInput (p.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0);
+ int cue_len = WavpackGetTagItem (m_context, "cuesheet", NULL, 0);
+ char *value;
+ if (cue_len)
+ {
+ value = (char*)malloc (cue_len * 2 + 1);
+ WavpackGetTagItem (m_context, "cuesheet", value, cue_len + 1);
+ CUEParser parser(value, p);
+ int track = m_path.section("#", -1).toInt();
+ m_offset = parser.offset(track);
+ m_length = parser.length(track);
+ m_path = p;
+ }
+ }
+ else
+ {
+ m_context = WavpackOpenFileInput (m_path.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0);
+ }
+
+ if (!m_context)
{
qWarning("DecoderWavPack: error: %s", err);
return FALSE;
}
+
m_chan = WavpackGetNumChannels(m_context);
m_freq = WavpackGetSampleRate (m_context);
- m_bps = WavpackGetBitsPerSample (m_context);
+ m_bps = WavpackGetBitsPerSample (m_context);
configure(m_freq, m_chan, m_bps);
- m_totalTime = (int) WavpackGetNumSamples(m_context)/m_freq;
m_inited = TRUE;
+
+ if (m_offset)
+ m_seekTime = m_offset;
+ if (m_length)
+ m_totalTime = m_length;
+ else
+ m_totalTime = (qint64) WavpackGetNumSamples(m_context) / m_freq;
qDebug("DecoderWavPack: initialize succes");
return TRUE;
}
@@ -151,7 +182,7 @@ qint64 DecoderWavPack::lengthInSeconds()
void DecoderWavPack::seek(qint64 pos)
{
- m_seekTime = pos;
+ m_seekTime = pos + m_offset;
}
void DecoderWavPack::deinit()
@@ -160,7 +191,9 @@ void DecoderWavPack::deinit()
m_freq = m_bitrate = 0;
m_chan = 0;
m_output_size = 0;
- if(m_context)
+ m_length = 0;
+ m_offset = 0;
+ if (m_context)
{
WavpackCloseFile (m_context);
m_context = 0;
@@ -188,23 +221,25 @@ void DecoderWavPack::run()
mutex()->lock ();
//seeking
-
if (m_seekTime >= 0.0)
{
WavpackSeekSample (m_context, m_seekTime * m_freq);
m_seekTime = -1.0;
}
+ //stop if track ended
+ if (WavpackGetSampleIndex(m_context)/m_freq-m_offset >= m_totalTime)
+ {
+ m_finish = TRUE;
+ }
- // decode
samples = (globalBufferSize-m_output_at)/m_chan/4;
len = WavpackUnpackSamples (m_context, in, samples);
- for(ulong i = 0; i < len * m_chan; ++i)
+ for (ulong i = 0; i < len * m_chan; ++i)
out[i] = in[i];
len *= (m_chan * 2); //convert to number of bytes
memcpy(m_output_buf + m_output_at, (char *) out, len);
-
if (len > 0)
{
m_bitrate =int( WavpackGetInstantBitrate(m_context)/1000);
diff --git a/src/plugins/Input/wavpack/decoder_wavpack.h b/src/plugins/Input/wavpack/decoder_wavpack.h
index 36f5fc4f8..d7a87cde6 100644
--- a/src/plugins/Input/wavpack/decoder_wavpack.h
+++ b/src/plugins/Input/wavpack/decoder_wavpack.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -62,7 +62,8 @@ private:
unsigned long m_output_size;
qint64 m_totalTime, m_seekTime;
QString m_path;
+ qint64 m_offset;
+ qint64 m_length;
};
-
#endif // DECODER_WAVPACK_H
diff --git a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp b/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
index 72beb95c7..ac4aafbb0 100644
--- a/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
+++ b/src/plugins/Input/wavpack/decoderwavpackfactory.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -20,15 +20,10 @@
#include <QtGui>
-extern "C"
-{
-#include <wavpack/wavpack.h>
-}
-
#include "detailsdialog.h"
#include "decoder_wavpack.h"
#include "decoderwavpackfactory.h"
-
+#include "cueparser.h"
// DecoderWavPackFactory
@@ -54,7 +49,7 @@ const DecoderProperties DecoderWavPackFactory::properties() const
properties.hasAbout = TRUE;
properties.hasSettings = FALSE;
properties.noInput = TRUE;
- properties.protocols = "file";
+ properties.protocols = "file wvpack";
return properties;
}
@@ -69,35 +64,53 @@ QList<FileInfo *> DecoderWavPackFactory::createPlayList(const QString &fileName,
{
QList <FileInfo*> list;
char err[80];
- WavpackContext *ctx = WavpackOpenFileInput (fileName.toLocal8Bit(), err,
- OPEN_WVC | OPEN_TAGS, 0);
+ int cue_len=0;
+ FileInfo *info;
+ WavpackContext *ctx = WavpackOpenFileInput (fileName.toLocal8Bit(), err, OPEN_WVC | OPEN_TAGS, 0);
if (!ctx)
{
qWarning("DecoderWavPackFactory: error: %s", err);
return list;
}
- FileInfo *info = new FileInfo(fileName);
+ info = new FileInfo(fileName);
if (useMetaData)
{
- char value[200];
- WavpackGetTagItem (ctx, "Album", value, sizeof(value));
- info->setMetaData(Qmmp::ALBUM, QString::fromUtf8(value));
- WavpackGetTagItem (ctx, "Artist", value, sizeof(value));
- info->setMetaData(Qmmp::ARTIST, QString::fromUtf8(value));
- WavpackGetTagItem (ctx, "Comment", value, sizeof(value));
- info->setMetaData(Qmmp::COMMENT, QString::fromUtf8(value));
- WavpackGetTagItem (ctx, "Genre", value, sizeof(value));
- info->setMetaData(Qmmp::GENRE, QString::fromUtf8(value));
- WavpackGetTagItem (ctx, "Title", value, sizeof(value));
- info->setMetaData(Qmmp::TITLE, QString::fromUtf8(value));
- WavpackGetTagItem (ctx, "Year", value, sizeof(value));
- info->setMetaData(Qmmp::YEAR, QString::fromUtf8(value).toInt());
- WavpackGetTagItem (ctx, "Track", value, sizeof(value));
- info->setMetaData(Qmmp::TRACK, QString::fromUtf8(value).toInt());
+ cue_len = WavpackGetTagItem (ctx, "cuesheet", NULL, 0);
+ char *value;
+ if (cue_len)
+ {
+ value = (char*)malloc (cue_len * 2 + 1);
+ WavpackGetTagItem (ctx, "cuesheet", value, cue_len + 1);
+ CUEParser parser(value, fileName);
+ list = parser.createPlayList();
+ }
+ else
+ {
+
+ char value[200];
+ WavpackGetTagItem (ctx, "Album", value, sizeof(value));
+ info->setMetaData(Qmmp::ALBUM, QString::fromUtf8(value));
+ WavpackGetTagItem (ctx, "Artist", value, sizeof(value));
+ info->setMetaData(Qmmp::ARTIST, QString::fromUtf8(value));
+ WavpackGetTagItem (ctx, "Comment", value, sizeof(value));
+ info->setMetaData(Qmmp::COMMENT, QString::fromUtf8(value));
+ WavpackGetTagItem (ctx, "Genre", value, sizeof(value));
+ info->setMetaData(Qmmp::GENRE, QString::fromUtf8(value));
+ WavpackGetTagItem (ctx, "Title", value, sizeof(value));
+ info->setMetaData(Qmmp::TITLE, QString::fromUtf8(value));
+ WavpackGetTagItem (ctx, "Year", value, sizeof(value));
+ info->setMetaData(Qmmp::YEAR, QString::fromUtf8(value).toInt());
+ WavpackGetTagItem (ctx, "Track", value, sizeof(value));
+ info->setMetaData(Qmmp::TRACK, QString::fromUtf8(value).toInt());
+ }
+ }
+
+ if (cue_len==0)
+ {
+ info->setLength((int) WavpackGetNumSamples(ctx)/WavpackGetSampleRate(ctx));
+ list << info;
}
- info->setLength((int) WavpackGetNumSamples(ctx)/WavpackGetSampleRate(ctx));
WavpackCloseFile (ctx);
- list << info;
return list;
}
diff --git a/src/plugins/Input/wavpack/decoderwavpackfactory.h b/src/plugins/Input/wavpack/decoderwavpackfactory.h
index 212a240d2..71384e00c 100644
--- a/src/plugins/Input/wavpack/decoderwavpackfactory.h
+++ b/src/plugins/Input/wavpack/decoderwavpackfactory.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2008 by Ilya Kotov *
+ * Copyright (C) 2008-2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -32,10 +32,10 @@
class DecoderWavPackFactory : public QObject,
- DecoderFactory
+ DecoderFactory
{
-Q_OBJECT
-Q_INTERFACES(DecoderFactory);
+ Q_OBJECT
+ Q_INTERFACES(DecoderFactory);
public:
bool supports(const QString &source) const;
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts
index d63aa6bd7..ba8773da1 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts
@@ -3,32 +3,32 @@
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>Modul WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>O modulu WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Vstupní modul Qmmp WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>Verze knihovny WavPack:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>Soubory WavPack</translation>
</message>
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts
index e3a184f8b..7dad1a12a 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="de">
-<defaultcodec></defaultcodec>
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>WavPack-Plugin</translation>
</message>
@@ -14,27 +13,27 @@
<translation type="obsolete">WavPack Dateien</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>Über WavPack-Audio-Plugin</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Qmmp WavPack-Audio-Plugin</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>WavPack-Bibliotheksversion:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>WavPack-Dateien</translation>
</message>
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts
index 987619501..5ac1d7e46 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts
@@ -1,35 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="pl">
-<defaultcodec></defaultcodec>
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>Модуль WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>Файлы WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>Об аудио-модуле WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Аудио-модуль WavPack для Qmmp</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>Версия библиотеки WavPack:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts
index 5c16623c6..5d6e9ba73 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts
@@ -1,35 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>Модуль WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>Файли WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>Про аудіо-модуль WavPack</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Аудіо-модуль WavPack для Qmmp</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>Версія бібліотеки WavPack:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts
index d8086575d..2c4792934 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="zh_CN">
-<defaultcodec></defaultcodec>
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>WavPack 插件</translation>
</message>
@@ -14,27 +13,27 @@
<translation type="obsolete">WavPackk 文件</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>关于 WavPack 音频插件</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Qmmp WavPack 音频插件</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>WavPack 库版本:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>WavPack 文件</translation>
</message>
diff --git a/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts b/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts
index ce6da831c..53d5736e9 100644
--- a/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts
+++ b/src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts
@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="zh_TW">
-<defaultcodec></defaultcodec>
<context>
<name>DecoderWavPackFactory</name>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="28"/>
+ <location filename="../decoderwavpackfactory.cpp" line="44"/>
<source>WavPack Plugin</source>
<translation>WavPack 插件</translation>
</message>
@@ -14,27 +13,27 @@
<translation type="obsolete">WavPackk 檔案</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="89"/>
+ <location filename="../decoderwavpackfactory.cpp" line="129"/>
<source>About WavPack Audio Plugin</source>
<translation>關於 WavPack 聲訊插件</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="90"/>
+ <location filename="../decoderwavpackfactory.cpp" line="130"/>
<source>Qmmp WavPack Audio Plugin</source>
<translation>Qmmp WavPack 聲訊插件</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="92"/>
+ <location filename="../decoderwavpackfactory.cpp" line="132"/>
<source>WavPack library version:</source>
<translation>WavPack 程式庫版本:</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="93"/>
+ <location filename="../decoderwavpackfactory.cpp" line="133"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
<message>
- <location filename="../decoderwavpackfactory.cpp" line="30"/>
+ <location filename="../decoderwavpackfactory.cpp" line="46"/>
<source>WavPack Files</source>
<translation>WavPack 檔案</translation>
</message>
diff --git a/src/plugins/Input/wavpack/wavpack.pro b/src/plugins/Input/wavpack/wavpack.pro
index 54f3e8c1b..70171073c 100644
--- a/src/plugins/Input/wavpack/wavpack.pro
+++ b/src/plugins/Input/wavpack/wavpack.pro
@@ -3,10 +3,12 @@ include(../../plugins.pri)
FORMS += detailsdialog.ui
HEADERS += decoderwavpackfactory.h \
decoder_wavpack.h \
- detailsdialog.h
+ detailsdialog.h \
+ cueparser.h
SOURCES += decoder_wavpack.cpp \
decoderwavpackfactory.cpp \
- detailsdialog.cpp
+ detailsdialog.cpp \
+ cueparser.cpp
TARGET=$$PLUGINS_PREFIX/Input/wavpack
QMAKE_CLEAN =$$PLUGINS_PREFIX/Input/libwavpack.so