aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Effect
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-09-05 18:48:11 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-09-05 18:48:11 +0000
commit2556538c0d583c4800df9052338ebcebabc3ae58 (patch)
treec3c38e88e8ff3e4df559f68f08870506205af727 /src/plugins/Effect
parent1da8e3fad8cefec56cf8dcf5580189bab9cc96cf (diff)
downloadqmmp-2556538c0d583c4800df9052338ebcebabc3ae58.tar.gz
qmmp-2556538c0d583c4800df9052338ebcebabc3ae58.tar.bz2
qmmp-2556538c0d583c4800df9052338ebcebabc3ae58.zip
added crossfade plugin (experimental) (Closes issue 272)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1874 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Effect')
-rw-r--r--src/plugins/Effect/CMakeLists.txt5
-rw-r--r--src/plugins/Effect/Effect.pro2
-rw-r--r--src/plugins/Effect/crossfade/CMakeLists.txt61
-rw-r--r--src/plugins/Effect/crossfade/crossfade.pro44
-rw-r--r--src/plugins/Effect/crossfade/crossfadeplugin.cpp98
-rw-r--r--src/plugins/Effect/crossfade/crossfadeplugin.h61
-rw-r--r--src/plugins/Effect/crossfade/effectcrossfadefactory.cpp64
-rw-r--r--src/plugins/Effect/crossfade/effectcrossfadefactory.h44
-rw-r--r--src/plugins/Effect/crossfade/settingsdialog.cpp44
-rw-r--r--src/plugins/Effect/crossfade/settingsdialog.h45
-rw-r--r--src/plugins/Effect/crossfade/settingsdialog.ui105
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_cs.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_de.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_es.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_it.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_ja.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_lt.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_nl.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_pl.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_ru.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_tr.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_uk_UA.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_CN.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_TW.ts45
-rw-r--r--src/plugins/Effect/crossfade/translations/translations.qrc18
25 files changed, 1175 insertions, 1 deletions
diff --git a/src/plugins/Effect/CMakeLists.txt b/src/plugins/Effect/CMakeLists.txt
index 873247e57..c489f860c 100644
--- a/src/plugins/Effect/CMakeLists.txt
+++ b/src/plugins/Effect/CMakeLists.txt
@@ -1,6 +1,7 @@
SET(USE_SRC TRUE CACHE BOOL "enable/disable SRC plugin")
SET(USE_BS2B TRUE CACHE BOOL "enable/disable bs2b plugin")
SET(USE_LADSPA TRUE CACHE BOOL "enable/disable ladspa plugin")
+SET(USE_CROSSFADE TRUE CACHE BOOL "enable/disable crossfade plugin")
IF(USE_SRC)
add_subdirectory(srconverter)
@@ -13,3 +14,7 @@ ENDIF(USE_BS2B)
IF(USE_LADSPA)
add_subdirectory(ladspa)
ENDIF(USE_LADSPA)
+
+IF(USE_CROSSFADE)
+add_subdirectory(crossfade)
+ENDIF(USE_CROSSFADE)
diff --git a/src/plugins/Effect/Effect.pro b/src/plugins/Effect/Effect.pro
index 7438ca5a0..9b190d4a0 100644
--- a/src/plugins/Effect/Effect.pro
+++ b/src/plugins/Effect/Effect.pro
@@ -1,7 +1,7 @@
include (../../../qmmp.pri)
TEMPLATE = subdirs
-SUBDIRS += srconverter
+SUBDIRS += srconverter crossfade
contains(CONFIG, BS2B_PLUGIN){
message(***********************)
message(* BS2B plugin enabled *)
diff --git a/src/plugins/Effect/crossfade/CMakeLists.txt b/src/plugins/Effect/crossfade/CMakeLists.txt
new file mode 100644
index 000000000..ab63220df
--- /dev/null
+++ b/src/plugins/Effect/crossfade/CMakeLists.txt
@@ -0,0 +1,61 @@
+project(libcrossfade)
+
+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_SOURCE_DIR}/../../../
+)
+
+# libqmmp
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
+
+SET(libcrossfade_SRCS
+ crossfadeplugin.cpp
+ settingsdialog.cpp
+ effectcrossfadefactory.cpp
+)
+
+SET(libcrossfade_MOC_HDRS
+ crossfadeplugin.h
+ settingsdialog.h
+ effectcrossfadefactory.h
+)
+
+SET(libcrossfade_RCCS translations/translations.qrc)
+
+QT4_ADD_RESOURCES(libcrossfade_RCC_SRCS ${libcrossfade_RCCS})
+
+QT4_WRAP_CPP(libcrossfade_MOC_SRCS ${libcrossfade_MOC_HDRS})
+
+# user interface
+
+SET(libcrossfade_UIS
+ settingsdialog.ui
+)
+
+QT4_WRAP_UI(libcrossfade_UIS_H ${libcrossfade_UIS})
+# Don't forget to include output directory, otherwise
+# the UI file won't be wrapped!
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+
+ADD_LIBRARY(crossfade MODULE ${libcrossfade_SRCS} ${libcrossfade_MOC_SRCS} ${libcrossfade_UIS_H} ${libcrossfade_RCC_SRCS})
+add_dependencies(crossfade qmmp)
+target_link_libraries(crossfade ${QT_LIBRARIES} -lqmmp)
+install(TARGETS crossfade DESTINATION ${LIB_DIR}/qmmp/Effect)
diff --git a/src/plugins/Effect/crossfade/crossfade.pro b/src/plugins/Effect/crossfade/crossfade.pro
new file mode 100644
index 000000000..d0cb964d7
--- /dev/null
+++ b/src/plugins/Effect/crossfade/crossfade.pro
@@ -0,0 +1,44 @@
+include(../../plugins.pri)
+
+HEADERS += crossfadeplugin.h \
+ effectcrossfadefactory.h \
+ settingsdialog.h
+
+SOURCES += crossfadeplugin.cpp \
+ effectcrossfadefactory.cpp \
+ settingsdialog.cpp
+
+TARGET =$$PLUGINS_PREFIX/Effect/crossfade
+QMAKE_CLEAN =$$PLUGINS_PREFIX/Effect/libcrossfade.so
+INCLUDEPATH += ../../../
+CONFIG += release \
+warn_on \
+plugin
+
+TEMPLATE = lib
+QMAKE_LIBDIR += ../../../../lib
+LIBS += -lqmmp -L/usr/lib -I/usr/include
+
+TRANSLATIONS = translations/crossfade_plugin_cs.ts \
+ translations/crossfade_plugin_de.ts \
+ translations/crossfade_plugin_zh_CN.ts \
+ translations/crossfade_plugin_zh_TW.ts \
+ translations/crossfade_plugin_uk_UA.ts \
+ translations/crossfade_plugin_pl.ts \
+ translations/crossfade_plugin_ru.ts \
+ translations/crossfade_plugin_it.ts \
+ translations/crossfade_plugin_tr.ts \
+ translations/crossfade_plugin_lt.ts \
+ translations/crossfade_plugin_nl.ts \
+ translations/crossfade_plugin_ja.ts \
+ translations/crossfade_plugin_es.ts
+RESOURCES = translations/translations.qrc
+
+isEmpty(LIB_DIR){
+ LIB_DIR = /lib
+}
+target.path = $$LIB_DIR/qmmp/Effect
+INSTALLS += target
+
+
+FORMS += settingsdialog.ui
diff --git a/src/plugins/Effect/crossfade/crossfadeplugin.cpp b/src/plugins/Effect/crossfade/crossfadeplugin.cpp
new file mode 100644
index 000000000..b937dd51b
--- /dev/null
+++ b/src/plugins/Effect/crossfade/crossfadeplugin.cpp
@@ -0,0 +1,98 @@
+/***************************************************************************
+ * Copyright (C) 2009 by Ilya Kotov <forkotov02@hotmail.ru> *
+ * Copyright (C) 2009 by Sebastian Pipping <sebastian@pipping.org> *
+ * *
+ * 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 <qmmp/statehandler.h>
+#include <qmmp/soundcore.h>
+#include "crossfadeplugin.h"
+
+CrossfadePlugin::CrossfadePlugin() : Effect()
+{
+ m_buffer = 0;
+ m_buffer_at = 0;
+ m_buffer_size = 0;
+ m_core = SoundCore::instance() ;
+ m_handler = StateHandler::instance();
+ m_state = WAITING;
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ m_overlap = settings.value("Crossfade/overlap", 6000).toLongLong();
+}
+
+CrossfadePlugin::~CrossfadePlugin()
+{
+ if(m_buffer)
+ free(m_buffer);
+}
+
+void CrossfadePlugin::applyEffect(Buffer *b)
+{
+ switch (m_state)
+ {
+ case WAITING:
+ if(m_core->totalTime() - m_handler->elapsed() < m_overlap + 2000)
+ {
+ StateHandler::instance()->sendNextTrackRequest();
+ m_state = PREPARING;
+ }
+ return;
+ case PREPARING:
+ if(m_core->totalTime() - m_handler->elapsed() < m_overlap)
+ {
+ if(m_buffer_at + b->nbytes > m_buffer_size)
+ {
+ m_buffer_size = m_buffer_at + b->nbytes;
+ m_buffer = (uchar *)realloc(m_buffer, m_buffer_size);
+ }
+ memcpy(m_buffer + m_buffer_at, b->data, b->nbytes);
+ m_buffer_at += b->nbytes;
+ b->nbytes = 0;
+ return;
+ }
+ else if(m_buffer_at > 0)
+ m_state = PROCESSING;
+ else
+ return;
+ case PROCESSING:
+ if (m_buffer_at > 0)
+ {
+ double volume = (double)m_buffer_at/m_buffer_size;
+ uint size = qMin((ulong)m_buffer_at, b->nbytes);
+ for (uint i = 0; i < size / 2; i++)
+ {
+ ((short*)b->data)[i] =((short*)b->data)[i]*(1.0 - volume)+((short*)m_buffer)[i]*volume;
+ }
+ m_buffer_at -= size;
+ memmove(m_buffer, m_buffer + size, m_buffer_at);
+ }
+ else
+ m_state = WAITING;
+ default:
+ ;
+ }
+ return;
+}
+
+void CrossfadePlugin::configure(quint32 freq, int chan, Qmmp::AudioFormat format)
+{
+ //m_buffer_size = m_overlap * freq * chan * AudioParameters::sampleSize(format) / 1000;
+ //m_buffer =(uchar *) malloc(m_buffer_size);
+ Effect::configure(freq, chan, format);
+}
diff --git a/src/plugins/Effect/crossfade/crossfadeplugin.h b/src/plugins/Effect/crossfade/crossfadeplugin.h
new file mode 100644
index 000000000..ec025aded
--- /dev/null
+++ b/src/plugins/Effect/crossfade/crossfadeplugin.h
@@ -0,0 +1,61 @@
+/***************************************************************************
+ * Copyright (C) 2010 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 CROSSFADEPLUGIN_H
+#define CROSSFADEPLUGIN_H
+
+#include <QMutex>
+#include <qmmp/effect.h>
+
+class SoundCore;
+class StateHandler;
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+
+class CrossfadePlugin : public Effect
+{
+public:
+ CrossfadePlugin();
+
+ virtual ~CrossfadePlugin();
+
+ void applyEffect(Buffer *b);
+ void configure(quint32 freq, int chan, Qmmp::AudioFormat format);
+
+private:
+ enum State
+ {
+ WAITING = 0,
+ PREPARING,
+ PROCESSING,
+ };
+
+ uchar *m_buffer;
+ ulong m_buffer_at;
+ ulong m_buffer_size;
+ qint64 m_overlap;
+ int m_state;
+ SoundCore *m_core;
+ StateHandler *m_handler;
+
+};
+
+#endif
diff --git a/src/plugins/Effect/crossfade/effectcrossfadefactory.cpp b/src/plugins/Effect/crossfade/effectcrossfadefactory.cpp
new file mode 100644
index 000000000..e11b73dee
--- /dev/null
+++ b/src/plugins/Effect/crossfade/effectcrossfadefactory.cpp
@@ -0,0 +1,64 @@
+/***************************************************************************
+ * Copyright (C) 2010 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 <qmmp/qmmp.h>
+#include "effectcrossfadefactory.h"
+#include "settingsdialog.h"
+#include "crossfadeplugin.h"
+
+const EffectProperties EffectCrossfadeFactory::properties() const
+{
+ EffectProperties properties;
+ properties.name = tr("Crossfade Plugin");
+ properties.shortName = "crossfade";
+ properties.hasSettings = true;
+ properties.hasAbout = true;
+ properties.priority = EffectProperties::EFFECT_PRIORITY_LOW;
+ return properties;
+}
+
+Effect *EffectCrossfadeFactory::create()
+{
+ return new CrossfadePlugin();
+}
+
+void EffectCrossfadeFactory::showSettings(QWidget *parent)
+{
+ SettingsDialog *dialog = new SettingsDialog(parent);
+ dialog->show();
+}
+
+void EffectCrossfadeFactory::showAbout(QWidget *parent)
+{
+ QMessageBox::about (parent, tr("About Crossfade Plugin"),
+ tr("Qmmp Crossfade Plugin")+"\n"+
+ tr("Writen by: Ilya Kotov <forkotov02@hotmail.ru>"));
+}
+
+QTranslator *EffectCrossfadeFactory::createTranslator(QObject *parent)
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = Qmmp::systemLanguageID();
+ translator->load(QString(":/crossfade_plugin_") + locale);
+ return translator;
+}
+
+Q_EXPORT_PLUGIN2(crossfade,EffectCrossfadeFactory)
diff --git a/src/plugins/Effect/crossfade/effectcrossfadefactory.h b/src/plugins/Effect/crossfade/effectcrossfadefactory.h
new file mode 100644
index 000000000..134bdb33c
--- /dev/null
+++ b/src/plugins/Effect/crossfade/effectcrossfadefactory.h
@@ -0,0 +1,44 @@
+/***************************************************************************
+ * Copyright (C) 2010 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 EFFECTCROSSFADEFACTORY_H
+#define EFFECTCROSSFADEFACTORY_H
+
+#include <QObject>
+#include <qmmp/effectfactory.h>
+#include <qmmp/effect.h>
+
+/**
+ @author Ilya Kotov <forkotov02@hotmail.ru>
+*/
+class EffectCrossfadeFactory : public QObject, public EffectFactory
+{
+Q_OBJECT
+Q_INTERFACES(EffectFactory);
+
+public:
+ const EffectProperties properties() const;
+ Effect *create();
+ void showSettings(QWidget *parent);
+ void showAbout(QWidget *parent);
+ QTranslator *createTranslator(QObject *parent);
+};
+
+
+#endif
diff --git a/src/plugins/Effect/crossfade/settingsdialog.cpp b/src/plugins/Effect/crossfade/settingsdialog.cpp
new file mode 100644
index 000000000..16643bbbf
--- /dev/null
+++ b/src/plugins/Effect/crossfade/settingsdialog.cpp
@@ -0,0 +1,44 @@
+/***************************************************************************
+ * Copyright (C) 2010 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, true);
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ ui.overlapSpinBox->setValue(settings.value("Crossfade/overlap",6000).toInt());
+}
+
+
+SettingsDialog::~SettingsDialog()
+{
+}
+
+void SettingsDialog::accept()
+{
+ QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
+ settings.setValue("Crossfade/overlap", ui.overlapSpinBox->value());
+ QDialog::accept();
+}
diff --git a/src/plugins/Effect/crossfade/settingsdialog.h b/src/plugins/Effect/crossfade/settingsdialog.h
new file mode 100644
index 000000000..22d05152a
--- /dev/null
+++ b/src/plugins/Effect/crossfade/settingsdialog.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2010 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/Effect/crossfade/settingsdialog.ui b/src/plugins/Effect/crossfade/settingsdialog.ui
new file mode 100644
index 000000000..4e24b0abb
--- /dev/null
+++ b/src/plugins/Effect/crossfade/settingsdialog.ui
@@ -0,0 +1,105 @@
+<?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>275</width>
+ <height>65</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Crossfade Plugin 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_2">
+ <property name="text">
+ <string>Overlap:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="overlapSpinBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix">
+ <string>ms</string>
+ </property>
+ <property name="minimum">
+ <number>3000</number>
+ </property>
+ <property name="maximum">
+ <number>12000</number>
+ </property>
+ <property name="singleStep">
+ <number>500</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <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>270</x>
+ <y>76</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>91</x>
+ <y>88</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>SettingsDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>326</x>
+ <y>78</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>139</x>
+ <y>60</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_cs.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_cs.ts
new file mode 100644
index 000000000..fe6c7f9fb
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_cs.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="cs_CZ">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_de.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_de.ts
new file mode 100644
index 000000000..d2bee16b6
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_de.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="de_DE">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_es.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_es.ts
new file mode 100644
index 000000000..9ceb377e3
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_es.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="es">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_it.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_it.ts
new file mode 100644
index 000000000..f1cde6702
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_it.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="it">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_ja.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_ja.ts
new file mode 100644
index 000000000..5e3f6ff4d
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_ja.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ja_JP">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_lt.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_lt.ts
new file mode 100644
index 000000000..4c203e0d0
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_lt.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="lt" sourcelanguage="lt">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_nl.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_nl.ts
new file mode 100644
index 000000000..676c76629
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_nl.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="nl">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_pl.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_pl.ts
new file mode 100644
index 000000000..d08b266f4
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_pl.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="pl">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_ru.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_ru.ts
new file mode 100644
index 000000000..6cc0bb06d
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_ru.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="ru_RU" sourcelanguage="ru_RU">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation>Модуль Crossfade</translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation>О модуле crossfade</translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation>Модуль crossfade для Qmmp</translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation>Разработчик: Илья Котов &lt;forkotov02@hotmail.ru&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation>Настройки модуля crossfade</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation>Перекрытие:</translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation>мс</translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_tr.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_tr.ts
new file mode 100644
index 000000000..9a5fcf79b
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_tr.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="tr_TR">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_uk_UA.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_uk_UA.ts
new file mode 100644
index 000000000..a3e1a4c22
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_uk_UA.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="uk">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_CN.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_CN.ts
new file mode 100644
index 000000000..189febe13
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_CN.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_CN">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_TW.ts b/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_TW.ts
new file mode 100644
index 000000000..5562af6f0
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/crossfade_plugin_zh_TW.ts
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.0" language="zh_TW">
+<context>
+ <name>EffectCrossfadeFactory</name>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="30"/>
+ <source>Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="51"/>
+ <source>About Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="52"/>
+ <source>Qmmp Crossfade Plugin</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../effectcrossfadefactory.cpp" line="53"/>
+ <source>Writen by: Ilya Kotov &lt;forkotov02@hotmail.ru&gt;</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>SettingsDialog</name>
+ <message>
+ <location filename="../settingsdialog.ui" line="14"/>
+ <source>Crossfade Plugin Settings</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="29"/>
+ <source>Overlap:</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../settingsdialog.ui" line="42"/>
+ <source>ms</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+</TS>
diff --git a/src/plugins/Effect/crossfade/translations/translations.qrc b/src/plugins/Effect/crossfade/translations/translations.qrc
new file mode 100644
index 000000000..51c66185c
--- /dev/null
+++ b/src/plugins/Effect/crossfade/translations/translations.qrc
@@ -0,0 +1,18 @@
+<!DOCTYPE RCC>
+<RCC version="1.0">
+ <qresource>
+ <file>crossfade_plugin_it.qm</file>
+ <file>crossfade_plugin_cs.qm</file>
+ <file>crossfade_plugin_de.qm</file>
+ <file>crossfade_plugin_zh_CN.qm</file>
+ <file>crossfade_plugin_zh_TW.qm</file>
+ <file>crossfade_plugin_uk_UA.qm</file>
+ <file>crossfade_plugin_pl.qm</file>
+ <file>crossfade_plugin_ru.qm</file>
+ <file>crossfade_plugin_tr.qm</file>
+ <file>crossfade_plugin_lt.qm</file>
+ <file>crossfade_plugin_nl.qm</file>
+ <file>crossfade_plugin_ja.qm</file>
+ <file>crossfade_plugin_es.qm</file>
+ </qresource>
+</RCC>