implemented solo-buttons for FxMixer - resolving #1211

This commit is contained in:
grindhold
2014-10-30 23:43:43 +01:00
parent 05c15dff0c
commit 8fe009114d
4 changed files with 98 additions and 1 deletions

View File

@@ -51,7 +51,9 @@ class FxChannel : public ThreadableJob
float m_peakLeft;
float m_peakRight;
sampleFrame * m_buffer;
bool m_muteBeforeSolo;
BoolModel m_muteModel;
BoolModel m_soloModel;
FloatModel m_volumeModel;
QString m_name;
QMutex m_lock;
@@ -65,6 +67,7 @@ class FxChannel : public ThreadableJob
FxRouteVector m_receives;
virtual bool requiresProcessing() const { return true; }
void unmuteForSolo();
private:
virtual void doProcessing( sampleFrame * _working_buffer );
@@ -174,6 +177,10 @@ public:
// rename channels when moving etc. if they still have their original name
void validateChannelName( int index, int oldIndex );
void toggledSolo();
void activateSolo();
void deactivateSolo();
inline fx_ch_t numChannels() const
{
return m_fxChannels.size();
@@ -191,6 +198,8 @@ private:
void addChannelLeaf( FxChannel * ch, sampleFrame * buf );
int m_lastSoloed;
friend class MixerWorkerThread;
friend class FxMixerView;

View File

@@ -55,6 +55,7 @@ public:
FxLine * m_fxLine;
pixmapButton * m_muteBtn;
pixmapButton * m_soloBtn;
fader * m_fader;
EffectRackView * m_rackView;
};
@@ -78,6 +79,7 @@ public:
return m_fxChannelViews[index];
}
void setCurrentFxLine( FxLine * _line );
void setCurrentFxLine( int _line );
@@ -101,6 +103,7 @@ public:
private slots:
void updateFaders();
void addNewChannel();
void toggledSolo();
private: