diff options
Diffstat (limited to 'services/audioflinger/AudioFlinger.cpp')
-rw-r--r-- | services/audioflinger/AudioFlinger.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp index 0a0529a..e4c055a 100644 --- a/services/audioflinger/AudioFlinger.cpp +++ b/services/audioflinger/AudioFlinger.cpp @@ -1051,6 +1051,7 @@ status_t AudioFlinger::setStreamVolume(audio_stream_type_t stream, float value, ALOGV("setStreamVolume for mAudioTracks size %d desc %p",mDirectAudioTracks.size(),desc); if (desc->mStreamType == stream) { mStreamTypes[stream].volume = value; + desc->mVolumeScale = value; desc->stream->set_volume(desc->stream, desc->mVolumeLeft * mStreamTypes[stream].volume, desc->mVolumeRight* mStreamTypes[stream].volume); @@ -6163,6 +6164,7 @@ AudioFlinger::DirectAudioTrack::DirectAudioTrack(const sp<AudioFlinger>& audioFl allocateBufPool(); } + outputDesc->mVolumeScale = 1.0; mDeathRecipient = new PMDeathRecipient(this); acquireWakeLock(); } @@ -6247,7 +6249,9 @@ void AudioFlinger::DirectAudioTrack::mute(bool muted) { void AudioFlinger::DirectAudioTrack::setVolume(float left, float right) { mOutputDesc->mVolumeLeft = left; mOutputDesc->mVolumeRight = right; - mOutputDesc->stream->set_volume(mOutputDesc->stream,left,right); + mOutputDesc->stream->set_volume(mOutputDesc->stream, + left * mOutputDesc->mVolumeScale, + right* mOutputDesc->mVolumeScale); } int64_t AudioFlinger::DirectAudioTrack::getTimeStamp() { |