diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-09-05 18:48:11 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2010-09-05 18:48:11 +0000 |
| commit | 2556538c0d583c4800df9052338ebcebabc3ae58 (patch) | |
| tree | c3c38e88e8ff3e4df559f68f08870506205af727 /src/plugins/Effect | |
| parent | 1da8e3fad8cefec56cf8dcf5580189bab9cc96cf (diff) | |
| download | qmmp-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')
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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></source> + <translation>Разработчик: Илья Котов <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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 <forkotov02@hotmail.ru></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> |
