merge fixes (further fixes needed)

This commit is contained in:
Volker Fischer 2020-06-20 17:44:34 +02:00
parent d6759e4d92
commit 6de42e4d82
3 changed files with 30 additions and 45 deletions

View file

@ -9,6 +9,8 @@
- support sorting faders by channel instrument, coded by Alberstein8 (#356) - support sorting faders by channel instrument, coded by Alberstein8 (#356)
- new group switch to change several faders like one, coded by Alberstein8 (#379)
- add server recording indicator, coded by pljones (#295) - add server recording indicator, coded by pljones (#295)
- support for storing/recovering the server window positions (#357) - support for storing/recovering the server window positions (#357)

View file

@ -45,7 +45,7 @@ CChannelFader::CChannelFader ( QWidget* pNW )
pMuteSoloBox = new QWidget ( pFrame ); pMuteSoloBox = new QWidget ( pFrame );
pcbMute = new QCheckBox ( tr ( "Mute" ), pMuteSoloBox ); pcbMute = new QCheckBox ( tr ( "Mute" ), pMuteSoloBox );
pcbSolo = new QCheckBox ( tr ( "Solo" ), pMuteSoloBox ); pcbSolo = new QCheckBox ( tr ( "Solo" ), pMuteSoloBox );
pcbSelect = new QCheckBox ( tr ( "Select"), pMuteSoloBox ); pcbGroup = new QCheckBox ( tr ( "Group" ), pMuteSoloBox );
pLabelInstBox = new QGroupBox ( pFrame ); pLabelInstBox = new QGroupBox ( pFrame );
plblLabel = new QLabel ( "", pFrame ); plblLabel = new QLabel ( "", pFrame );
@ -109,7 +109,7 @@ CChannelFader::CChannelFader ( QWidget* pNW )
pMuteSoloGrid->addWidget ( pcbMute, 0, Qt::AlignLeft ); pMuteSoloGrid->addWidget ( pcbMute, 0, Qt::AlignLeft );
pMuteSoloGrid->addWidget ( pcbSolo, 0, Qt::AlignLeft ); pMuteSoloGrid->addWidget ( pcbSolo, 0, Qt::AlignLeft );
pMuteSoloGrid->addWidget ( pcbSelect, 0, Qt::AlignLeft ); pMuteSoloGrid->addWidget ( pcbGroup, 0, Qt::AlignLeft );
pMainGrid->addLayout ( pPanGrid ); pMainGrid->addLayout ( pPanGrid );
pMainGrid->addWidget ( pLevelsBox, 0, Qt::AlignHCenter ); pMainGrid->addWidget ( pLevelsBox, 0, Qt::AlignHCenter );
@ -154,12 +154,10 @@ CChannelFader::CChannelFader ( QWidget* pNW )
"one channel to solo." ) ); "one channel to solo." ) );
pcbSolo->setAccessibleName ( tr ( "Solo button" ) ); pcbSolo->setAccessibleName ( tr ( "Solo button" ) );
pcbSelect->setWhatsThis ( "<b>" + tr ( "Select" ) + ":</b> " + tr ( "With the Select checkbox, the " pcbGroup->setWhatsThis ( "<b>" + tr ( "Group" ) + ":</b> " + tr ( "With the Group checkbox, the "
"audio channel can be selected among others which means that all changes " "audio channel can be selected among others which means that all changes "
" made in any of the selected channels' fader are adjusted to the rest like all were the same " "made in any of the selected channels fader are adjusted to the rest like all were the same." ) );
) ); pcbGroup->setAccessibleName ( tr ( "Group button" ) );
pcbSelect->setAccessibleName ( tr ( "Select button" ) );
QString strFaderText = "<b>" + tr ( "Fader Tag" ) + ":</b> " + tr ( "The fader tag " QString strFaderText = "<b>" + tr ( "Fader Tag" ) + ":</b> " + tr ( "The fader tag "
"identifies the connected client. The tag name, a picture of your " "identifies the connected client. The tag name, a picture of your "
@ -186,7 +184,7 @@ CChannelFader::CChannelFader ( QWidget* pNW )
QObject::connect ( pcbSolo, &QCheckBox::stateChanged, QObject::connect ( pcbSolo, &QCheckBox::stateChanged,
this, &CChannelFader::soloStateChanged ); this, &CChannelFader::soloStateChanged );
QObject::connect ( pcbSelect, &QCheckBox::stateChanged, QObject::connect ( pcbGroup, &QCheckBox::stateChanged,
this, &CChannelFader::OnSelectStateChanged ); this, &CChannelFader::OnSelectStateChanged );
} }
@ -214,7 +212,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign )
pPanLabel->setText ( tr ( "PAN" ) ); pPanLabel->setText ( tr ( "PAN" ) );
pcbMute->setText ( tr ( "MUTE" ) ); pcbMute->setText ( tr ( "MUTE" ) );
pcbSolo->setText ( tr ( "SOLO" ) ); pcbSolo->setText ( tr ( "SOLO" ) );
pcbSelect->setText ( tr ( "SELECT" ) ); pcbGroup->setText ( tr ( "GROUP" ) );
plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_LED ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_LED );
break; break;
@ -227,7 +225,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign )
pPanLabel->setText ( tr ( "Pan" ) ); pPanLabel->setText ( tr ( "Pan" ) );
pcbMute->setText ( tr ( "M" ) ); pcbMute->setText ( tr ( "M" ) );
pcbSolo->setText ( tr ( "S" ) ); pcbSolo->setText ( tr ( "S" ) );
pcbSelect->setText ( tr ( "SL" ) ); pcbGroup->setText ( tr ( "G" ) );
plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_SLIM_BAR ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_SLIM_BAR );
break; break;
@ -241,7 +239,7 @@ void CChannelFader::SetGUIDesign ( const EGUIDesign eNewDesign )
pPanLabel->setText ( tr ( "Pan" ) ); pPanLabel->setText ( tr ( "Pan" ) );
pcbMute->setText ( tr ( "Mute" ) ); pcbMute->setText ( tr ( "Mute" ) );
pcbSolo->setText ( tr ( "Solo" ) ); pcbSolo->setText ( tr ( "Solo" ) );
pcbSelect->setText ( tr ( "Select" ) ); pcbGroup->setText ( tr ( "Group" ) );
plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_BAR ); plbrChannelLevel->SetLevelMeterType ( CMultiColorLEDBar::MT_BAR );
break; break;
} }
@ -320,7 +318,7 @@ void CChannelFader::Reset()
// reset mute/solo/select check boxes and level meter // reset mute/solo/select check boxes and level meter
pcbMute->setChecked ( false ); pcbMute->setChecked ( false );
pcbSolo->setChecked ( false ); pcbSolo->setChecked ( false );
pcbSelect->setChecked ( false ); pcbGroup->setChecked ( false );
plbrChannelLevel->setValue ( 0 ); plbrChannelLevel->setValue ( 0 );
// clear instrument picture, country flag, tool tips and label text // clear instrument picture, country flag, tool tips and label text
@ -395,7 +393,7 @@ void CChannelFader::SetRemoteFaderIsMute ( const bool bIsMute )
void CChannelFader::SetFaderIsSelect ( const bool bIsSelected ) void CChannelFader::SetFaderIsSelect ( const bool bIsSelected )
{ {
pcbSelect->setChecked ( bIsSelected ); pcbGroup->setChecked ( bIsSelected );
} }
void CChannelFader::SendFaderLevelToServer ( const int iLevel ) void CChannelFader::SendFaderLevelToServer ( const int iLevel )
@ -631,11 +629,6 @@ void CChannelFader::OnSelectStateChanged ( int value )
SetSelected ( static_cast<Qt::CheckState> ( value ) == Qt::Checked ); SetSelected ( static_cast<Qt::CheckState> ( value ) == Qt::Checked );
} }
void CChannelFader::SetSelected ( const bool bState )
{
// Just in case we need future actions here...
bIsSelected = bState;
}
/******************************************************************************\ /******************************************************************************\
* CAudioMixerBoard * * CAudioMixerBoard *
@ -647,7 +640,6 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) :
vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ), vecStoredPanValues ( MAX_NUM_STORED_FADER_SETTINGS, AUD_MIX_PAN_MAX / 2 ),
vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderIsSolo ( MAX_NUM_STORED_FADER_SETTINGS, false ),
vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ), vecStoredFaderIsMute ( MAX_NUM_STORED_FADER_SETTINGS, false ),
vecStoredFaderIsSelect( MAX_NUM_STORED_FADER_SETTINGS, false ),
iNewClientFaderLevel ( 100 ), iNewClientFaderLevel ( 100 ),
bDisplayPans ( false ), bDisplayPans ( false ),
bIsPanSupported ( false ), bIsPanSupported ( false ),
@ -942,20 +934,17 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector<CChannelInfo>& vecChanInf
int iStoredPanValue; int iStoredPanValue;
bool bStoredFaderIsSolo; bool bStoredFaderIsSolo;
bool bStoredFaderIsMute; bool bStoredFaderIsMute;
bool bStoredFaderIsSelect;
if ( GetStoredFaderSettings ( vecChanInfo[j], if ( GetStoredFaderSettings ( vecChanInfo[j],
iStoredFaderLevel, iStoredFaderLevel,
iStoredPanValue, iStoredPanValue,
bStoredFaderIsSolo, bStoredFaderIsSolo,
bStoredFaderIsMute, bStoredFaderIsMute ) )
bStoredFaderIsSelect) )
{ {
vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel ); vecpChanFader[i]->SetFaderLevel ( iStoredFaderLevel );
vecpChanFader[i]->SetPanValue ( iStoredPanValue ); vecpChanFader[i]->SetPanValue ( iStoredPanValue );
vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo ); vecpChanFader[i]->SetFaderIsSolo ( bStoredFaderIsSolo );
vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute ); vecpChanFader[i]->SetFaderIsMute ( bStoredFaderIsMute );
vecpChanFader[i]->SetFaderIsSelect ( bStoredFaderIsSelect );
} }
} }
@ -1042,14 +1031,12 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx,
const double dValue, const double dValue,
const bool bIsMyOwnFader ) const bool bIsMyOwnFader )
{ {
if ( !vecpChanFader[iChannelIdx]->IsSelect() ) // update current gain
{
emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader ); emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader );
}
else // This is selected, so all selected must be updated as well // if this fader is selected, all other selected must be updated as well
if ( vecpChanFader[iChannelIdx]->IsSelect() )
{ {
// update current, don't touch fader
emit ChangeChanGain ( iChannelIdx, dValue, bIsMyOwnFader );
for ( int i = MAX_NUM_CHANNELS - 1; i >= 0; i-- ) for ( int i = MAX_NUM_CHANNELS - 1; i >= 0; i-- )
{ {
// update rest of faders selected // update rest of faders selected
@ -1058,11 +1045,13 @@ void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx,
if ( i != iChannelIdx ) if ( i != iChannelIdx )
{ {
// temporaly unselect so it does not repeat this again and again... // temporaly unselect so it does not repeat this again and again...
vecpChanFader[i]->SetFaderIsSelect( FALSE ); vecpChanFader[i]->SetFaderIsSelect ( false );
// "move" faders with moving fader level // "move" faders with moving fader level
vecpChanFader[i]->SetFaderLevel( vecpChanFader[iChannelIdx]->GetFaderLevel() ); vecpChanFader[i]->SetFaderLevel ( vecpChanFader[iChannelIdx]->GetFaderLevel() );
// back to selected status // back to selected status
vecpChanFader[i]->SetFaderIsSelect( TRUE ); vecpChanFader[i]->SetFaderIsSelect ( true );
} }
} }
} }
@ -1086,7 +1075,6 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader )
CVector<int> viOldStoredPanValues ( vecStoredPanValues ); CVector<int> viOldStoredPanValues ( vecStoredPanValues );
CVector<int> vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo ); CVector<int> vbOldStoredFaderIsSolo ( vecStoredFaderIsSolo );
CVector<int> vbOldStoredFaderIsMute ( vecStoredFaderIsMute ); CVector<int> vbOldStoredFaderIsMute ( vecStoredFaderIsMute );
CVector<int> vbOldStoredFaderIsSelected ( vecStoredFaderIsSelect );
// init temporary list count (may be overwritten later on) // init temporary list count (may be overwritten later on)
int iTempListCnt = 0; int iTempListCnt = 0;
@ -1101,7 +1089,6 @@ void CAudioMixerBoard::StoreFaderSettings ( CChannelFader* pChanFader )
vecStoredPanValues[0] = pChanFader->GetPanValue(); vecStoredPanValues[0] = pChanFader->GetPanValue();
vecStoredFaderIsSolo[0] = pChanFader->IsSolo(); vecStoredFaderIsSolo[0] = pChanFader->IsSolo();
vecStoredFaderIsMute[0] = pChanFader->IsMute(); vecStoredFaderIsMute[0] = pChanFader->IsMute();
vecStoredFaderIsSelect[0] = pChanFader->IsSelect();
iTempListCnt = 1; iTempListCnt = 1;
for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ ) for ( int iIdx = 0; iIdx < MAX_NUM_STORED_FADER_SETTINGS; iIdx++ )
@ -1130,8 +1117,7 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo,
int& iStoredFaderLevel, int& iStoredFaderLevel,
int& iStoredPanValue, int& iStoredPanValue,
bool& bStoredFaderIsSolo, bool& bStoredFaderIsSolo,
bool& bStoredFaderIsMute, bool& bStoredFaderIsMute )
bool& bStoredFaderIsSelect)
{ {
// only do the check if the name string is not empty // only do the check if the name string is not empty
if ( !ChanInfo.strName.isEmpty() ) if ( !ChanInfo.strName.isEmpty() )
@ -1146,7 +1132,6 @@ bool CAudioMixerBoard::GetStoredFaderSettings ( const CChannelInfo& ChanInfo,
iStoredPanValue = vecStoredPanValues[iIdx]; iStoredPanValue = vecStoredPanValues[iIdx];
bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0; bStoredFaderIsSolo = vecStoredFaderIsSolo[iIdx] != 0;
bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0; bStoredFaderIsMute = vecStoredFaderIsMute[iIdx] != 0;
bStoredFaderIsSelect = vecStoredFaderIsSelect[iIdx] != 0;
// values found and copied, return OK // values found and copied, return OK
return true; return true;

View file

@ -57,7 +57,7 @@ public:
bool IsVisible() { return !pFrame->isHidden(); } bool IsVisible() { return !pFrame->isHidden(); }
bool IsSolo() { return pcbSolo->isChecked(); } bool IsSolo() { return pcbSolo->isChecked(); }
bool IsMute() { return pcbMute->isChecked(); } bool IsMute() { return pcbMute->isChecked(); }
bool IsSelect() { return pcbSelect->isChecked(); } bool IsSelect() { return pcbGroup->isChecked(); }
void SetGUIDesign ( const EGUIDesign eNewDesign ); void SetGUIDesign ( const EGUIDesign eNewDesign );
void SetDisplayChannelLevel ( const bool eNDCL ); void SetDisplayChannelLevel ( const bool eNDCL );
bool GetDisplayChannelLevel(); bool GetDisplayChannelLevel();
@ -83,7 +83,7 @@ protected:
void SendFaderLevelToServer ( const int iLevel ); void SendFaderLevelToServer ( const int iLevel );
void SendPanValueToServer ( const int iPan ); void SendPanValueToServer ( const int iPan );
void SetupFaderTag ( const ESkillLevel eSkillLevel ); void SetupFaderTag ( const ESkillLevel eSkillLevel );
void SetSelected ( const bool bState ); void SetSelected ( const bool bState ) { bIsSelected = bState; }
QFrame* pFrame; QFrame* pFrame;
@ -99,7 +99,7 @@ protected:
QCheckBox* pcbMute; QCheckBox* pcbMute;
QCheckBox* pcbSolo; QCheckBox* pcbSolo;
QCheckBox* pcbSelect; QCheckBox* pcbGroup;
QGroupBox* pLabelInstBox; QGroupBox* pLabelInstBox;
QLabel* plblLabel; QLabel* plblLabel;
@ -179,7 +179,6 @@ public:
CVector<int> vecStoredPanValues; CVector<int> vecStoredPanValues;
CVector<int> vecStoredFaderIsSolo; CVector<int> vecStoredFaderIsSolo;
CVector<int> vecStoredFaderIsMute; CVector<int> vecStoredFaderIsMute;
CVector<int> vecStoredFaderIsSelect;
int iNewClientFaderLevel; int iNewClientFaderLevel;
protected: protected:
@ -202,8 +201,7 @@ protected:
int& iStoredFaderLevel, int& iStoredFaderLevel,
int& iStoredPanValue, int& iStoredPanValue,
bool& bStoredFaderIsSolo, bool& bStoredFaderIsSolo,
bool& bStoredFaderIsMute, bool& bStoredFaderIsMute );
bool& bStoredFaderIsSelect);
void StoreFaderSettings ( CChannelFader* pChanFader ); void StoreFaderSettings ( CChannelFader* pChanFader );
void UpdateSoloStates(); void UpdateSoloStates();