Loading services/audioflinger/AudioFlinger.cpp +18 −14 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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) && state; } void AudioFlinger::setRecordSilenced(audio_port_handle_t portId, bool silenced) Loading Loading
services/audioflinger/AudioFlinger.cpp +18 −14 Original line number Diff line number Diff line Loading @@ -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; } Loading @@ -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) && state; } void AudioFlinger::setRecordSilenced(audio_port_handle_t portId, bool silenced) Loading