Loading services/audioflinger/PlaybackTracks.h +1 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ protected: binder::Status unmute(/*out*/ bool *ret) override; private: Track* const mTrack; bool setMute(bool muted); }; sp<AudioVibrationController> mAudioVibrationController; sp<os::ExternalVibration> mExternalVibration; Loading services/audioflinger/Tracks.cpp +10 −17 Original line number Diff line number Diff line Loading @@ -1898,9 +1898,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. Loading @@ -1908,27 +1906,22 @@ 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) { mTrack->setHapticPlaybackEnabled(false); *ret = true; 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) { mTrack->setHapticPlaybackEnabled(true); *ret = true; } } *ret = setMute(false); return binder::Status::ok(); } Loading Loading
services/audioflinger/PlaybackTracks.h +1 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ protected: binder::Status unmute(/*out*/ bool *ret) override; private: Track* const mTrack; bool setMute(bool muted); }; sp<AudioVibrationController> mAudioVibrationController; sp<os::ExternalVibration> mExternalVibration; Loading
services/audioflinger/Tracks.cpp +10 −17 Original line number Diff line number Diff line Loading @@ -1898,9 +1898,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. Loading @@ -1908,27 +1906,22 @@ 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) { mTrack->setHapticPlaybackEnabled(false); *ret = true; 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) { mTrack->setHapticPlaybackEnabled(true); *ret = true; } } *ret = setMute(false); return binder::Status::ok(); } Loading