bug fix with the fader grouping: if you move one fader quickly to the top and another max out, it happened that the other fader was not exactly on max but a bit below

This commit is contained in:
Volker Fischer 2020-07-02 17:55:59 +02:00
parent f22762d7ef
commit 45eef32b7c
2 changed files with 13 additions and 11 deletions

View file

@ -7,6 +7,7 @@
- bug fix: grouping faders in the client should be proportional (see discussion in #202, #419) - bug fix: grouping faders in the client should be proportional (see discussion in #202, #419)
TODO fix: if group, set one fader to 0, set mute, move fader up, unmute -> no grouping anymore
TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!! TODO bug fix: incorrect selection of UI language (#408) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!) -> note that for the 3.5.8 bug fix release we went back to the original translation code (e.g. no pt_BR!)

View file

@ -347,18 +347,18 @@ void CChannelFader::SetFaderLevel ( const double dLevel,
const bool bIsGroupUpdate ) const bool bIsGroupUpdate )
{ {
// first make a range check // first make a range check
if ( ( dLevel >= 0 ) && ( dLevel <= AUD_MIX_FADER_MAX ) ) if ( dLevel >= 0 )
{ {
// we set the new fader level in the GUI (slider control) and also tell the // we set the new fader level in the GUI (slider control) and also tell the
// server about the change (block the signal of the fader since we want to // server about the change (block the signal of the fader since we want to
// call SendFaderLevelToServer with a special additional parameter) // call SendFaderLevelToServer with a special additional parameter)
pFader->blockSignals ( true ); pFader->blockSignals ( true );
pFader->setValue ( MathUtils::round ( dLevel ) ); pFader->setValue ( min ( AUD_MIX_FADER_MAX, MathUtils::round ( dLevel ) ) );
pFader->blockSignals ( false ); pFader->blockSignals ( false );
SendFaderLevelToServer ( dLevel, bIsGroupUpdate ); SendFaderLevelToServer ( min ( static_cast<double> ( AUD_MIX_FADER_MAX ), dLevel ), bIsGroupUpdate );
}
else if ( dLevel >= 0 ) if ( dLevel > AUD_MIX_FADER_MAX )
{ {
// If the level is above the maximum, we have to store it for the purpose // If the level is above the maximum, we have to store it for the purpose
// of group fader movement. If you move a fader which has lower volume than // of group fader movement. If you move a fader which has lower volume than
@ -367,6 +367,7 @@ void CChannelFader::SetFaderLevel ( const double dLevel,
dPreviousFaderLevel = dLevel; dPreviousFaderLevel = dLevel;
} }
} }
}
void CChannelFader::SetPanValue ( const int iPan ) void CChannelFader::SetPanValue ( const int iPan )
{ {