diff --git a/data/locale/ca.ts b/data/locale/ca.ts
index 9cd6ae404..0553f7c78 100644
--- a/data/locale/ca.ts
+++ b/data/locale/ca.ts
@@ -7930,6 +7930,14 @@ Latència: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/cs.ts b/data/locale/cs.ts
index 6aa7e566b..2c1ba596f 100644
--- a/data/locale/cs.ts
+++ b/data/locale/cs.ts
@@ -7932,6 +7932,14 @@ Zpoždění %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/de.ts b/data/locale/de.ts
index c193d646f..d5c525e78 100644
--- a/data/locale/de.ts
+++ b/data/locale/de.ts
@@ -8177,6 +8177,14 @@ Latenz: %2 ms
Clear this track
Diese Spur leeren
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
vestigeInstrument
diff --git a/data/locale/en.ts b/data/locale/en.ts
index 76e145ebc..23e8eb58d 100644
--- a/data/locale/en.ts
+++ b/data/locale/en.ts
@@ -7969,6 +7969,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/es.ts b/data/locale/es.ts
index bd89815ea..050707a5c 100644
--- a/data/locale/es.ts
+++ b/data/locale/es.ts
@@ -7912,6 +7912,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/fa.ts b/data/locale/fa.ts
index e38e2d970..38be790a8 100644
--- a/data/locale/fa.ts
+++ b/data/locale/fa.ts
@@ -7911,6 +7911,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/fr.ts b/data/locale/fr.ts
index 6dcf0a8b8..c589c2ad0 100644
--- a/data/locale/fr.ts
+++ b/data/locale/fr.ts
@@ -7946,6 +7946,14 @@ Latence : %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/gl.ts b/data/locale/gl.ts
index 96b19ccd6..45235e766 100644
--- a/data/locale/gl.ts
+++ b/data/locale/gl.ts
@@ -7945,6 +7945,14 @@ Latencia: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/it.ts b/data/locale/it.ts
index a046d158a..e04e8ebdc 100644
--- a/data/locale/it.ts
+++ b/data/locale/it.ts
@@ -7970,6 +7970,14 @@ Latenza: %2 ms
Clear this track
Pulisci questa traccia
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
Accendi tutti i processi di registrazione
diff --git a/data/locale/ja.ts b/data/locale/ja.ts
index 49f272525..584ce118d 100644
--- a/data/locale/ja.ts
+++ b/data/locale/ja.ts
@@ -7947,6 +7947,14 @@ Latency: %2 ms
Clear this track
このトラックをクリア
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/ko.ts b/data/locale/ko.ts
index aeee0b941..9565f543d 100644
--- a/data/locale/ko.ts
+++ b/data/locale/ko.ts
@@ -7916,6 +7916,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/nl.ts b/data/locale/nl.ts
index 1b98f5417..c6f83b30d 100644
--- a/data/locale/nl.ts
+++ b/data/locale/nl.ts
@@ -7915,6 +7915,14 @@ Vertraging: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/pl.ts b/data/locale/pl.ts
index fec62d198..57cae23cc 100644
--- a/data/locale/pl.ts
+++ b/data/locale/pl.ts
@@ -7951,6 +7951,14 @@ Latencja: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/pt.ts b/data/locale/pt.ts
index defb1e561..973ec3cb7 100644
--- a/data/locale/pt.ts
+++ b/data/locale/pt.ts
@@ -7949,6 +7949,14 @@ Latência: %2 ms
Clear this track
+
+ Assign to new FX Channel
+ Associar a um novo Mixer de Efeitos
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/ru.ts b/data/locale/ru.ts
index ce01e3d40..a85d474e3 100644
--- a/data/locale/ru.ts
+++ b/data/locale/ru.ts
@@ -7984,6 +7984,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/sv.ts b/data/locale/sv.ts
index c170ed0d4..59b7f6cce 100644
--- a/data/locale/sv.ts
+++ b/data/locale/sv.ts
@@ -7914,6 +7914,14 @@ Latency: %2 ms
Clear this track
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
diff --git a/data/locale/zh.ts b/data/locale/zh.ts
index d1df46aee..57d591c6c 100644
--- a/data/locale/zh.ts
+++ b/data/locale/zh.ts
@@ -7924,6 +7924,14 @@ Latency: %2 ms
Clear this track
清除此轨道
+
+ Assign to new FX Channel
+
+
+
+ FX %1: %2
+
+
Turn all recording on
打开所有录制
diff --git a/include/FxMixer.h b/include/FxMixer.h
index 7c18e019a..ddc2b7434 100644
--- a/include/FxMixer.h
+++ b/include/FxMixer.h
@@ -194,6 +194,11 @@ public:
return m_fxChannels.size();
}
+ inline QVector fxChannels() const
+ {
+ return m_fxChannels;
+ }
+
FxRouteVector m_fxRoutes;
private:
diff --git a/include/FxMixerView.h b/include/FxMixerView.h
index 0bb5796e0..66a9143b4 100644
--- a/include/FxMixerView.h
+++ b/include/FxMixerView.h
@@ -103,12 +103,14 @@ public:
// useful for loading projects
void refreshDisplay();
+public slots:
+ int addNewChannel();
+
protected:
virtual void closeEvent( QCloseEvent * _ce );
private slots:
void updateFaders();
- void addNewChannel();
void toggledSolo();
private:
diff --git a/include/Track.h b/include/Track.h
index d09b955fc..b766b6056 100644
--- a/include/Track.h
+++ b/include/Track.h
@@ -29,6 +29,7 @@
#include
#include
#include
+#include
#include
#include
@@ -390,6 +391,8 @@ private slots:
void recordingOn();
void recordingOff();
void clearTrack();
+ void assignFxLine( int channelIndex );
+ void createFxLine();
private:
static QPixmap * s_grip;
diff --git a/src/core/Track.cpp b/src/core/Track.cpp
index ad25f979c..426676f0e 100644
--- a/src/core/Track.cpp
+++ b/src/core/Track.cpp
@@ -57,6 +57,7 @@
#include "embed.h"
#include "Engine.h"
#include "GuiApplication.h"
+#include "FxMixerView.h"
#include "gui_templates.h"
#include "InstrumentTrack.h"
#include "MainWindow.h"
@@ -1706,6 +1707,29 @@ void TrackOperationsWidget::clearTrack()
+/*! \brief Create and assign a new FX Channel for this track */
+void TrackOperationsWidget::createFxLine()
+{
+ int channelIndex = gui->fxMixerView()->addNewChannel();
+
+ Engine::fxMixer()->effectChannel( channelIndex )->m_name = m_trackView->getTrack()->name();
+
+ assignFxLine(channelIndex);
+}
+
+
+
+/*! \brief Assign a specific FX Channel for this track */
+void TrackOperationsWidget::assignFxLine(int channelIndex)
+{
+ Track * track = m_trackView->getTrack();
+ dynamic_cast( track )->effectChannelModel()->setValue( channelIndex );
+
+ gui->fxMixerView()->setCurrentFxLine( channelIndex );
+}
+
+
+
/*! \brief Remove this track from the track list
*
*/
@@ -1740,12 +1764,36 @@ void TrackOperationsWidget::updateMenu()
{
to_menu->addAction( tr( "Clear this track" ), this, SLOT( clearTrack() ) );
}
-
- if( dynamic_cast( m_trackView ) )
+ if( InstrumentTrackView * trackView = dynamic_cast( m_trackView ) )
{
+ int channelIndex = trackView->model()->effectChannelModel()->value();
+
+ FxChannel * fxChannel = Engine::fxMixer()->effectChannel( channelIndex );
+
+ QMenu * fxMenu = new QMenu( tr( "FX %1: %2" ).arg( channelIndex ).arg( fxChannel->m_name ), to_menu );
+ QSignalMapper * fxMenuSignalMapper = new QSignalMapper(this);
+
+ fxMenu->addAction("Assign to new FX Channel" , this, SLOT( createFxLine() ) );
+ fxMenu->addSeparator();
+
+
+ for (int i = 0; i < Engine::fxMixer()->fxChannels().size(); ++i)
+ {
+ FxChannel * currentChannel = Engine::fxMixer()->fxChannels()[i];
+
+ if ( currentChannel != fxChannel )
+ {
+ QString label = tr( "FX %1: %2" ).arg( currentChannel->m_channelIndex ).arg( currentChannel->m_name );
+ QAction * action = fxMenu->addAction( label, fxMenuSignalMapper, SLOT( map() ) );
+ fxMenuSignalMapper->setMapping(action, currentChannel->m_channelIndex);
+ }
+ }
+
+ to_menu->addMenu(fxMenu);
+ connect(fxMenuSignalMapper, SIGNAL(mapped(int)), this, SLOT(assignFxLine(int)));
+
to_menu->addSeparator();
- to_menu->addMenu( dynamic_cast(
- m_trackView )->midiMenu() );
+ to_menu->addMenu( trackView->midiMenu() );
}
if( dynamic_cast( m_trackView ) )
{
diff --git a/src/gui/FxMixerView.cpp b/src/gui/FxMixerView.cpp
index 2267cbe8e..141a37619 100644
--- a/src/gui/FxMixerView.cpp
+++ b/src/gui/FxMixerView.cpp
@@ -172,7 +172,7 @@ FxMixerView::~FxMixerView()
-void FxMixerView::addNewChannel()
+int FxMixerView::addNewChannel()
{
// add new fx mixer channel and redraw the form.
FxMixer * mix = Engine::fxMixer();
@@ -186,6 +186,8 @@ void FxMixerView::addNewChannel()
updateFxLine(newChannelIndex);
updateMaxChannelSelector();
+
+ return newChannelIndex;
}