aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Engines/mplayer
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-10-09 20:01:12 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2009-10-09 20:01:12 +0000
commit7a3c89bf2d71b74a8edbc39ec1264c68307cc888 (patch)
treed1d062c44d9d3c29d5299a59305585e87b00190b /src/plugins/Engines/mplayer
parent75380f4441ca591b3a501a13da8fe2428f730933 (diff)
downloadqmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.tar.gz
qmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.tar.bz2
qmmp-7a3c89bf2d71b74a8edbc39ec1264c68307cc888.zip
added engine api, enabled mplayer plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1296 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Engines/mplayer')
-rw-r--r--src/plugins/Engines/mplayer/CMakeLists.txt66
-rw-r--r--src/plugins/Engines/mplayer/mplayer.pro34
-rw-r--r--src/plugins/Engines/mplayer/mplayerengine.cpp262
-rw-r--r--src/plugins/Engines/mplayer/mplayerengine.h83
-rw-r--r--src/plugins/Engines/mplayer/mplayerenginefactory.cpp96
-rw-r--r--src/plugins/Engines/mplayer/mplayerenginefactory.h49
-rw-r--r--src/plugins/Engines/mplayer/mplayermetadatamodel.cpp106
-rw-r--r--src/plugins/Engines/mplayer/mplayermetadatamodel.h38
-rw-r--r--src/plugins/Engines/mplayer/settingsdialog.cpp69
-rw-r--r--src/plugins/Engines/mplayer/settingsdialog.h46
-rw-r--r--src/plugins/Engines/mplayer/settingsdialog.ui141
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts187
-rw-r--r--src/plugins/Engines/mplayer/translations/translations.qrc15
22 files changed, 2875 insertions, 0 deletions
diff --git a/src/plugins/Engines/mplayer/CMakeLists.txt b/src/plugins/Engines/mplayer/CMakeLists.txt
new file mode 100644
index 000000000..1dea9477b
--- /dev/null
+++ b/src/plugins/Engines/mplayer/CMakeLists.txt
@@ -0,0 +1,66 @@
+project(libmplayer)
+
+cmake_minimum_required(VERSION 2.4.7)
+
+if(COMMAND cmake_policy)
+cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+
+# qt plugin
+ADD_DEFINITIONS( -Wall )
+ADD_DEFINITIONS(${QT_DEFINITIONS})
+ADD_DEFINITIONS(-DQT_PLUGIN)
+ADD_DEFINITIONS(-DQT_NO_DEBUG)
+ADD_DEFINITIONS(-DQT_SHARED)
+ADD_DEFINITIONS(-DQT_THREAD)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+SET(QT_INCLUDES
+ ${QT_INCLUDES}
+ ${CMAKE_CURRENT_BINARY_DIR}/../../../
+)
+
+# libqmmp
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
+
+
+SET(libmplayer_SRCS
+ mplayerenginefactory.cpp
+ mplayerengine.cpp
+ mplayermetadatamodel.cpp
+ settingsdialog.cpp
+)
+
+SET(libmplayer_MOC_HDRS
+ mplayerenginefactory.h
+ mplayerengine.h
+ mplayermetadatamodel.h
+ settingsdialog.h
+)
+
+SET(libmplayer_RCCS translations/translations.qrc)
+
+QT4_ADD_RESOURCES(libmplayer_RCC_SRCS ${libmplayer_RCCS})
+
+QT4_WRAP_CPP(libmplayer_MOC_SRCS ${libmplayer_MOC_HDRS})
+
+# user interface
+
+
+SET(libmplayer_UIS
+ settingsdialog.ui
+)
+
+QT4_WRAP_UI(libmplayer_UIS_H ${libmplayer_UIS})
+# Don't forget to include output directory, otherwise
+# the UI file won't be wrapped!
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ADD_LIBRARY(mplayer MODULE ${libmplayer_SRCS} ${libmplayer_MOC_SRCS} ${libmplayer_RCC_SRCS} ${libmplayer_UIS_H})
+add_dependencies(mplayer qmmp)
+target_link_libraries(mplayer ${QT_LIBRARIES} -lqmmp)
+install(TARGETS mplayer DESTINATION ${LIB_DIR}/qmmp/Engines)
+
diff --git a/src/plugins/Engines/mplayer/mplayer.pro b/src/plugins/Engines/mplayer/mplayer.pro
new file mode 100644
index 000000000..dbcde014d
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayer.pro
@@ -0,0 +1,34 @@
+include(../../plugins.pri)
+HEADERS += mplayerenginefactory.h \
+ mplayerengine.h \
+ settingsdialog.h \
+ mplayermetadatamodel.h
+SOURCES += mplayerengine.cpp \
+ mplayerenginefactory.cpp \
+ settingsdialog.cpp \
+ mplayermetadatamodel.cpp
+TARGET = $$PLUGINS_PREFIX/Engines/mplayer
+QMAKE_CLEAN = $$PLUGINS_PREFIX/Engines/libmplayer.so
+INCLUDEPATH += ../../../
+CONFIG += release \
+ warn_on \
+ plugin
+TEMPLATE = lib
+QMAKE_LIBDIR += ../../../../lib
+LIBS += -lqmmp \
+ -L/usr/lib
+TRANSLATIONS = translations/mplayer_plugin_ru.ts \
+ translations/mplayer_plugin_uk_UA.ts \
+ translations/mplayer_plugin_zh_CN.ts \
+ translations/mplayer_plugin_zh_TW.ts \
+ translations/mplayer_plugin_cs.ts \
+ translations/mplayer_plugin_pl.ts \
+ translations/mplayer_plugin_de.ts \
+ translations/mplayer_plugin_it.ts \
+ translations/mplayer_plugin_tr.ts \
+ translations/mplayer_plugin_lt.ts
+RESOURCES = translations/translations.qrc
+isEmpty(LIB_DIR):LIB_DIR = /lib
+target.path = $$LIB_DIR/qmmp/Input
+INSTALLS += target
+FORMS += settingsdialog.ui
diff --git a/src/plugins/Engines/mplayer/mplayerengine.cpp b/src/plugins/Engines/mplayer/mplayerengine.cpp
new file mode 100644
index 000000000..33a2c69ae
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayerengine.cpp
@@ -0,0 +1,262 @@
+/***************************************************************************
+ * Copyright (C) 2008-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 <QObject>
+#include <QProcess>
+#include <QFile>
+#include <QApplication>
+#include <QAction>
+#include <QMetaObject>
+#include <QKeyEvent>
+#include <QMenu>
+#include <QRegExp>
+#include <QSettings>
+#include <qmmp/buffer.h>
+#include <qmmp/output.h>
+#include <qmmp/recycler.h>
+#include <qmmp/fileinfo.h>
+#include <qmmp/decoderfactory.h>
+#include <qmmp/inputsource.h>
+#include "mplayerengine.h"
+
+#define MPLAYER_DEBUG
+
+static QRegExp rx_av("^[AV]: *([0-9,:.-]+)");
+static QRegExp rx_pause("^(.*)=(.*)PAUSE(.*)");
+static QRegExp rx_end("^(.*)End of file(.*)");
+static QRegExp rx_quit("^(.*)Quit(.*)");
+static QRegExp rx_audio("^AUDIO: *([0-9,.]+) *Hz.*([0-9,.]+) *ch.*([0-9]+).* ([0-9,.]+) *kbit.*");
+
+
+FileInfo *MplayerInfo::createFileInfo(const QString &path)
+{
+ QRegExp rx_id_length("^ID_LENGTH=([0-9,.]+)*");
+ QStringList args;
+ args << "-slave";
+ args << "-identify";
+ args << "-frames";
+ args << "0";
+ args << "-vo";
+ args << "null";
+ args << "-ao";
+ args << "null";
+ args << path;
+ QProcess mplayer_process;
+ mplayer_process.start("mplayer", args);
+ mplayer_process.waitForFinished();
+ QString str = QString::fromLocal8Bit(mplayer_process.readAll()).trimmed();
+ FileInfo *info = new FileInfo(path);
+ QStringList lines = str.split("\n");
+ foreach(QString line, lines)
+ {
+ if (rx_id_length.indexIn(line) > -1)
+ info->setLength((qint64) rx_id_length.cap(1).toDouble());
+ }
+#ifdef MPLAYER_DEBUG
+ qDebug("%s",qPrintable(str));
+#endif
+ return info;
+}
+
+QStringList MplayerInfo::filters()
+{
+ QStringList filters;
+ filters << "*.avi" << "*.mpg" << "*.mpeg" << "*.divx" << "*.qt" << "*.mov" << "*.wmv" << "*.asf"
+ << "*.flv" << "*.3gp" << "*.mkv";
+ return filters;
+}
+
+MplayerEngine::MplayerEngine(QObject *parent)
+ : AbstractEngine(parent)
+{
+ //m_url = url;
+ m_bitrate = 0;
+ m_samplerate = 0;
+ m_channels = 0;
+ m_bitsPerSample = 0;
+ m_length = 0;
+ m_currentTime = 0;
+ m_process = new QProcess(this);
+ connect(m_process, SIGNAL(readyReadStandardOutput()), SLOT(readStdOut()));
+}
+
+MplayerEngine::~MplayerEngine()
+{
+ qDebug("%s",__FUNCTION__);
+ m_process->close();
+}
+
+bool MplayerEngine::play()
+{
+ if(m_process->state() != QProcess::NotRunning)
+ return FALSE;
+ startMplayerProcess();
+ return TRUE;
+}
+
+bool MplayerEngine::enqueue(InputSource *source)
+{
+ QString url = source->url();
+ QStringList filters = MplayerInfo::filters();
+ bool supports = FALSE;
+ foreach(QString filter, filters)
+ {
+ QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
+ supports = regexp.exactMatch(source->url());
+ if(supports)
+ break;
+ }
+ if(!supports)
+ return FALSE;
+ source->deleteLater();
+ if(m_process->state() == QProcess::NotRunning)
+ m_url = url;
+ else
+ m_files.enqueue(url);
+ return TRUE;
+}
+
+bool MplayerEngine::initialize()
+{
+ FileInfo *info = MplayerInfo::createFileInfo(m_url);
+ m_length = info->length();
+ delete info;
+ m_args.clear();
+ m_args << "-slave";
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ QString ao_str = settings.value("mplayer/ao","default").toString();
+ QString vo_str = settings.value("mplayer/vo","default").toString();
+ if (ao_str != "default")
+ m_args << "ao=" + ao_str;
+ if (vo_str != "default")
+ m_args << "vo=" + vo_str;
+
+ if (settings.value("autosync", FALSE).toBool())
+ m_args << QString("-autosync %1").arg(settings.value("autosync_factor", 100).toInt());
+
+ m_args << m_url;
+ return TRUE;
+}
+
+qint64 MplayerEngine::totalTime()
+{
+ return m_length * 1000;
+}
+
+void MplayerEngine::seek(qint64 pos)
+{
+ if (m_process->state() == QProcess::Running)
+ m_process->write(QString("seek %1 \n").arg(pos/1000 - m_currentTime).toLocal8Bit ());
+}
+
+void MplayerEngine::stop()
+{
+ if (m_process->state() == QProcess::Running)
+ {
+ m_process->write("quit\n");
+ m_process->waitForFinished(1500);
+ }
+ StateHandler::instance()->dispatch(Qmmp::Stopped);
+ m_files.clear();
+ m_url.clear();
+}
+
+void MplayerEngine::pause()
+{
+ m_process->write("pause\n");
+}
+
+void MplayerEngine::setEQ(double bands[10], double preamp)
+{
+ Q_UNUSED(bands[10]);
+ Q_UNUSED(preamp);
+}
+
+void MplayerEngine::setEQEnabled(bool on)
+{
+ Q_UNUSED(on);
+}
+
+void MplayerEngine::readStdOut()
+{
+ QString line = QString::fromLocal8Bit(m_process->readAll ()).trimmed();
+ QStringList lines = line.split("\n");
+ foreach(line, lines)
+ {
+ if (rx_av.indexIn(line) > -1)
+ {
+ StateHandler::instance()->dispatch(Qmmp::Playing);
+ m_currentTime = (qint64) rx_av.cap(1).toDouble();
+ StateHandler::instance()->dispatch(m_currentTime * 1000,
+ m_bitrate,
+ m_samplerate,
+ m_bitsPerSample,
+ m_channels);
+ }
+ else if (rx_pause.indexIn(line) > -1)
+ {
+ StateHandler::instance()->dispatch(Qmmp::Paused);
+ }
+ else if (rx_end.indexIn(line) > -1)
+ {
+ if (m_process->state() == QProcess::Running)
+ m_process->waitForFinished(3500);
+ emit playbackFinished();
+ if(!m_files.isEmpty())
+ {
+ StateHandler::instance()->dispatch(Qmmp::Stopped);
+ m_url = m_files.dequeue();
+ startMplayerProcess();
+ }
+ else
+ {
+ StateHandler::instance()->dispatch(Qmmp::Stopped);
+ return;
+ }
+ }
+ else if (rx_quit.indexIn(line) > -1)
+ {
+ if (m_process->state() == QProcess::Running)
+ m_process->waitForFinished(1500);
+ StateHandler::instance()->dispatch(Qmmp::Stopped);
+ }
+ else if (rx_audio.indexIn(line) > -1)
+ {
+ m_samplerate = rx_audio.cap(1).toInt();
+ m_channels = rx_audio.cap(2).toInt();
+ m_bitsPerSample = rx_audio.cap(3).toDouble();
+ m_bitrate = rx_audio.cap(4).toDouble();
+ }
+#ifdef MPLAYER_DEBUG
+ else
+ qDebug("%s",qPrintable(line));
+#endif
+ }
+}
+
+void MplayerEngine::startMplayerProcess()
+{
+ initialize();
+ m_process->start ("mplayer", m_args);
+ StateHandler::instance()->dispatch(Qmmp::Playing);
+ FileInfo *info = MplayerInfo::createFileInfo(m_url);
+ StateHandler::instance()->dispatch(info->metaData());
+ delete info;
+}
diff --git a/src/plugins/Engines/mplayer/mplayerengine.h b/src/plugins/Engines/mplayer/mplayerengine.h
new file mode 100644
index 000000000..cc6b12d16
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayerengine.h
@@ -0,0 +1,83 @@
+/***************************************************************************
+ * Copyright (C) 2008-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. *
+ ***************************************************************************/
+
+#ifndef MPLAYERENGINE_H
+#define MPLAYERENGINE_H
+
+#include <QQueue>
+#include <QString>
+#include <qmmp/statehandler.h>
+#include <qmmp/abstractengine.h>
+
+class Output;
+class QIDevice;
+class DecoderPhonon;
+class QMenu;
+class QProcess;
+class FileInfo;
+class InputSource;
+
+class MplayerInfo
+{
+public:
+ static FileInfo *createFileInfo(const QString &path);
+ static QStringList filters();
+};
+
+class MplayerEngine : public AbstractEngine
+{
+ Q_OBJECT
+public:
+ MplayerEngine(QObject *parent);
+ virtual ~MplayerEngine();
+
+ // Engine API
+ bool play();
+ bool enqueue(InputSource *source);
+ bool initialize();
+ qint64 totalTime();
+ void seek(qint64);
+ void stop();
+ void pause();
+
+ // Equalizer
+ void setEQ(double bands[10], double preamp);
+ void setEQEnabled(bool on);
+
+private slots:
+ void readStdOut();
+ void startMplayerProcess();
+
+private:
+ int mplayer_pipe[2];
+ QString m_url;
+ QStringList m_args;
+ QProcess *m_process;
+ int m_bitrate;
+ int m_samplerate;
+ int m_channels;
+ int m_bitsPerSample;
+ qint64 m_currentTime;
+ qint64 m_length;
+ QQueue <QString> m_files;
+};
+
+
+#endif // MPLAYERENGINE_H
diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.cpp b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp
new file mode 100644
index 000000000..33ca2e4cf
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayerenginefactory.cpp
@@ -0,0 +1,96 @@
+/***************************************************************************
+ * Copyright (C) 2008-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 <QtGui>
+
+#include "mplayermetadatamodel.h"
+#include "settingsdialog.h"
+#include "mplayerengine.h"
+#include "mplayerenginefactory.h"
+
+
+// MplayerEngineFactory
+
+const EngineProperties MplayerEngineFactory::properties() const
+{
+ EngineProperties properties;
+ properties.name = tr("Mplayer Plugin");
+ properties.shortName = "mplayer";
+ properties.filter = MplayerInfo::filters().join(" ");
+ properties.description = tr("Video Files");
+ //properties.contentType = "application/ogg;audio/x-vorbis+ogg";
+ properties.protocols = "file";
+ properties.hasAbout = TRUE;
+ properties.hasSettings = TRUE;
+ return properties;
+}
+
+bool MplayerEngineFactory::supports(const QString &source) const
+{
+ QStringList filters = MplayerInfo::filters();
+ foreach(QString filter, filters)
+ {
+ QRegExp regexp(filter, Qt::CaseInsensitive, QRegExp::Wildcard);
+ if (regexp.exactMatch(source))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+AbstractEngine *MplayerEngineFactory::create(QObject *parent)
+{
+ return new MplayerEngine(parent);
+}
+
+QList<FileInfo *> MplayerEngineFactory::createPlayList(const QString &fileName, bool useMetaData)
+{
+ Q_UNUSED(useMetaData);
+ QList<FileInfo *> info;
+ info << MplayerInfo::createFileInfo(fileName);
+ return info;
+}
+
+MetaDataModel* MplayerEngineFactory::createMetaDataModel(const QString &path, QObject *parent)
+{
+ return new MplayerMetaDataModel(path, parent);
+}
+
+void MplayerEngineFactory::showSettings(QWidget *parent)
+{
+ SettingsDialog *s = new SettingsDialog(parent);
+ s->show();
+}
+
+void MplayerEngineFactory::showAbout(QWidget *parent)
+{
+ QMessageBox::about (parent, tr("About MPlayer Plugin"),
+ tr("Qmmp MPlayer Plugin")+"\n"+
+ tr("This plugin uses MPlayer as backend")+"\n"+
+ tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>"));
+}
+
+QTranslator *MplayerEngineFactory::createTranslator(QObject *parent)
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = Qmmp::systemLanguageID();
+ translator->load(QString(":/mplayer_plugin_") + locale);
+ return translator;
+}
+
+Q_EXPORT_PLUGIN(MplayerEngineFactory)
diff --git a/src/plugins/Engines/mplayer/mplayerenginefactory.h b/src/plugins/Engines/mplayer/mplayerenginefactory.h
new file mode 100644
index 000000000..4c43b15a2
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayerenginefactory.h
@@ -0,0 +1,49 @@
+/***************************************************************************
+ * Copyright (C) 2006-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. *
+ ***************************************************************************/
+#ifndef MPLAYERENGINEFACTORY_H
+#define MPLAYERENGINEFACTORY_H
+
+#include <QObject>
+#include <QString>
+#include <QIODevice>
+#include <QWidget>
+
+#include <qmmp/abstractengine.h>
+#include <qmmp/enginefactory.h>
+#include <qmmp/fileinfo.h>
+#include <qmmp/metadatamodel.h>
+
+class MplayerEngineFactory : public QObject, EngineFactory
+{
+Q_OBJECT
+Q_INTERFACES(EngineFactory);
+
+public:
+ const EngineProperties properties() const;
+ bool supports(const QString &source) const;
+ AbstractEngine *create(QObject *parent = 0);
+ QList<FileInfo *> createPlayList(const QString &fileName, bool useMetaData);
+ MetaDataModel* createMetaDataModel(const QString &path, QObject *parent = 0);
+ void showSettings(QWidget *parent);
+ void showAbout(QWidget *parent);
+ QTranslator *createTranslator(QObject *parent);
+};
+
+#endif
diff --git a/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp
new file mode 100644
index 000000000..7aa8b3e3a
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.cpp
@@ -0,0 +1,106 @@
+/***************************************************************************
+ * 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 <QRegExp>
+#include <QFileInfo>
+#include <QStringList>
+#include <QProcess>
+#include "mplayermetadatamodel.h"
+
+MplayerMetaDataModel::MplayerMetaDataModel(const QString &path, QObject *parent) : MetaDataModel(parent)
+{
+ m_path = path;
+}
+
+MplayerMetaDataModel::~MplayerMetaDataModel()
+{}
+
+QHash<QString, QString> MplayerMetaDataModel::audioProperties()
+{
+ QHash<QString, QString> vp;
+ QHash<QString, QString> ap;
+ ap.insert(tr("Size"), QString("%1 ").arg(QFileInfo(m_path).size ()/1024)+tr("KB"));
+ //regular expressions
+ QRegExp rx_id_length("^ID_LENGTH=([0-9,.]+)*");
+ QRegExp rx_id_demuxer("^ID_DEMUXER=(.*)");
+ QRegExp rx_id_video_bitrate("^ID_VIDEO_BITRATE=([0-9,.]+)*");
+ QRegExp rx_id_width("^ID_VIDEO_WIDTH=([0-9,.]+)*");
+ QRegExp rx_id_height("^ID_VIDEO_HEIGHT=([0-9,.]+)*");
+ QRegExp rx_id_video_format("^ID_VIDEO_FORMAT=(.*)");
+ QRegExp rx_id_video_fps("^ID_VIDEO_FPS=([0-9,.]+)*");
+ QRegExp rx_id_video_codec("^ID_VIDEO_CODEC=(.*)");
+ QRegExp rx_id_video_aspect("^ID_VIDEO_ASPECT=([0-9,.]+)*");
+ QRegExp rx_id_audio_bitrate("^ID_AUDIO_BITRATE=([0-9,.]+)*");
+ QRegExp rx_id_audio_rate("^ID_AUDIO_RATE=([0-9,.]+)*");
+ QRegExp rx_id_audio_nch("^ID_AUDIO_NCH=([0-9,.]+)*");
+ QRegExp rx_id_audio_codec("^ID_AUDIO_CODEC=(.*)");
+ //prepare and start mplayer process
+ QStringList args;
+ args << "-slave";
+ args << "-identify";
+ args << "-frames";
+ args << "0";
+ args << "-vo";
+ args << "null";
+ args << "-ao";
+ args << "null";
+ args << m_path;
+ QProcess mplayer_process;
+ mplayer_process.start("mplayer", args);
+ mplayer_process.waitForFinished();
+ QString str = QString::fromLocal8Bit(mplayer_process.readAll()).trimmed();
+ QStringList lines = str.split("\n");
+ int height = 0, width = 0;
+ //mplayer std output parsing
+ foreach(QString line, lines)
+ {
+ //general info
+ if (rx_id_length.indexIn(line) > -1)
+ ap.insert(tr("Length"),rx_id_length.cap(1)); //TODO use hh:mm:ss format
+ else if (rx_id_demuxer.indexIn(line) > -1)
+ ap.insert(tr("Demuxer"), rx_id_demuxer.cap(1));
+ //video info
+ else if (rx_id_video_format.indexIn(line) > -1)
+ ap.insert(tr("Video format"), rx_id_video_format.cap(1));
+ else if (rx_id_video_fps.indexIn(line) > -1)
+ ap.insert(tr("FPS"), rx_id_video_fps.cap(1));
+ else if (rx_id_video_codec.indexIn(line) > -1)
+ ap.insert(tr("Video codec"), rx_id_video_codec.cap(1));
+ else if (rx_id_video_aspect.indexIn(line) > -1)
+ ap.insert(tr("Aspect ratio"),rx_id_video_aspect.cap(1));
+ else if (rx_id_video_bitrate.indexIn(line) > -1)
+ ap.insert(tr("Video bitrate"), rx_id_video_bitrate.cap(1));
+ else if (rx_id_width.indexIn(line) > -1)
+ width = rx_id_width.cap(1).toInt();
+ else if (rx_id_height.indexIn(line) > -1)
+ height = rx_id_height.cap(1).toInt();
+ //audio info
+ else if (rx_id_audio_codec.indexIn(line) > -1)
+ ap.insert(tr("Audio codec"),rx_id_audio_codec.cap(1));
+ else if (rx_id_audio_rate.indexIn(line) > -1)
+ ap.insert(tr("Sample rate"), rx_id_audio_rate.cap(1));
+ else if (rx_id_audio_bitrate.indexIn(line) > -1)
+ ap.insert(tr("Audio bitrate"), rx_id_audio_bitrate.cap(1));
+ else if (rx_id_audio_nch.indexIn(line) > -1)
+ ap.insert(tr("Channels"), rx_id_audio_nch.cap(1));
+ }
+ vp.insert(tr("Resolution"), QString("%1x%2").arg(width).arg(height));
+ return ap;
+}
diff --git a/src/plugins/Engines/mplayer/mplayermetadatamodel.h b/src/plugins/Engines/mplayer/mplayermetadatamodel.h
new file mode 100644
index 000000000..3cfe4662c
--- /dev/null
+++ b/src/plugins/Engines/mplayer/mplayermetadatamodel.h
@@ -0,0 +1,38 @@
+/***************************************************************************
+ * 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. *
+ ***************************************************************************/
+
+#ifndef MPLAYERMETADATAMODEL_H
+#define MPLAYERMETADATAMODEL_H
+
+#include <qmmp/metadatamodel.h>
+
+class MplayerMetaDataModel : public MetaDataModel
+{
+Q_OBJECT
+public:
+ MplayerMetaDataModel(const QString &path, QObject *parent);
+ ~MplayerMetaDataModel();
+ QHash<QString, QString> audioProperties();
+
+private:
+ QString m_path;
+};
+
+#endif // MPLAYERMETADATAMODEL_H
diff --git a/src/plugins/Engines/mplayer/settingsdialog.cpp b/src/plugins/Engines/mplayer/settingsdialog.cpp
new file mode 100644
index 000000000..029890eb1
--- /dev/null
+++ b/src/plugins/Engines/mplayer/settingsdialog.cpp
@@ -0,0 +1,69 @@
+/***************************************************************************
+ * 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 <QSettings>
+
+#include <qmmp/qmmp.h>
+
+#include "settingsdialog.h"
+
+SettingsDialog::SettingsDialog(QWidget *parent)
+ : QDialog(parent)
+{
+ ui.setupUi(this);
+ setAttribute(Qt::WA_DeleteOnClose);
+ ui.videoComboBox->addItem(tr("default"));
+ ui.videoComboBox->addItem("xv");
+ ui.videoComboBox->addItem("x11");
+ ui.videoComboBox->addItem("gl");
+ ui.videoComboBox->addItem("gl2");
+ ui.videoComboBox->addItem("dga");
+ ui.videoComboBox->addItem("sdl");
+ ui.videoComboBox->addItem("null");
+ ui.audioComboBox->addItem(tr("default"));
+ ui.audioComboBox->addItem("oss");
+ ui.audioComboBox->addItem("alsa");
+ ui.audioComboBox->addItem("pulse");
+ ui.audioComboBox->addItem("jack");
+ ui.audioComboBox->addItem("nas");
+ ui.audioComboBox->addItem("null");
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("mplayer");
+ ui.audioComboBox->setEditText(settings.value("ao","default").toString().replace("default", tr("default")));
+ ui.videoComboBox->setEditText(settings.value("vo","default").toString().replace("default", tr("default")));
+ ui.autoSyncCheckBox->setChecked(settings.value("autosync", FALSE).toBool());
+ ui.syncFactorSpinBox->setValue(settings.value("autosync_factor", 100).toInt());
+ settings.endGroup();
+}
+
+
+SettingsDialog::~SettingsDialog()
+{}
+
+void SettingsDialog::accept()
+{
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.beginGroup("mplayer");
+ settings.setValue("ao",ui.audioComboBox->currentText().replace(tr("default"), "default"));
+ settings.setValue("vo",ui.videoComboBox->currentText().replace(tr("default"), "default"));
+ settings.setValue("autosync",ui.autoSyncCheckBox->isChecked());
+ settings.setValue("autosync_factor",ui.syncFactorSpinBox->value());
+ settings.endGroup();
+ QDialog::accept();
+}
diff --git a/src/plugins/Engines/mplayer/settingsdialog.h b/src/plugins/Engines/mplayer/settingsdialog.h
new file mode 100644
index 000000000..9ba56bce8
--- /dev/null
+++ b/src/plugins/Engines/mplayer/settingsdialog.h
@@ -0,0 +1,46 @@
+/***************************************************************************
+ * 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. *
+ ***************************************************************************/
+#ifndef SETTINGSDIALOG_H
+#define SETTINGSDIALOG_H
+
+#include <QDialog>
+
+#include "ui_settingsdialog.h"
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class SettingsDialog : public QDialog
+{
+Q_OBJECT
+public:
+ SettingsDialog(QWidget *parent = 0);
+
+ ~SettingsDialog();
+
+
+public slots:
+ virtual void accept();
+
+private:
+ Ui::SettingsDialog ui;
+};
+
+#endif
diff --git a/src/plugins/Engines/mplayer/settingsdialog.ui b/src/plugins/Engines/mplayer/settingsdialog.ui
new file mode 100644
index 000000000..86dbfe8f6
--- /dev/null
+++ b/src/plugins/Engines/mplayer/settingsdialog.ui
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>SettingsDialog</class>
+ <widget class="QDialog" name="SettingsDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>259</width>
+ <height>143</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>MPlayer Settings</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
+ <item row="0" column="0">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Video:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" colspan="2">
+ <widget class="QComboBox" name="videoComboBox">
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Audio:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" colspan="2">
+ <widget class="QComboBox" name="audioComboBox">
+ <property name="editable">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="3">
+ <widget class="QCheckBox" name="autoSyncCheckBox">
+ <property name="text">
+ <string>Audio/video auto synchronization</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="0" colspan="2">
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Synchronization factor:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="2">
+ <widget class="QSpinBox" name="syncFactorSpinBox">
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>999</number>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="0" colspan="3">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>205</x>
+ <y>136</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>20</x>
+ <y>76</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>208</x>
+ <y>136</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>40</x>
+ <y>81</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>autoSyncCheckBox</sender>
+ <signal>toggled(bool)</signal>
+ <receiver>syncFactorSpinBox</receiver>
+ <slot>setEnabled(bool)</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>216</x>
+ <y>67</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>237</x>
+ <y>96</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts
new file mode 100644
index 000000000..26f09d606
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_cs.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Modul MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Videosoubory</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Autor: Ilja Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>O modulu MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Modul Qmmp MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Tento modul používá jako backend MPlayer</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Vzorkovací frekvence:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Zavřít</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Cesta k souboru:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Velikost:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Demultiplexor:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Délka:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Obraz</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Rozlišení:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Datový tok:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Formát:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Kodek:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Poměr stran:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Zvuk</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Kanály:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Podrobnosti</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Obecné informace</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>výchozí</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Nastavení MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Video:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Audio:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Automatická A/V synchronizace</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Synchronizační faktor:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts
new file mode 100644
index 000000000..2f029c38b
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_de.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>MPlayer-Modul</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Videodateien</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Autor: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>Über MPlayer-Modul</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Qmmp MPlayer-Modul</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Dieses Modul nutzt MPlayer als Backend</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Abtastrate:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Schließen</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Dateipfad:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Größe:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Demuxer:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Länge:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Video</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Auflösung:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Bitrate:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Format:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Codec:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Seitenverhältnis:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Kanäle:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Details</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Allgemeine Informationen</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>Standard</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Einstellungen MPlayer-Modul</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Video:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Audio:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Autom. Audio/Video-Synchronisation</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Synchronisationsfaktor:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts
new file mode 100644
index 000000000..f405e4505
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_it.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Modulo MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Documenti video</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Autore: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>Info sul modulo MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Modulo MPlayer per Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Modulo che usa MPlayer come Backend</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Campionamento:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Chiudi</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>File:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Dimensione:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Demuxer:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Durata:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Video</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Risoluzione:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Bitrate:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Formato:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Codec:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Ratio visualizzazione:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Audio</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Canali:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Dettagli</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Informazioni generali</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>Default</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Impostazioni MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Video:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Audio:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>sincronizzazione audio/video</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Fattore di sincronizzazione</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts
new file mode 100644
index 000000000..87d1c6b33
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_lt.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="lt">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>MPlayer įskiepis</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Video bylos</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Sukūrė: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>Apie MPlayer Qmmp įskiepį</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Qmmp MPlayer įskiepis</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Šis įskiepis naudoja Mplayer video grojimui</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Užverti</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Sample rate:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Bylos kelias:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Dydis:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Demuxer:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Ilgis:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Video</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Rezoliucija:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Bitrate:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Tipas:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Kodėkas:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Aspect ratio:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Аudio</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Kanalai:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Informacija</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Bendra informacija</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>Numatytas</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>MPlayer nustatymai</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Video:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Аudio:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Audio/Video automatinė sinchronizacija</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Sinchronizacijos:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts
new file mode 100644
index 000000000..fadc08ecc
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_pl.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Wtyczka Mplayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Pliki wideo</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>O wtyczce Mplayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Wtyczka Mplayer dla Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Ta wtyczka używa Mplayer do odtwarzania</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <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>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Szczegóły</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Ogólne informacje</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Ścieżka do pliku:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Rozmiar:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Demuxer:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Długość:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Wideo</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Rozdzielczość:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation></translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Format:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>Klatek na sek.:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Kodek:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Format obrazu:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Dźwięk</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Próbkowanie:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Kanały:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Zamknij</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>domyślne</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Ustawienia Mplayer</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Wideo:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Dźwięk:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Auto synchronizacja audio/wideo</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Współczynnik synchro:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts
new file mode 100644
index 000000000..b4169c849
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_ru.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Модуль MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Файлы видео</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>О модуле MPlayer для Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Модуль поддержки MPlayer для Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>В этом модуле для воспроизведения используется Mplayer</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Закрыть</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Дискретизация:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Путь к файлу:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>КБ</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Размер:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Демультиплексор:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Длительность:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Видео</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Разрешение:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Битовая частота:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Формат:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>Частота кадров:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Кодек:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Соотношение сторон:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Аудио</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Каналов:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Информация</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Общая информация</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>по умолчанию</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Настройки MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Видео:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Аудио:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Автоматическая синхронизация аудио/видео</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Фактор синхронизации:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts
new file mode 100644
index 000000000..f1ba30cb0
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_tr.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="tr_TR">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Mplayer Eklentisi</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Video Dosyaları</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>MPlayer Eklentisi Hakkında</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Qmmp MPlayer Eklentisi</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Bu eklenti arka uç olarak MPlayer kullanır</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <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>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Detaylar</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Genel Bilgiler</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Dosya konumu:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Boyut:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Çözümleyici:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Uzunluk:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Video</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Çözünürlük:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Bit oranı:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Biçim:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Kodek:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>En-boy oranı:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Ses</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Örnekleme oranı:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Kanallar:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Kapat</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>öntanımlı</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>MPlayer Ayarları</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Video:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Ses:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Ses/video otomatik senkronizasyon</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Senkronizasyon faktörü:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts
new file mode 100644
index 000000000..95a95ccb6
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_uk_UA.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Модуль Mplayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>Відео файли</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Розробник: Ілля Котов &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>Про модуль Mplayer</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Модуль Mplayer для Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>Цей модуль використовує MPlayer як бекенд</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>Закрити</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>Дискретизація:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>Шлях до файлу:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>Кб</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>Розмір:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>Демультиплексор:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>Тривалість:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>Відео</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>Роздільність:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>Бітрейт:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>Формат:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>Кадрів в секунду:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>Кодек:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>Співвідношення:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>Аудіо</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>Канали:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>Детально</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>Головна інформація</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>за умовчанням</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Налаштування MPlayer</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>Відео:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>Аудіо:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>Автоматична синхронізація аудіо/відео</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>Фактор синхронізації:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts
new file mode 100644
index 000000000..a20be020d
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_CN.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Mplayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>视频文件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>关于 MPlayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Qmmp MPlayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>此插件使用 MPlayer 后端</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>关闭</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>取样率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>文件路径:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>大小:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>流分离:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>长度:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>视频</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>分辨率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>位速率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>格式:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>编解码器:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>宽高比:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>音频</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>声音通道:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>详细资料</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>常规信息</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>默认</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Mplayer 设置</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>视频:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>音频:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>音频/视频自动同步</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>同步系数:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts
new file mode 100644
index 000000000..66c75d389
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/mplayer_plugin_zh_TW.ts
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
+<context>
+ <name>DecoderMplayerFactory</name>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="50"/>
+ <source>Mplayer Plugin</source>
+ <translation>Mplayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="53"/>
+ <source>Video Files</source>
+ <translation>視頻檔案</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="97"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>作者:Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="94"/>
+ <source>About MPlayer Plugin</source>
+ <translation>關於 Mplayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="95"/>
+ <source>Qmmp MPlayer Plugin</source>
+ <translation>Qmmp Mplayer 插件</translation>
+ </message>
+ <message>
+ <location filename="../decodermplayerfactory.cpp" line="96"/>
+ <source>This plugin uses MPlayer as backend</source>
+ <translation>此插件使用 Mplayer 後端</translation>
+ </message>
+</context>
+<context>
+ <name>DetailsDialog</name>
+ <message>
+ <location filename="../detailsdialog.ui" line="363"/>
+ <source>Close</source>
+ <translation>關閉</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="58"/>
+ <location filename="../detailsdialog.ui" line="72"/>
+ <location filename="../detailsdialog.ui" line="86"/>
+ <location filename="../detailsdialog.ui" line="127"/>
+ <location filename="../detailsdialog.ui" line="147"/>
+ <location filename="../detailsdialog.ui" line="167"/>
+ <location filename="../detailsdialog.ui" line="187"/>
+ <location filename="../detailsdialog.ui" line="207"/>
+ <location filename="../detailsdialog.ui" line="227"/>
+ <location filename="../detailsdialog.ui" line="262"/>
+ <location filename="../detailsdialog.ui" line="282"/>
+ <location filename="../detailsdialog.ui" line="302"/>
+ <location filename="../detailsdialog.ui" line="322"/>
+ <source>-</source>
+ <translation>-</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="275"/>
+ <source>Sample rate:</source>
+ <translation>取樣率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="37"/>
+ <source>File path:</source>
+ <translation>檔案路徑:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.cpp" line="33"/>
+ <source>KB</source>
+ <translation>KB</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="51"/>
+ <source>Size:</source>
+ <translation>大小:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="65"/>
+ <source>Demuxer:</source>
+ <translation>流分離:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="79"/>
+ <source>Length:</source>
+ <translation>長度:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="102"/>
+ <source>Video</source>
+ <translation>視頻</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="114"/>
+ <source>Resolution:</source>
+ <translation>分辨率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="140"/>
+ <location filename="../detailsdialog.ui" line="295"/>
+ <source>Bitrate:</source>
+ <translation>位速率:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="160"/>
+ <source>Format:</source>
+ <translation>格式:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="180"/>
+ <source>FPS:</source>
+ <translation>FPS:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="200"/>
+ <location filename="../detailsdialog.ui" line="249"/>
+ <source>Codec:</source>
+ <translation>編解碼器:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="220"/>
+ <source>Aspect ratio:</source>
+ <translation>寬高比:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="237"/>
+ <source>Audio</source>
+ <translation>聲訊</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="315"/>
+ <source>Channels:</source>
+ <translation>音頻通道:</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="13"/>
+ <source>Details</source>
+ <translation>詳細資料</translation>
+ </message>
+ <message>
+ <location filename="../detailsdialog.ui" line="31"/>
+ <source>General information</source>
+ <translation>常規資訊</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.cpp" line="31"/>
+ <location filename="../settingsdialog.cpp" line="39"/>
+ <location filename="../settingsdialog.cpp" line="48"/>
+ <location filename="../settingsdialog.cpp" line="49"/>
+ <location filename="../settingsdialog.cpp" line="63"/>
+ <location filename="../settingsdialog.cpp" line="64"/>
+ <source>default</source>
+ <translation>預設</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>MPlayer Settings</source>
+ <translation>Mplayer 設置</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Video:</source>
+ <translation>視頻:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="43"/>
+ <source>Audio:</source>
+ <translation>聲訊:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="57"/>
+ <source>Audio/video auto synchronization</source>
+ <translation>音頻/視頻自動同步</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="67"/>
+ <source>Synchronization factor:</source>
+ <translation>同步系數:</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Engines/mplayer/translations/translations.qrc b/src/plugins/Engines/mplayer/translations/translations.qrc
new file mode 100644
index 000000000..7a98c5a7f
--- /dev/null
+++ b/src/plugins/Engines/mplayer/translations/translations.qrc
@@ -0,0 +1,15 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>mplayer_plugin_it.qm</file>
+ <file>mplayer_plugin_ru.qm</file>
+ <file>mplayer_plugin_uk_UA.qm</file>
+ <file>mplayer_plugin_zh_CN.qm</file>
+ <file>mplayer_plugin_zh_TW.qm</file>
+ <file>mplayer_plugin_pl.qm</file>
+ <file>mplayer_plugin_cs.qm</file>
+ <file>mplayer_plugin_de.qm</file>
+ <file>mplayer_plugin_tr.qm</file>
+ <file>mplayer_plugin_lt.qm</file>
+ </qresource>
+</RCC>