diff -r 0b192a3a05a4 -r 4255033c5d30 bluetoothengine/btmac/src/BTMonoCmdHandler/btmcvolume.cpp --- a/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcvolume.cpp Tue Feb 02 00:20:42 2010 +0200 +++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcvolume.cpp Fri Apr 23 23:23:50 2010 +0300 @@ -60,11 +60,13 @@ void CBtmcVolume::SetSpeakerVolumeL(TInt aHfVol) { TRACE_FUNC - TRACE_INFO((_L("phone vol %d, acc vol %d"), iPhnSpkrVol, iAccSpkrVol)) + TRACE_INFO((_L("current vols phone %d, acc %d"), iPhnSpkrVol, iAccSpkrVol)) + // Store the new volume setting of headset regardless of + // whether volume control is active or not currently iAccSpkrVol = HfToPhoneVolScale(aHfVol); - if (iVolCtrlActivated) + TRACE_INFO((_L("new acc vol %d"), iAccSpkrVol)) + if ( IsActiveRemoteVolumeControl() ) { - TRACE_INFO((_L("to new vol %d"), iAccSpkrVol)) TInt vol = GetNewPhoneVol(); if (vol != KNoAudioStreaming) { @@ -73,10 +75,6 @@ DoSetSpeakerVolL( prevPhVol ); } } - else - { - TRACE_INFO((_L("volume control inactive!"))) - } } void CBtmcVolume::SetMicrophoneVolumeL(TInt /*aHfVol*/) @@ -86,13 +84,11 @@ void CBtmcVolume::ActivateRemoteVolumeControl() { - if (!iVolCtrlActivated) + TRACE_FUNC + if (!IsActiveRemoteVolumeControl() ) { - TRACE_FUNC iVolLevelProperty.Subscribe(iActive->iStatus); iActive->GoActive(); - - iVolCtrlActivated = ETrue; TInt vol = GetNewPhoneVol(); TRACE_INFO((_L("current phone vol %d, acc vol %d"), vol, iAccSpkrVol)) if (vol != KNoAudioStreaming) @@ -109,11 +105,7 @@ void CBtmcVolume::DeActivateRemoteVolumeControl() { - if (iVolCtrlActivated) - { - iVolCtrlActivated = EFalse; - iActive->Cancel(); - } + iActive->Cancel(); TRACE_FUNC } @@ -242,21 +234,15 @@ volClick = (iAccSpkrVol > iPhnSpkrVol) ? KPSVolumeUpClicked : KPSVolumeDownClicked; } } - + TInt err( KErrNotFound ); if( volClick ) { - iAction = ESpeakerVolSet; - TInt err = iVolKeyEventProperty.Set( volClick ); - if( err ) - { - iAction = ESpeakerVolSubscribe; - TRACE_ERROR((_L("Set KMediaKeysVolumeKeyEvent err %d"), err)); - } + err = iVolKeyEventProperty.Set( volClick ); + TRACE_INFO((_L("Set KMediaKeysVolumeKeyEvent click %d err %d"), volClick, err)); } - else - { - iAction = ESpeakerVolSubscribe; - } + + iAction = err ? ESpeakerVolSubscribe : ESpeakerVolSet; + TRACE_FUNC_EXIT } @@ -313,4 +299,9 @@ return iPhnSpkrVol; } +TBool CBtmcVolume::IsActiveRemoteVolumeControl() + { + return iActive->IsActive(); + } + // End of file