Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c19aa9e8 authored by SPeak Shen's avatar SPeak Shen Committed by Jiabin Huang
Browse files

av: audioflinger: reduce duplicate code



reduce duplicate code

Test: TH
Bug: 260145070

Change-Id: I0d3600fc27ed64d6331222715ca5c3ee56e64c6a
Signed-off-by: default avatarSPeak Shen <speakshen@163.com>
parent 265a0690
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -316,6 +316,7 @@ protected:
        binder::Status unmute(/*out*/ bool *ret) override;
    private:
        Track* const mTrack;
        bool setMute(bool muted);
    };
    sp<AudioVibrationController> mAudioVibrationController;
    sp<os::ExternalVibration>    mExternalVibration;
+12 −19
Original line number Diff line number Diff line
@@ -1952,9 +1952,7 @@ void AudioFlinger::PlaybackThread::Track::updateTrackFrameInfo(
    }
}

binder::Status AudioFlinger::PlaybackThread::Track::AudioVibrationController::mute(
        /*out*/ bool *ret) {
    *ret = false;
bool AudioFlinger::PlaybackThread::Track::AudioVibrationController::setMute(bool muted) {
    sp<ThreadBase> thread = mTrack->mThread.promote();
    if (thread != 0) {
        // Lock for updating mHapticPlaybackEnabled.
@@ -1962,29 +1960,24 @@ binder::Status AudioFlinger::PlaybackThread::Track::AudioVibrationController::mu
        PlaybackThread *playbackThread = (PlaybackThread *)thread.get();
        if ((mTrack->channelMask() & AUDIO_CHANNEL_HAPTIC_ALL) != AUDIO_CHANNEL_NONE
                && playbackThread->mHapticChannelCount > 0) {
            ALOGD("%s, haptic playback was muted for track %d", __func__, mTrack->id());
            mTrack->setHapticPlaybackEnabled(false);
            *ret = true;
            ALOGD("%s, haptic playback was %s for track %d",
                    __func__, muted ? "muted" : "unmuted", mTrack->id());
            mTrack->setHapticPlaybackEnabled(!muted);
            return true;
        }
    }
    return false;
}

binder::Status AudioFlinger::PlaybackThread::Track::AudioVibrationController::mute(
        /*out*/ bool *ret) {
    *ret = setMute(true);
    return binder::Status::ok();
}

binder::Status AudioFlinger::PlaybackThread::Track::AudioVibrationController::unmute(
        /*out*/ bool *ret) {
    *ret = false;
    sp<ThreadBase> thread = mTrack->mThread.promote();
    if (thread != 0) {
        // Lock for updating mHapticPlaybackEnabled.
        Mutex::Autolock _l(thread->mLock);
        PlaybackThread *playbackThread = (PlaybackThread *)thread.get();
        if ((mTrack->channelMask() & AUDIO_CHANNEL_HAPTIC_ALL) != AUDIO_CHANNEL_NONE
                && playbackThread->mHapticChannelCount > 0) {
            ALOGD("%s, haptic playback was unmuted for track %d", __func__, mTrack->id());
            mTrack->setHapticPlaybackEnabled(true);
            *ret = true;
        }
    }
    *ret = setMute(false);
    return binder::Status::ok();
}