@ -1185,15 +1185,21 @@ status_t AudioFlinger::setMicMute(bool state)
}
AutoMutex lock ( mHardwareLock ) ;
sp < DeviceHalInterface > primaryDev = mPrimaryHardwareDev - > hwDevice ( ) ;
if ( primaryDev = = nullptr ) {
ALOGW ( " %s: no primary HAL device " , __func__ ) ;
return INVALID_OPERATION ;
}
mHardwareStatus = AUDIO_HW_SET_MIC_MUTE ;
ret = primaryDev - > setMicMute ( state ) ;
for ( size_t i = 0 ; i < mAudioHwDevs . size ( ) ; i + + ) {
sp < DeviceHalInterface > dev = mAudioHwDevs . valueAt ( i ) - > hwDevice ( ) ;
status_t result = dev - > setMicMute ( state ) ;
if ( result ! = NO_ERROR ) {
ret = result ;
if ( dev ! = primaryDev ) {
( void ) dev - > setMicMute ( state ) ;
}
}
mHardwareStatus = AUDIO_HW_IDLE ;
ALOGW_IF ( ret ! = NO_ERROR , " %s: error %d setting state to HAL " , __func__ , ret ) ;
return ret ;
}
@ -1203,20 +1209,18 @@ bool AudioFlinger::getMicMute() const
if ( ret ! = NO_ERROR ) {
return false ;
}
bool mute = true ;
bool state = AUDIO_MODE_INVALID ;
AutoMutex lock ( mHardwareLock ) ;
mHardwareStatus = AUDIO_HW_GET_MIC_MUTE ;
for ( size_t i = 0 ; i < mAudioHwDevs . size ( ) ; i + + ) {
sp < DeviceHalInterface > dev = mAudioHwDevs . valueAt ( i ) - > hwDevice ( ) ;
status_t result = dev - > getMicMute ( & state ) ;
if ( result = = NO_ERROR ) {
mute = mute & & state ;
}
sp < DeviceHalInterface > primaryDev = mPrimaryHardwareDev - > hwDevice ( ) ;
if ( primaryDev = = nullptr ) {
ALOGW ( " %s: no primary HAL device " , __func__ ) ;
return false ;
}
bool state ;
mHardwareStatus = AUDIO_HW_GET_MIC_MUTE ;
ret = primaryDev - > getMicMute ( & state ) ;
mHardwareStatus = AUDIO_HW_IDLE ;
return mute ;
ALOGE_IF ( ret ! = NO_ERROR , " %s: error %d getting state from HAL " , __func__ , ret ) ;
return ( ret = = NO_ERROR ) & & sta te;
}
void AudioFlinger : : setRecordSilenced ( audio_port_handle_t portId , bool silenced )