Loading services/audioflinger/AudioFlinger.cpp +14 −27 Original line number Diff line number Diff line Loading @@ -1099,26 +1099,17 @@ status_t AudioFlinger::setStreamVolume(audio_stream_type_t stream, float value, if (status != NO_ERROR) { return status; } if (output == AUDIO_IO_HANDLE_NONE) { return BAD_VALUE; } ALOG_ASSERT(stream != AUDIO_STREAM_PATCH, "attempt to change AUDIO_STREAM_PATCH volume"); AutoMutex lock(mLock); Vector<VolumeInterface *> volumeInterfaces; if (output != AUDIO_IO_HANDLE_NONE) { VolumeInterface *volumeInterface = getVolumeInterface_l(output); if (volumeInterface == NULL) { return BAD_VALUE; } volumeInterfaces.add(volumeInterface); } mStreamTypes[stream].volume = value; if (volumeInterfaces.size() == 0) { volumeInterfaces = getAllVolumeInterfaces_l(); } for (size_t i = 0; i < volumeInterfaces.size(); i++) { volumeInterfaces[i]->setStreamVolume(stream, value); } volumeInterface->setStreamVolume(stream, value); return NO_ERROR; } Loading Loading @@ -1157,21 +1148,17 @@ float AudioFlinger::streamVolume(audio_stream_type_t stream, audio_io_handle_t o if (status != NO_ERROR) { return 0.0f; } if (output == AUDIO_IO_HANDLE_NONE) { return 0.0f; } AutoMutex lock(mLock); float volume; if (output != AUDIO_IO_HANDLE_NONE) { VolumeInterface *volumeInterface = getVolumeInterface_l(output); if (volumeInterface != NULL) { volume = volumeInterface->streamVolume(stream); } else { volume = 0.0f; } } else { volume = streamVolume_l(stream); if (volumeInterface == NULL) { return 0.0f; } return volume; return volumeInterface->streamVolume(stream); } bool AudioFlinger::streamMute(audio_stream_type_t stream) const Loading services/audioflinger/AudioFlinger.h +0 −3 Original line number Diff line number Diff line Loading @@ -616,9 +616,6 @@ using effect_buffer_t = int16_t; // no range check, AudioFlinger::mLock held bool streamMute_l(audio_stream_type_t stream) const { return mStreamTypes[stream].mute; } // no range check, doesn't check per-thread stream volume, AudioFlinger::mLock held float streamVolume_l(audio_stream_type_t stream) const { return mStreamTypes[stream].volume; } void ioConfigChanged(audio_io_config_event event, const sp<AudioIoDescriptor>& ioDesc, pid_t pid = 0); Loading services/audioflinger/Threads.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -1703,11 +1703,14 @@ AudioFlinger::PlaybackThread::PlaybackThread(const sp<AudioFlinger>& audioFlinge readOutputParameters_l(); // ++ operator does not compile for (audio_stream_type_t stream = AUDIO_STREAM_MIN; stream < AUDIO_STREAM_CNT; for (audio_stream_type_t stream = AUDIO_STREAM_MIN; stream < AUDIO_STREAM_FOR_POLICY_CNT; stream = (audio_stream_type_t) (stream + 1)) { mStreamTypes[stream].volume = mAudioFlinger->streamVolume_l(stream); mStreamTypes[stream].volume = 0.0f; mStreamTypes[stream].mute = mAudioFlinger->streamMute_l(stream); } // Audio patch volume is always max mStreamTypes[AUDIO_STREAM_PATCH].volume = 1.0f; mStreamTypes[AUDIO_STREAM_PATCH].mute = false; } AudioFlinger::PlaybackThread::~PlaybackThread() Loading services/audiopolicy/managerdefault/AudioPolicyManager.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -3791,9 +3791,11 @@ status_t AudioPolicyManager::initCheck() // --- void AudioPolicyManager::addOutput(audio_io_handle_t output, const sp<SwAudioOutputDescriptor>& outputDesc) void AudioPolicyManager::addOutput(audio_io_handle_t output, const sp<SwAudioOutputDescriptor>& outputDesc) { mOutputs.add(output, outputDesc); applyStreamVolumes(outputDesc, AUDIO_DEVICE_NONE, 0 /* delayMs */, true /* force */); updateMono(output); // update mono status when adding to output list selectOutputForMusicEffects(); nextAudioPortGeneration(); Loading @@ -3805,7 +3807,8 @@ void AudioPolicyManager::removeOutput(audio_io_handle_t output) selectOutputForMusicEffects(); } void AudioPolicyManager::addInput(audio_io_handle_t input, const sp<AudioInputDescriptor>& inputDesc) void AudioPolicyManager::addInput(audio_io_handle_t input, const sp<AudioInputDescriptor>& inputDesc) { mInputs.add(input, inputDesc); nextAudioPortGeneration(); Loading Loading @@ -3955,9 +3958,6 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor>& d // outputs used by dynamic policy mixes audio_io_handle_t duplicatedOutput = AUDIO_IO_HANDLE_NONE; // set initial stream volume for device applyStreamVolumes(desc, device, 0, true); //TODO: configure audio effect output stage here // open a duplicating output thread for the new output and the primary output Loading @@ -3968,7 +3968,6 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor>& d if (status == NO_ERROR) { // add duplicated output descriptor addOutput(duplicatedOutput, dupOutputDesc); applyStreamVolumes(dupOutputDesc, device, 0, true); } else { ALOGW("checkOutputsForDevice() could not open dup output for %d and %d", mPrimaryOutput->mIoHandle, output); Loading Loading
services/audioflinger/AudioFlinger.cpp +14 −27 Original line number Diff line number Diff line Loading @@ -1099,26 +1099,17 @@ status_t AudioFlinger::setStreamVolume(audio_stream_type_t stream, float value, if (status != NO_ERROR) { return status; } if (output == AUDIO_IO_HANDLE_NONE) { return BAD_VALUE; } ALOG_ASSERT(stream != AUDIO_STREAM_PATCH, "attempt to change AUDIO_STREAM_PATCH volume"); AutoMutex lock(mLock); Vector<VolumeInterface *> volumeInterfaces; if (output != AUDIO_IO_HANDLE_NONE) { VolumeInterface *volumeInterface = getVolumeInterface_l(output); if (volumeInterface == NULL) { return BAD_VALUE; } volumeInterfaces.add(volumeInterface); } mStreamTypes[stream].volume = value; if (volumeInterfaces.size() == 0) { volumeInterfaces = getAllVolumeInterfaces_l(); } for (size_t i = 0; i < volumeInterfaces.size(); i++) { volumeInterfaces[i]->setStreamVolume(stream, value); } volumeInterface->setStreamVolume(stream, value); return NO_ERROR; } Loading Loading @@ -1157,21 +1148,17 @@ float AudioFlinger::streamVolume(audio_stream_type_t stream, audio_io_handle_t o if (status != NO_ERROR) { return 0.0f; } if (output == AUDIO_IO_HANDLE_NONE) { return 0.0f; } AutoMutex lock(mLock); float volume; if (output != AUDIO_IO_HANDLE_NONE) { VolumeInterface *volumeInterface = getVolumeInterface_l(output); if (volumeInterface != NULL) { volume = volumeInterface->streamVolume(stream); } else { volume = 0.0f; } } else { volume = streamVolume_l(stream); if (volumeInterface == NULL) { return 0.0f; } return volume; return volumeInterface->streamVolume(stream); } bool AudioFlinger::streamMute(audio_stream_type_t stream) const Loading
services/audioflinger/AudioFlinger.h +0 −3 Original line number Diff line number Diff line Loading @@ -616,9 +616,6 @@ using effect_buffer_t = int16_t; // no range check, AudioFlinger::mLock held bool streamMute_l(audio_stream_type_t stream) const { return mStreamTypes[stream].mute; } // no range check, doesn't check per-thread stream volume, AudioFlinger::mLock held float streamVolume_l(audio_stream_type_t stream) const { return mStreamTypes[stream].volume; } void ioConfigChanged(audio_io_config_event event, const sp<AudioIoDescriptor>& ioDesc, pid_t pid = 0); Loading
services/audioflinger/Threads.cpp +5 −2 Original line number Diff line number Diff line Loading @@ -1703,11 +1703,14 @@ AudioFlinger::PlaybackThread::PlaybackThread(const sp<AudioFlinger>& audioFlinge readOutputParameters_l(); // ++ operator does not compile for (audio_stream_type_t stream = AUDIO_STREAM_MIN; stream < AUDIO_STREAM_CNT; for (audio_stream_type_t stream = AUDIO_STREAM_MIN; stream < AUDIO_STREAM_FOR_POLICY_CNT; stream = (audio_stream_type_t) (stream + 1)) { mStreamTypes[stream].volume = mAudioFlinger->streamVolume_l(stream); mStreamTypes[stream].volume = 0.0f; mStreamTypes[stream].mute = mAudioFlinger->streamMute_l(stream); } // Audio patch volume is always max mStreamTypes[AUDIO_STREAM_PATCH].volume = 1.0f; mStreamTypes[AUDIO_STREAM_PATCH].mute = false; } AudioFlinger::PlaybackThread::~PlaybackThread() Loading
services/audiopolicy/managerdefault/AudioPolicyManager.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -3791,9 +3791,11 @@ status_t AudioPolicyManager::initCheck() // --- void AudioPolicyManager::addOutput(audio_io_handle_t output, const sp<SwAudioOutputDescriptor>& outputDesc) void AudioPolicyManager::addOutput(audio_io_handle_t output, const sp<SwAudioOutputDescriptor>& outputDesc) { mOutputs.add(output, outputDesc); applyStreamVolumes(outputDesc, AUDIO_DEVICE_NONE, 0 /* delayMs */, true /* force */); updateMono(output); // update mono status when adding to output list selectOutputForMusicEffects(); nextAudioPortGeneration(); Loading @@ -3805,7 +3807,8 @@ void AudioPolicyManager::removeOutput(audio_io_handle_t output) selectOutputForMusicEffects(); } void AudioPolicyManager::addInput(audio_io_handle_t input, const sp<AudioInputDescriptor>& inputDesc) void AudioPolicyManager::addInput(audio_io_handle_t input, const sp<AudioInputDescriptor>& inputDesc) { mInputs.add(input, inputDesc); nextAudioPortGeneration(); Loading Loading @@ -3955,9 +3958,6 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor>& d // outputs used by dynamic policy mixes audio_io_handle_t duplicatedOutput = AUDIO_IO_HANDLE_NONE; // set initial stream volume for device applyStreamVolumes(desc, device, 0, true); //TODO: configure audio effect output stage here // open a duplicating output thread for the new output and the primary output Loading @@ -3968,7 +3968,6 @@ status_t AudioPolicyManager::checkOutputsForDevice(const sp<DeviceDescriptor>& d if (status == NO_ERROR) { // add duplicated output descriptor addOutput(duplicatedOutput, dupOutputDesc); applyStreamVolumes(dupOutputDesc, device, 0, true); } else { ALOGW("checkOutputsForDevice() could not open dup output for %d and %d", mPrimaryOutput->mIoHandle, output); Loading