aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-09-22 18:45:40 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-09-22 18:45:40 +0000
commite235adde49d24b6d034ef2b74b28ad2a6cea2fee (patch)
tree052f594f2a861149b95098e80f6ec0dd34664362 /src/plugins/Input
parent7f084cab97cf3ad20b24e0fd1ddc58829b6c07bd (diff)
downloadqmmp-e235adde49d24b6d034ef2b74b28ad2a6cea2fee.tar.gz
qmmp-e235adde49d24b6d034ef2b74b28ad2a6cea2fee.tar.bz2
qmmp-e235adde49d24b6d034ef2b74b28ad2a6cea2fee.zip
enabled mpc plugin, fixed some bugs
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1250 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input')
-rw-r--r--src/plugins/Input/CMakeLists.txt2
-rw-r--r--src/plugins/Input/Input.pro2
-rw-r--r--src/plugins/Input/aac/translations/aac_plugin_ru.ts2
-rw-r--r--src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts2
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.cpp40
-rw-r--r--src/plugins/Input/mad/mpegmetadatamodel.h4
-rw-r--r--src/plugins/Input/mad/translations/mad_plugin_ru.ts2
-rw-r--r--src/plugins/Input/mpc/CMakeLists.txt4
-rw-r--r--src/plugins/Input/mpc/decoder_mpc.cpp10
-rw-r--r--src/plugins/Input/mpc/decoder_mpc.h6
-rw-r--r--src/plugins/Input/mpc/decodermpcfactory.cpp16
-rw-r--r--src/plugins/Input/mpc/decodermpcfactory.h4
-rw-r--r--src/plugins/Input/mpc/detailsdialog.cpp96
-rw-r--r--src/plugins/Input/mpc/mpc.pro4
-rw-r--r--src/plugins/Input/mpc/mpcmetadatamodel.cpp193
-rw-r--r--src/plugins/Input/mpc/mpcmetadatamodel.h (renamed from src/plugins/Input/mpc/detailsdialog.h)53
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_cs.ts58
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_de.ts58
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_it.ts48
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_lt.ts48
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_pl.ts56
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_ru.ts48
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_tr.ts48
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_uk_UA.ts60
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_zh_CN.ts48
-rw-r--r--src/plugins/Input/mpc/translations/mpc_plugin_zh_TW.ts48
-rw-r--r--src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts2
-rw-r--r--src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts2
28 files changed, 536 insertions, 428 deletions
diff --git a/src/plugins/Input/CMakeLists.txt b/src/plugins/Input/CMakeLists.txt
index efcc4774f..66a2f46fa 100644
--- a/src/plugins/Input/CMakeLists.txt
+++ b/src/plugins/Input/CMakeLists.txt
@@ -5,7 +5,7 @@ SET(USE_MAD TRUE CACHE BOOL "enable/disable mad plugin")
SET(USE_FLAC TRUE CACHE BOOL "enable/disable flac plugin")
SET(USE_VORBIS TRUE CACHE BOOL "enable/disable ogg vorbis plugin")
#SET(USE_FFMPEG TRUE CACHE BOOL "enable/disable ffmpeg plugin")
-#SET(USE_MPC TRUE CACHE BOOL "enable/disable mpc plugin")
+SET(USE_MPC TRUE CACHE BOOL "enable/disable mpc plugin")
SET(USE_SNDFILE TRUE CACHE BOOL "enable/disable sndfile plugin")
#SET(USE_WAVPACK TRUE CACHE BOOL "enable/disable wavpack plugin")
#SET(USE_MODPLUG TRUE CACHE BOOL "enable/disable modplug plugin")
diff --git a/src/plugins/Input/Input.pro b/src/plugins/Input/Input.pro
index 0962c76f9..6ba4f6719 100644
--- a/src/plugins/Input/Input.pro
+++ b/src/plugins/Input/Input.pro
@@ -13,7 +13,7 @@ contains(CONFIG, MODPLUG_PLUGIN){
}
contains(CONFIG, MUSEPACK_PLUGIN){
-# SUBDIRS += mpc
+ SUBDIRS += mpc
message(***************************)
message(* Musepack plugin enabled *)
message(***************************)
diff --git a/src/plugins/Input/aac/translations/aac_plugin_ru.ts b/src/plugins/Input/aac/translations/aac_plugin_ru.ts
index 095a3ae1a..e925ffd1c 100644
--- a/src/plugins/Input/aac/translations/aac_plugin_ru.ts
+++ b/src/plugins/Input/aac/translations/aac_plugin_ru.ts
@@ -127,7 +127,7 @@
<message>
<location filename="../detailsdialog.cpp" line="69"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation>КБ</translation>
</message>
<message>
<location filename="../detailsdialog.ui" line="14"/>
diff --git a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts
index 7aee87b75..7434cdf86 100644
--- a/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts
+++ b/src/plugins/Input/ffmpeg/translations/ffmpeg_plugin_ru.ts
@@ -44,7 +44,7 @@
<message>
<location filename="../detailsdialog.cpp" line="80"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation>КБ</translation>
</message>
<message>
<location filename="../detailsdialog.cpp" line="80"/>
diff --git a/src/plugins/Input/mad/mpegmetadatamodel.cpp b/src/plugins/Input/mad/mpegmetadatamodel.cpp
index 7880f64fb..85a3d88f4 100644
--- a/src/plugins/Input/mad/mpegmetadatamodel.cpp
+++ b/src/plugins/Input/mad/mpegmetadatamodel.cpp
@@ -36,25 +36,25 @@
MPEGMetaDataModel::MPEGMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
{
- m_path = path;
- m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::ID3v1);
- m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::ID3v2);
- m_tags << new MpegFileTagModel(path, TagLib::MPEG::File::APE);
+ m_file = new TagLib::MPEG::File(path.toLocal8Bit().constData());
+ m_tags << new MpegFileTagModel(m_file, TagLib::MPEG::File::ID3v1);
+ m_tags << new MpegFileTagModel(m_file, TagLib::MPEG::File::ID3v2);
+ m_tags << new MpegFileTagModel(m_file, TagLib::MPEG::File::APE);
}
MPEGMetaDataModel::~MPEGMetaDataModel()
{
while(!m_tags.isEmpty())
delete m_tags.takeFirst();
+ delete m_file;
}
QHash<QString, QString> MPEGMetaDataModel::audioProperties()
{
QHash<QString, QString> ap;
- TagLib::MPEG::File f (m_path.toLocal8Bit().constData());
QString text;
QString v;
- switch((int)f.audioProperties()->version())
+ switch((int)m_file->audioProperties()->version())
{
case TagLib::MPEG::Header::Version1:
v = "1";
@@ -65,13 +65,13 @@ QHash<QString, QString> MPEGMetaDataModel::audioProperties()
case TagLib::MPEG::Header::Version2_5:
v = "2.5";
}
- text = QString("MPEG-%1 layer %2").arg(v).arg(f.audioProperties()->layer());
+ text = QString("MPEG-%1 layer %2").arg(v).arg(m_file->audioProperties()->layer());
ap.insert(tr("Format"), text);
- text = QString("%1").arg(f.audioProperties()->bitrate());
+ text = QString("%1").arg(m_file->audioProperties()->bitrate());
ap.insert(tr("Bitrate"), text+" "+tr("kbps"));
- text = QString("%1").arg(f.audioProperties()->sampleRate());
+ text = QString("%1").arg(m_file->audioProperties()->sampleRate());
ap.insert(tr("Samplerate"), text+" "+tr("Hz"));
- switch (f.audioProperties()->channelMode())
+ switch (m_file->audioProperties()->channelMode())
{
case TagLib::MPEG::Header::Stereo:
ap.insert(tr("Mode"), "Stereo");
@@ -86,17 +86,17 @@ QHash<QString, QString> MPEGMetaDataModel::audioProperties()
ap.insert(tr("Mode"), "Single channel");
break;
}
- text = QString("%1 "+tr("KB")).arg(f.length()/1024);
+ text = QString("%1 "+tr("KB")).arg(m_file->length()/1024);
ap.insert(tr("File size"), text);
- if (f.audioProperties()->protectionEnabled())
+ if (m_file->audioProperties()->protectionEnabled())
ap.insert(tr("Protection"), tr("Yes"));
else
ap.insert(tr("Protection"), tr("No"));
- if (f.audioProperties()->isCopyrighted())
+ if (m_file->audioProperties()->isCopyrighted())
ap.insert(tr("Copyright"), tr("Yes"));
else
ap.insert(tr("Copyright"), tr("No"));
- if (f.audioProperties()->isOriginal())
+ if (m_file->audioProperties()->isOriginal())
ap.insert(tr("Original"), tr("Yes"));
else
ap.insert(tr("Original"), tr("No"));
@@ -108,10 +108,11 @@ QList<TagModel* > MPEGMetaDataModel::tags()
return m_tags;
}
-MpegFileTagModel::MpegFileTagModel(const QString &path, TagLib::MPEG::File::TagTypes tagType) : TagModel()
+MpegFileTagModel::MpegFileTagModel(TagLib::MPEG::File *file, TagLib::MPEG::File::TagTypes tagType)
+ : TagModel()
{
m_tagType = tagType;
- m_file = new TagLib::MPEG::File (path.toLocal8Bit().constData());
+ m_file = file;
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("MAD");
if (m_tagType == TagLib::MPEG::File::ID3v1)
@@ -137,9 +138,7 @@ MpegFileTagModel::MpegFileTagModel(const QString &path, TagLib::MPEG::File::TagT
}
MpegFileTagModel::~MpegFileTagModel()
-{
- delete m_file;
-}
+{}
const QString MpegFileTagModel::name()
{
@@ -316,10 +315,7 @@ void MpegFileTagModel::remove()
void MpegFileTagModel::save()
{
if(m_tag)
- {
- m_file->save(m_tagType, FALSE); //??
m_file->save(m_tagType, FALSE);
- }
else
m_file->strip(m_tagType);
}
diff --git a/src/plugins/Input/mad/mpegmetadatamodel.h b/src/plugins/Input/mad/mpegmetadatamodel.h
index 06ba24735..2ed2a86f9 100644
--- a/src/plugins/Input/mad/mpegmetadatamodel.h
+++ b/src/plugins/Input/mad/mpegmetadatamodel.h
@@ -36,14 +36,14 @@ public:
QList<TagModel* > tags();
private:
- QString m_path;
QList<TagModel* > m_tags;
+ TagLib::MPEG::File *m_file;
};
class MpegFileTagModel : public TagModel
{
public:
- MpegFileTagModel(const QString &path, TagLib::MPEG::File::TagTypes tagType);
+ MpegFileTagModel(TagLib::MPEG::File *file, TagLib::MPEG::File::TagTypes tagType);
~MpegFileTagModel();
const QString name();
QList<Qmmp::MetaData> keys();
diff --git a/src/plugins/Input/mad/translations/mad_plugin_ru.ts b/src/plugins/Input/mad/translations/mad_plugin_ru.ts
index d471fea15..35a39d3a4 100644
--- a/src/plugins/Input/mad/translations/mad_plugin_ru.ts
+++ b/src/plugins/Input/mad/translations/mad_plugin_ru.ts
@@ -77,7 +77,7 @@
<message>
<location filename="../mpegmetadatamodel.cpp" line="89"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation>КБ</translation>
</message>
<message>
<location filename="../mpegmetadatamodel.cpp" line="90"/>
diff --git a/src/plugins/Input/mpc/CMakeLists.txt b/src/plugins/Input/mpc/CMakeLists.txt
index b8f387fc9..825daf9b9 100644
--- a/src/plugins/Input/mpc/CMakeLists.txt
+++ b/src/plugins/Input/mpc/CMakeLists.txt
@@ -45,13 +45,13 @@ link_directories(${TAGLIB_LIBRARY_DIRS})
SET(libmpc_SRCS
decoder_mpc.cpp
decodermpcfactory.cpp
- detailsdialog.cpp
+ mpcmetadatamodel.cpp
)
SET(libmpc_MOC_HDRS
decodermpcfactory.h
decoder_mpc.h
- detailsdialog.h
+ mpcmetadatamodel.h
)
SET(libmpc_RCCS translations/translations.qrc)
diff --git a/src/plugins/Input/mpc/decoder_mpc.cpp b/src/plugins/Input/mpc/decoder_mpc.cpp
index b859d6ebd..0cf6c1c59 100644
--- a/src/plugins/Input/mpc/decoder_mpc.cpp
+++ b/src/plugins/Input/mpc/decoder_mpc.cpp
@@ -121,8 +121,8 @@ static mpc_int32_t mpc_callback_get_size (mpc_reader *reader)
// Decoder class
-DecoderMPC::DecoderMPC(QObject *parent, DecoderFactory *d, QIODevice *i, Output *o)
- : Decoder(parent, d, i, o)
+DecoderMPC::DecoderMPC(QIODevice *i)
+ : Decoder(i)
{
m_len = 0;
m_bitrate = 0;
@@ -208,7 +208,6 @@ bool DecoderMPC::initialize()
return TRUE;
}
-
qint64 DecoderMPC::totalTime()
{
return m_totalTime;
@@ -219,7 +218,7 @@ int DecoderMPC::bitrate()
return m_bitrate;
}
-qint64 DecoderMPC::readAudio(char *audio, qint64 maxSize)
+qint64 DecoderMPC::read(char *audio, qint64 maxSize)
{
#ifdef MPC_OLD_API
mpc_uint32_t vbrAcc = 0;
@@ -256,7 +255,7 @@ qint64 DecoderMPC::readAudio(char *audio, qint64 maxSize)
return m_len;
}
-void DecoderMPC::seekAudio(qint64 pos)
+void DecoderMPC::seek(qint64 pos)
{
#ifdef MPC_OLD_API
mpc_decoder_seek_seconds(&data()->decoder, pos/1000);
@@ -264,4 +263,3 @@ void DecoderMPC::seekAudio(qint64 pos)
mpc_demux_seek_second(data()->demuxer, (double)pos/1000);
#endif
}
-
diff --git a/src/plugins/Input/mpc/decoder_mpc.h b/src/plugins/Input/mpc/decoder_mpc.h
index b4e148706..7a8d3260a 100644
--- a/src/plugins/Input/mpc/decoder_mpc.h
+++ b/src/plugins/Input/mpc/decoder_mpc.h
@@ -43,7 +43,7 @@ struct mpc_data
class DecoderMPC : public Decoder
{
public:
- DecoderMPC(QObject *, DecoderFactory *, QIODevice *, Output *);
+ DecoderMPC(QIODevice *i);
virtual ~DecoderMPC();
struct mpc_data *data()
@@ -55,10 +55,10 @@ public:
bool initialize();
qint64 totalTime();
int bitrate();
+ qint64 read(char *audio, qint64 maxSize);
+ void seek(qint64 time);
private:
- virtual qint64 readAudio(char *audio, qint64 maxSize);
- void seekAudio(qint64 time);
struct mpc_data *m_data;
long m_len;
diff --git a/src/plugins/Input/mpc/decodermpcfactory.cpp b/src/plugins/Input/mpc/decodermpcfactory.cpp
index 323637c8b..000015b6f 100644
--- a/src/plugins/Input/mpc/decodermpcfactory.cpp
+++ b/src/plugins/Input/mpc/decodermpcfactory.cpp
@@ -23,8 +23,7 @@
#include <taglib/fileref.h>
#include <taglib/mpcfile.h>
#include <taglib/apetag.h>
-
-#include "detailsdialog.h"
+#include "mpcmetadatamodel.h"
#include "decoder_mpc.h"
#include "decodermpcfactory.h"
@@ -55,10 +54,9 @@ const DecoderProperties DecoderMPCFactory::properties() const
return properties;
}
-Decoder *DecoderMPCFactory::create(QObject *parent, QIODevice *input,
- Output *output, const QString &)
+Decoder *DecoderMPCFactory::create(const QString &, QIODevice *i)
{
- return new DecoderMPC(parent, this, input, output);
+ return new DecoderMPC(i);
}
QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, bool useMetaData)
@@ -98,11 +96,9 @@ QList<FileInfo *> DecoderMPCFactory::createPlayList(const QString &fileName, boo
return list;
}
-QObject* DecoderMPCFactory::showDetails(QWidget *parent, const QString &path)
+MetaDataModel* DecoderMPCFactory::createMetaDataModel(const QString &path, QObject *parent)
{
- DetailsDialog *d = new DetailsDialog(parent, path);
- d -> show();
- return d;
+ return new MPCMetaDataModel(path, parent);
}
void DecoderMPCFactory::showSettings(QWidget *)
@@ -123,4 +119,4 @@ QTranslator *DecoderMPCFactory::createTranslator(QObject *parent)
return translator;
}
-Q_EXPORT_PLUGIN(DecoderMPCFactory)
+Q_EXPORT_PLUGIN2(mpc,DecoderMPCFactory)
diff --git a/src/plugins/Input/mpc/decodermpcfactory.h b/src/plugins/Input/mpc/decodermpcfactory.h
index 76ca2b0f4..c617dd0fd 100644
--- a/src/plugins/Input/mpc/decodermpcfactory.h
+++ b/src/plugins/Input/mpc/decodermpcfactory.h
@@ -43,9 +43,9 @@ public:
bool supports(const QString &source) const;
bool canDecode(QIODevice *input) const;
const DecoderProperties properties() const;
- Decoder *create(QObject *, QIODevice *, Output *, const QString &);
+ Decoder *create(const QString &url, QIODevice *i);
QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData);
- QObject* showDetails(QWidget *parent, const QString &path);
+ MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0);
void showSettings(QWidget *parent);
void showAbout(QWidget *parent);
QTranslator *createTranslator(QObject *parent);
diff --git a/src/plugins/Input/mpc/detailsdialog.cpp b/src/plugins/Input/mpc/detailsdialog.cpp
deleted file mode 100644
index 80a7fd108..000000000
--- a/src/plugins/Input/mpc/detailsdialog.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2007 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 <taglib/tag.h>
-#include <taglib/fileref.h>
-#include <taglib/mpcfile.h>
-#include <taglib/apetag.h>
-
-#include <QFile>
-#include <QFileInfo>
-
-#include "detailsdialog.h"
-
-#define QStringToTString_qt4(s) TagLib::String(s.toUtf8().constData(), TagLib::String::UTF8)
-#define TStringToQString_qt4(s) QString::fromUtf8(s.toCString(TRUE)).trimmed()
-
-DetailsDialog::DetailsDialog(QWidget *parent, const QString &path)
- : AbstractDetailsDialog(parent)
-{
- m_path = path;
- if (QFile::exists(m_path))
- {
- loadMPCInfo();
- loadTags();
- blockSaveButton(!QFileInfo(m_path).isWritable());
- }
- else
- blockSaveButton();
-}
-
-DetailsDialog::~DetailsDialog()
-{}
-
-void DetailsDialog::loadMPCInfo()
-{
- TagLib::MPC::File f (m_path.toLocal8Bit());
- QMap <QString, QString> ap;
- QString text = QString("%1").arg(f.audioProperties()->length()/60);
- text +=":"+QString("%1").arg(f.audioProperties()->length()%60,2,10,QChar('0'));
- ap.insert(tr("Length"), text);
- ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(f.audioProperties()->sampleRate()));
- ap.insert(tr("Channels"), QString("%1").arg(f.audioProperties()->channels()));
- ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(f.audioProperties()->bitrate()));
- ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(f.length()/1024));
- setAudioProperties(ap);
-}
-
-void DetailsDialog::loadTags()
-{
- TagLib::FileRef f (m_path.toLocal8Bit());
- setMetaData(Qmmp::TITLE, TStringToQString_qt4(f.tag()->title()));
- setMetaData(Qmmp::ARTIST, TStringToQString_qt4(f.tag()->artist()));
- setMetaData(Qmmp::ALBUM, TStringToQString_qt4(f.tag()->album()));
- setMetaData(Qmmp::COMMENT, TStringToQString_qt4(f.tag()->comment()));
- setMetaData(Qmmp::GENRE, TStringToQString_qt4(f.tag()->genre()));
- setMetaData(Qmmp::YEAR, f.tag()->year());
- setMetaData(Qmmp::TRACK, f.tag()->track());
- setMetaData(Qmmp::URL, m_path);
- TagLib::MPC::File *file = dynamic_cast<TagLib::MPC::File *>(f.file());
- TagLib::APE::Item fld;
- if(file->APETag() && !(fld = file->APETag()->itemListMap()["COMPOSER"]).isEmpty())
- setMetaData(Qmmp::COMPOSER, TStringToQString_qt4(fld.toString()));
-}
-
-void DetailsDialog::writeTags()
-{
- TagLib::FileRef f (m_path.toLocal8Bit());
- f.tag()->setTitle(QStringToTString_qt4(strMetaData(Qmmp::TITLE)));
- f.tag()->setArtist(QStringToTString_qt4(strMetaData(Qmmp::ARTIST)));
- f.tag()->setAlbum(QStringToTString_qt4(strMetaData(Qmmp::ALBUM)));
- f.tag()->setComment(QStringToTString_qt4(strMetaData(Qmmp::COMMENT)));
- f.tag()->setGenre(QStringToTString_qt4(strMetaData(Qmmp::GENRE)));
- f.tag()->setYear(intMetaData(Qmmp::YEAR));
- f.tag()->setTrack(intMetaData(Qmmp::TRACK));
- TagLib::MPC::File *file = dynamic_cast<TagLib::MPC::File *>(f.file());
- strMetaData(Qmmp::COMPOSER).isEmpty() ?
- file->APETag()->removeItem("COMPOSER"):
- file->APETag()->addValue("COMPOSER", QStringToTString_qt4(strMetaData(Qmmp::COMPOSER)), TRUE);
- f.save();
-}
diff --git a/src/plugins/Input/mpc/mpc.pro b/src/plugins/Input/mpc/mpc.pro
index df97117c8..8ca63a6c6 100644
--- a/src/plugins/Input/mpc/mpc.pro
+++ b/src/plugins/Input/mpc/mpc.pro
@@ -2,10 +2,10 @@ include(../../plugins.pri)
FORMS +=
HEADERS += decodermpcfactory.h \
decoder_mpc.h \
- detailsdialog.h
+ mpcmetadatamodel.h
SOURCES += decoder_mpc.cpp \
decodermpcfactory.cpp \
- detailsdialog.cpp
+ mpcmetadatamodel.cpp
TARGET = $$PLUGINS_PREFIX/Input/mpc
QMAKE_CLEAN = $$PLUGINS_PREFIX/Input/libmpc.so
INCLUDEPATH += ../../../
diff --git a/src/plugins/Input/mpc/mpcmetadatamodel.cpp b/src/plugins/Input/mpc/mpcmetadatamodel.cpp
new file mode 100644
index 000000000..5ae31eeac
--- /dev/null
+++ b/src/plugins/Input/mpc/mpcmetadatamodel.cpp
@@ -0,0 +1,193 @@
+/***************************************************************************
+ * Copyright (C) 2009 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 <QTextCodec>
+#include <taglib/tag.h>
+#include <taglib/id3v1tag.h>
+#include <taglib/apetag.h>
+#include "mpcmetadatamodel.h"
+
+MPCMetaDataModel::MPCMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
+{
+ m_file = new TagLib::MPC::File (path.toLocal8Bit().constData());
+ m_tags << new MPCFileTagModel(m_file, TagLib::MPC::File::ID3v1);
+ m_tags << new MPCFileTagModel(m_file, TagLib::MPC::File::APE);
+}
+
+MPCMetaDataModel::~MPCMetaDataModel()
+{
+ while(!m_tags.isEmpty())
+ delete m_tags.takeFirst();
+ delete m_file;
+}
+
+QHash<QString, QString> MPCMetaDataModel::audioProperties()
+{
+ QHash<QString, QString> ap;
+ QString text = QString("%1").arg(m_file->audioProperties()->length()/60);
+ text +=":"+QString("%1").arg(m_file->audioProperties()->length()%60,2,10,QChar('0'));
+ ap.insert(tr("Length"), text);
+ ap.insert(tr("Sample rate"), QString("%1 " + tr("Hz")).arg(m_file->audioProperties()->sampleRate()));
+ ap.insert(tr("Channels"), QString("%1").arg(m_file->audioProperties()->channels()));
+ ap.insert(tr("Bitrate"), QString("%1 " + tr("kbps")).arg(m_file->audioProperties()->bitrate()));
+ ap.insert(tr("File size"), QString("%1 "+tr("KB")).arg(m_file->length()/1024));
+ return ap;
+}
+
+QList<TagModel* > MPCMetaDataModel::tags()
+{
+ return m_tags;
+}
+
+MPCFileTagModel::MPCFileTagModel(TagLib::MPC::File *file, TagLib::MPC::File::TagTypes tagType)
+ : TagModel()
+{
+ m_tagType = tagType;
+ m_file = file;
+ if (m_tagType == TagLib::MPC::File::ID3v1)
+ {
+ m_tag = m_file->ID3v1Tag();
+ m_codec = QTextCodec::codecForName("ISO-8859-1");
+ }
+ else
+ {
+ m_tag = m_file->APETag();
+ m_codec = QTextCodec::codecForName ("UTF-8");
+ }
+}
+
+MPCFileTagModel::~MPCFileTagModel()
+{}
+
+const QString MPCFileTagModel::name()
+{
+ if (m_tagType == TagLib::MPC::File::ID3v1)
+ return "ID3v1";
+ return "APE";
+}
+
+QList<Qmmp::MetaData> MPCFileTagModel::keys()
+{
+ QList<Qmmp::MetaData> list = TagModel::keys();
+ list.removeAll(Qmmp::COMPOSER);
+ list.removeAll(Qmmp::DISCNUMBER);
+ return list;
+}
+
+const QString MPCFileTagModel::value(Qmmp::MetaData key)
+{
+ if (m_tag)
+ {
+ bool utf = m_codec->name().contains("UTF");
+ TagLib::String str;
+ switch((int) key)
+ {
+ case Qmmp::TITLE:
+ str = m_tag->title();
+ break;
+ case Qmmp::ARTIST:
+ str = m_tag->artist();
+ break;
+ case Qmmp::ALBUM:
+ str = m_tag->album();
+ break;
+ case Qmmp::COMMENT:
+ str = m_tag->comment();
+ break;
+ case Qmmp::GENRE:
+ str = m_tag->genre();
+ break;
+ case Qmmp::YEAR:
+ return QString::number(m_tag->year());
+ case Qmmp::TRACK:
+ return QString::number(m_tag->track());
+ }
+ return m_codec->toUnicode(str.toCString(utf)).trimmed();
+ }
+ return QString();
+}
+
+void MPCFileTagModel::setValue(Qmmp::MetaData key, const QString &value)
+{
+ if(!m_tag)
+ return;
+ TagLib::String::Type type = TagLib::String::Latin1;
+
+ if (m_tagType == TagLib::MPC::File::ID3v1)
+ {
+ if(m_codec->name().contains("UTF")) //utf is unsupported
+ return;
+ }
+ else if(m_tagType == TagLib::MPC::File::APE)
+ type = TagLib::String::UTF8;
+
+ TagLib::String str = TagLib::String(m_codec->fromUnicode(value).constData(), type);
+
+ switch((int) key)
+ {
+ case Qmmp::TITLE:
+ m_tag->setTitle(str);
+ break;
+ case Qmmp::ARTIST:
+ m_tag->setArtist(str);
+ break;
+ case Qmmp::ALBUM:
+ m_tag->setAlbum(str);
+ break;
+ case Qmmp::COMMENT:
+ m_tag->setComment(str);
+ break;
+ case Qmmp::GENRE:
+ m_tag->setGenre(str);
+ break;
+ case Qmmp::YEAR:
+ m_tag->setYear(value.toInt());
+ break;
+ case Qmmp::TRACK:
+ m_tag->setTrack(value.toInt());
+ }
+}
+
+bool MPCFileTagModel::exists()
+{
+ return (m_tag != 0);
+}
+
+void MPCFileTagModel::create()
+{
+ if (m_tag)
+ return;
+ if (m_tagType == TagLib::MPC::File::ID3v1)
+ m_tag = m_file->ID3v1Tag(TRUE);
+ else
+ m_tag = m_file->APETag(TRUE);
+}
+
+void MPCFileTagModel::remove()
+{
+ m_tag = 0;
+}
+
+void MPCFileTagModel::save()
+{
+ if(!m_tag)
+ m_file->strip(m_tagType);
+ m_file->save();
+}
diff --git a/src/plugins/Input/mpc/detailsdialog.h b/src/plugins/Input/mpc/mpcmetadatamodel.h
index 089daca1f..5bab8b00e 100644
--- a/src/plugins/Input/mpc/detailsdialog.h
+++ b/src/plugins/Input/mpc/mpcmetadatamodel.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007 by Ilya Kotov *
+ * Copyright (C) 2009 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -17,28 +17,49 @@
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
***************************************************************************/
-#ifndef DETAILSDIALOG_H
-#define DETAILSDIALOG_H
-#include <qmmp/abstractdetailsdialog.h>
+#ifndef MPCMETADATAMODEL_H
+#define MPCMETADATAMODEL_H
-/**
- @author Ilya Kotov <forkotov02@hotmail.ru>
-*/
-class DetailsDialog : public AbstractDetailsDialog
+#include <qmmp/metadatamodel.h>
+#include <taglib/tag.h>
+#include <taglib/mpcfile.h>
+
+class QTextCodec;
+
+class MPCMetaDataModel : public MetaDataModel
{
Q_OBJECT
public:
- DetailsDialog(QWidget *parent = 0, const QString &path = 0);
-
- ~DetailsDialog();
+ MPCMetaDataModel(const QString &path, QObject *parent);
+ ~MPCMetaDataModel();
+ QHash<QString, QString> audioProperties();
+ QList<TagModel* > tags();
private:
- void loadMPCInfo();
- void loadTags();
- void writeTags();
- QString m_path;
+ QList<TagModel* > m_tags;
+ TagLib::MPC::File *m_file;
+};
+class MPCFileTagModel : public TagModel
+{
+public:
+ MPCFileTagModel(TagLib::MPC::File *file, TagLib::MPC::File::TagTypes tagType);
+ ~MPCFileTagModel();
+ const QString name();
+ QList<Qmmp::MetaData> keys();
+ const QString value(Qmmp::MetaData key);
+ void setValue(Qmmp::MetaData key, const QString &value);
+ bool exists();
+ void create();
+ void remove();
+ void save();
+
+private:
+ QTextCodec *m_codec;
+ TagLib::MPC::File *m_file;
+ TagLib::Tag *m_tag;
+ TagLib::MPC::File::TagTypes m_tagType;
};
-#endif
+#endif // MPCMETADATAMODEL_H
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_cs.ts b/src/plugins/Input/mpc/translations/mpc_plugin_cs.ts
index ada260e0f..7d9b2f508 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_cs.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_cs.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Modul Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Soubory Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>O modulu Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Vstupní modul Qmmp Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
- <translation>Délka</translation>
+ <translation type="unfinished">Délka</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
- <translation>Vzorkovací frekvence</translation>
+ <translation type="unfinished">Vzorkovací frekvence</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
<source>Channels</source>
- <translation>Počet kanálů</translation>
+ <translation type="unfinished">Počet kanálů</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
- <translation>Datový tok</translation>
+ <translation type="unfinished">Datový tok</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
- <translation>Velikost souboru</translation>
+ <translation type="unfinished">Velikost souboru</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
</message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_de.ts b/src/plugins/Input/mpc/translations/mpc_plugin_de.ts
index 715450940..9c270725a 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_de.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_de.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Musepack-Modul</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Musepack-Dateien</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Über Musepack-Audio-Modul</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Qmmp Musepack-Audio-Modul</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
- <translation>Länge</translation>
+ <translation type="unfinished">Länge</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
- <translation>Abtastrate</translation>
+ <translation type="unfinished">Abtastrate</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
<source>Channels</source>
- <translation>Kanäle</translation>
+ <translation type="unfinished">Kanäle</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
- <translation>Bitrate</translation>
+ <translation type="unfinished">Bitrate</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
- <translation>Dateigröße</translation>
+ <translation type="unfinished">Dateigröße</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
</message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_it.ts b/src/plugins/Input/mpc/translations/mpc_plugin_it.ts
index 51345e7ca..be7a7d958 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_it.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_it.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Modulo Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Brani Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Info sul modulo audio Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Modulo audio Musepack per Qmmp</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autore: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
<source>Channels</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_lt.ts b/src/plugins/Input/mpc/translations/mpc_plugin_lt.ts
index 1e6b30ad1..0c7b165b4 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_lt.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_lt.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Musepack įskiepis</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Musepack bylos</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Apie Qmmp Musepack įskiepį</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Qmmp Musepack įskiepis</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Sukūrė: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_pl.ts b/src/plugins/Input/mpc/translations/mpc_plugin_pl.ts
index c829ca6eb..6c9886478 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_pl.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_pl.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Wtyczka Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Pliki Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>O wtyczce Musepack Audio</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Wtyczka Musepack Audio dla Qmmp</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
- <translation>Długość</translation>
+ <translation type="unfinished">Długość</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
- <translation>Próbkowanie</translation>
+ <translation type="unfinished">Próbkowanie</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation>Kanały</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished">Kanały</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
- <translation>Szybkość transmisji</translation>
+ <translation type="unfinished">Szybkość transmisji</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
- <translation>Wielkość pliku</translation>
+ <translation type="unfinished">Wielkość pliku</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_ru.ts b/src/plugins/Input/mpc/translations/mpc_plugin_ru.ts
index 3467b0b1f..a1ee2f813 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_ru.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_ru.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Модуль Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Файлы Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Об аудио-модуле Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Аудио-модуль Musepack для Qmmp</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Гц</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation>Длительность</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation>Дискретизация</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation>Каналов</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation>Гц</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>Кб/с</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation>Каналов</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation>Битовая частота</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>Кб</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation>Кб/с</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation>Размер файла</translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation>КБ</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_tr.ts b/src/plugins/Input/mpc/translations/mpc_plugin_tr.ts
index 046fa215b..a8060fcb2 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_tr.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_tr.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Musepack Eklentisi</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Musepack Dosyaları</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Musepack Ses Eklentisi Hakkında</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Qmmp Musepack Ses Eklentisi</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Yazan: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_uk_UA.ts b/src/plugins/Input/mpc/translations/mpc_plugin_uk_UA.ts
index 84e566100..7775cf9c7 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_uk_UA.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_uk_UA.ts
@@ -1,75 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS><TS version="1.1" language="uk">
-<defaultcodec></defaultcodec>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Модуль Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Файли Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>Про аудіо-модуль Musepack</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Аудіо-модуль Musepack для Qmmp</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Гц</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
- <translation>Тривалість</translation>
+ <translation type="unfinished">Тривалість</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
- <translation>Частота</translation>
+ <translation type="unfinished">Частота</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation>Канали</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Гц</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>Кб/с</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished">Канали</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
- <translation>Бітрейт</translation>
+ <translation type="unfinished">Бітрейт</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>Кб</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">Кб/с</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
- <translation>Розмір файлу</translation>
+ <translation type="unfinished">Розмір файлу</translation>
+ </message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">Кб</translation>
</message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_zh_CN.ts b/src/plugins/Input/mpc/translations/mpc_plugin_zh_CN.ts
index 0a9379d81..5e3998793 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_zh_CN.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_zh_CN.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Musepack 插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Musepack 文件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>关于 Musepack 音频插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Qmmp Musepack 音频插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mpc/translations/mpc_plugin_zh_TW.ts b/src/plugins/Input/mpc/translations/mpc_plugin_zh_TW.ts
index 192074cd5..943fbfa65 100644
--- a/src/plugins/Input/mpc/translations/mpc_plugin_zh_TW.ts
+++ b/src/plugins/Input/mpc/translations/mpc_plugin_zh_TW.ts
@@ -4,72 +4,72 @@
<context>
<name>DecoderMPCFactory</name>
<message>
- <location filename="../decodermpcfactory.cpp" line="48"/>
+ <location filename="../decodermpcfactory.cpp" line="47"/>
<source>Musepack Plugin</source>
<translation>Musepack 插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="50"/>
+ <location filename="../decodermpcfactory.cpp" line="49"/>
<source>Musepack Files</source>
<translation>Musepack 檔案</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="113"/>
+ <location filename="../decodermpcfactory.cpp" line="109"/>
<source>About Musepack Audio Plugin</source>
<translation>關於 Musepack 聲訊插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="114"/>
+ <location filename="../decodermpcfactory.cpp" line="110"/>
<source>Qmmp Musepack Audio Plugin</source>
<translation>Qmmp Musepack 聲訊插件</translation>
</message>
<message>
- <location filename="../decodermpcfactory.cpp" line="115"/>
+ <location filename="../decodermpcfactory.cpp" line="111"/>
<source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
<translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
</message>
</context>
<context>
- <name>DetailsDialog</name>
+ <name>MPCMetaDataModel</name>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
- <source>Hz</source>
- <translation>Hz</translation>
- </message>
- <message>
- <location filename="../detailsdialog.cpp" line="56"/>
+ <location filename="../mpcmetadatamodel.cpp" line="46"/>
<source>Length</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="57"/>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
<source>Sample rate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="58"/>
- <source>Channels</source>
- <translation type="unfinished"></translation>
+ <location filename="../mpcmetadatamodel.cpp" line="47"/>
+ <source>Hz</source>
+ <translation type="unfinished">Hz</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
- <source>kbps</source>
- <translation>kbps</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="48"/>
+ <source>Channels</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="59"/>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
<source>Bitrate</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
- <source>KB</source>
- <translation>KB</translation>
+ <location filename="../mpcmetadatamodel.cpp" line="49"/>
+ <source>kbps</source>
+ <translation type="unfinished">kbps</translation>
</message>
<message>
- <location filename="../detailsdialog.cpp" line="60"/>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
<source>File size</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <location filename="../mpcmetadatamodel.cpp" line="50"/>
+ <source>KB</source>
+ <translation type="unfinished">KB</translation>
+ </message>
</context>
</TS>
diff --git a/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts b/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts
index 0fabd7c71..b4169c849 100644
--- a/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts
+++ b/src/plugins/Input/mplayer/translations/mplayer_plugin_ru.ts
@@ -71,7 +71,7 @@
<message>
<location filename="../detailsdialog.cpp" line="33"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation>КБ</translation>
</message>
<message>
<location filename="../detailsdialog.ui" line="51"/>
diff --git a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts
index c27ae7eef..a24ab44e1 100644
--- a/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts
+++ b/src/plugins/Input/vorbis/translations/vorbis_plugin_ru.ts
@@ -74,7 +74,7 @@
<message>
<location filename="../vorbismetadatamodel.cpp" line="53"/>
<source>KB</source>
- <translation>Кб</translation>
+ <translation>КБ</translation>
</message>
</context>
</TS>