diff options
Diffstat (limited to 'src/plugins/Input')
| -rw-r--r-- | src/plugins/Input/wavpack/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.cpp | 188 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/cueparser.h | 58 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.cpp | 59 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoder_wavpack.h | 5 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoderwavpackfactory.cpp | 69 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/decoderwavpackfactory.h | 8 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_cs.ts | 12 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_de.ts | 13 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_ru.ts | 13 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_uk_UA.ts | 13 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_zh_CN.ts | 13 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/translations/wavpack_plugin_zh_TW.ts | 13 | ||||
| -rw-r--r-- | src/plugins/Input/wavpack/wavpack.pro | 6 |
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 <forkotov02@hotmail.ru></source> <translation>Autor: Ilja Kotov <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> <translation>Autor: Ilya Kotov <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> <translation>Розробник: Ілля Котов <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> <translation>作者:Ilya Kotov <forkotov02@hotmail.ru></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 |
