bug fix with solo switch, changed size of settings window

This commit is contained in:
Volker Fischer 2011-01-24 21:21:09 +00:00
parent aeb9512deb
commit 667ec3eb38
3 changed files with 27 additions and 5 deletions

View file

@ -1,3 +1,10 @@
3.1.2
- show warning in main window if audio delay is too long
- bug fix: solo switch did not work correctly
3.1.1 3.1.1
- added stereo audio channel support - added stereo audio channel support

View file

@ -174,8 +174,9 @@ void CChannelFader::Reset()
void CChannelFader::OnGainValueChanged ( int value ) void CChannelFader::OnGainValueChanged ( int value )
{ {
// if mute flag is set, do not apply the new fader value // if mute flag is set or other channel is on solo, do not apply the new
if ( pcbMute->checkState() == Qt::Unchecked ) // fader value
if ( ( pcbMute->checkState() == Qt::Unchecked ) && !bOtherChannelIsSolo )
{ {
// emit signal for new fader gain value // emit signal for new fader gain value
emit gainValueChanged ( CalcFaderGain ( value ) ); emit gainValueChanged ( CalcFaderGain ( value ) );
@ -209,8 +210,11 @@ void CChannelFader::SetMute ( const bool bState )
void CChannelFader::ResetSoloState() void CChannelFader::ResetSoloState()
{ {
// reset solo state -> since solo state means that this channel is not // reset solo state -> since solo state means that this channel is not
// muted but all others, we simply have to uncheck the check box // muted but all others, we simply have to uncheck the check box (make
// sure the setChecked does not fire a signal)
pcbSolo->blockSignals ( true );
pcbSolo->setChecked ( false ); pcbSolo->setChecked ( false );
pcbSolo->blockSignals ( false );
} }
void CChannelFader::SetOtherSoloState ( const bool bState ) void CChannelFader::SetOtherSoloState ( const bool bState )
@ -222,7 +226,11 @@ void CChannelFader::SetOtherSoloState ( const bool bState )
// our solo state since only one channel can be set to solo // our solo state since only one channel can be set to solo
if ( bState && pcbSolo->isChecked() ) if ( bState && pcbSolo->isChecked() )
{ {
// we do not want to fire a signal with the following set function
// -> block signals temporarily
pcbSolo->blockSignals ( true );
pcbSolo->setChecked ( false ); pcbSolo->setChecked ( false );
pcbSolo->blockSignals ( false );
} }
// if other channel is solo, mute this channel, else enable channel gain // if other channel is solo, mute this channel, else enable channel gain
@ -411,7 +419,8 @@ void CAudioMixerBoard::ApplyNewConClientList ( CVector<CChannelShortInfo>& vecCh
emit NumClientsChanged ( iNumConnectedClients ); emit NumClientsChanged ( iNumConnectedClients );
} }
void CAudioMixerBoard::OnChSoloStateChanged ( const int iChannelIdx, const int iValue ) void CAudioMixerBoard::OnChSoloStateChanged ( const int iChannelIdx,
const int iValue )
{ {
// if channel iChannelIdx has just activated the solo switch, mute all // if channel iChannelIdx has just activated the solo switch, mute all
// other channels, else enable them again // other channels, else enable them again
@ -430,6 +439,12 @@ void CAudioMixerBoard::OnChSoloStateChanged ( const int iChannelIdx, const int i
} }
} }
} }
// set "other solo state" always to false for the current fader at which the
// status was changed because if solo is enabled, it has to be "false" and
// in case solo is just disabled (check was removed by the user), also no
// other channel can be solo at this time
vecpChanFader[iChannelIdx]->SetOtherSoloState ( false );
} }
QString CAudioMixerBoard::GenFaderText ( CChannelShortInfo& ChanInfo ) QString CAudioMixerBoard::GenFaderText ( CChannelShortInfo& ChanInfo )

View file

@ -6,7 +6,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>535</width> <width>535</width>
<height>374</height> <height>351</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle" >