Loading services/audiopolicy/service/Spatializer.cpp +12 −15 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ Status Spatializer::setLevel(SpatializationLevel level) { if (levelChanged && mEngine != nullptr) { setEffectParameter_l(SPATIALIZER_PARAM_LEVEL, std::vector<SpatializationLevel>{level}); } checkHeadSensor_l(); checkSensorsState_l(); } if (levelChanged) { Loading Loading @@ -375,7 +375,7 @@ Status Spatializer::setDesiredHeadTrackingMode(SpatializerHeadTrackingMode mode) if (mPoseController != nullptr) { mPoseController->setDesiredMode(mDesiredHeadTrackingMode); checkHeadSensor_l(); checkSensorsState_l(); } return Status::ok(); Loading Loading @@ -449,9 +449,7 @@ Status Spatializer::setHeadSensor(int sensorHandle) { } std::lock_guard lock(mLock); mHeadSensor = sensorHandle; if (mPoseController != nullptr) { checkHeadSensor_l(); } checkSensorsState_l(); return Status::ok(); } Loading @@ -462,9 +460,7 @@ Status Spatializer::setScreenSensor(int sensorHandle) { } std::lock_guard lock(mLock); mScreenSensor = sensorHandle; if (mPoseController != nullptr) { mPoseController->setScreenSensor(mScreenSensor); } checkSensorsState_l(); return Status::ok(); } Loading Loading @@ -669,8 +665,7 @@ status_t Spatializer::attachOutput(audio_io_handle_t output, size_t numActiveTra mPoseController->setDesiredMode(mDesiredHeadTrackingMode); mNumActiveTracks = numActiveTracks; checkHeadSensor_l(); mPoseController->setScreenSensor(mScreenSensor); checkSensorsState_l(); mPoseController->setDisplayOrientation(mDisplayOrientation); poseController = mPoseController; } Loading Loading @@ -715,17 +710,19 @@ audio_io_handle_t Spatializer::detachOutput() { void Spatializer::updateActiveTracks(size_t numActiveTracks) { std::lock_guard lock(mLock); mNumActiveTracks = numActiveTracks; checkHeadSensor_l(); checkSensorsState_l(); } void Spatializer::checkHeadSensor_l() { void Spatializer::checkSensorsState_l() { if (mSupportsHeadTracking && mPoseController != nullptr) { if (mNumActiveTracks > 0 && mLevel != SpatializationLevel::NONE && mDesiredHeadTrackingMode != HeadTrackingMode::STATIC && mHeadSensor != SpatializerPoseController::INVALID_SENSOR) { mPoseController->setHeadSensor(mHeadSensor); mPoseController->setScreenSensor(mScreenSensor); } else { mPoseController->setHeadSensor(SpatializerPoseController::INVALID_SENSOR); mPoseController->setScreenSensor(SpatializerPoseController::INVALID_SENSOR); } } } Loading @@ -746,11 +743,11 @@ void Spatializer::engineCallback(int32_t event, void *user, void *info) { switch (event) { case AudioEffect::EVENT_FRAMES_PROCESSED: { int frames = info == nullptr ? 0 : *(int*)info; ALOGD("%s frames processed %d for me %p", __func__, frames, me); ALOGV("%s frames processed %d for me %p", __func__, frames, me); me->postFramesProcessedMsg(frames); } break; default: ALOGD("%s event %d", __func__, event); ALOGV("%s event %d", __func__, event); break; } } Loading services/audiopolicy/service/Spatializer.h +6 −1 Original line number Diff line number Diff line Loading @@ -276,7 +276,12 @@ private: void postFramesProcessedMsg(int frames); void checkHeadSensor_l() REQUIRES(mLock); /** * Checks if head and screen sensors must be actively monitored based on * spatializer state and playback activity and configures the pose controller * accordingly. */ void checkSensorsState_l() REQUIRES(mLock); /** Effect engine descriptor */ const effect_descriptor_t mEngineDescriptor; Loading Loading
services/audiopolicy/service/Spatializer.cpp +12 −15 Original line number Diff line number Diff line Loading @@ -300,7 +300,7 @@ Status Spatializer::setLevel(SpatializationLevel level) { if (levelChanged && mEngine != nullptr) { setEffectParameter_l(SPATIALIZER_PARAM_LEVEL, std::vector<SpatializationLevel>{level}); } checkHeadSensor_l(); checkSensorsState_l(); } if (levelChanged) { Loading Loading @@ -375,7 +375,7 @@ Status Spatializer::setDesiredHeadTrackingMode(SpatializerHeadTrackingMode mode) if (mPoseController != nullptr) { mPoseController->setDesiredMode(mDesiredHeadTrackingMode); checkHeadSensor_l(); checkSensorsState_l(); } return Status::ok(); Loading Loading @@ -449,9 +449,7 @@ Status Spatializer::setHeadSensor(int sensorHandle) { } std::lock_guard lock(mLock); mHeadSensor = sensorHandle; if (mPoseController != nullptr) { checkHeadSensor_l(); } checkSensorsState_l(); return Status::ok(); } Loading @@ -462,9 +460,7 @@ Status Spatializer::setScreenSensor(int sensorHandle) { } std::lock_guard lock(mLock); mScreenSensor = sensorHandle; if (mPoseController != nullptr) { mPoseController->setScreenSensor(mScreenSensor); } checkSensorsState_l(); return Status::ok(); } Loading Loading @@ -669,8 +665,7 @@ status_t Spatializer::attachOutput(audio_io_handle_t output, size_t numActiveTra mPoseController->setDesiredMode(mDesiredHeadTrackingMode); mNumActiveTracks = numActiveTracks; checkHeadSensor_l(); mPoseController->setScreenSensor(mScreenSensor); checkSensorsState_l(); mPoseController->setDisplayOrientation(mDisplayOrientation); poseController = mPoseController; } Loading Loading @@ -715,17 +710,19 @@ audio_io_handle_t Spatializer::detachOutput() { void Spatializer::updateActiveTracks(size_t numActiveTracks) { std::lock_guard lock(mLock); mNumActiveTracks = numActiveTracks; checkHeadSensor_l(); checkSensorsState_l(); } void Spatializer::checkHeadSensor_l() { void Spatializer::checkSensorsState_l() { if (mSupportsHeadTracking && mPoseController != nullptr) { if (mNumActiveTracks > 0 && mLevel != SpatializationLevel::NONE && mDesiredHeadTrackingMode != HeadTrackingMode::STATIC && mHeadSensor != SpatializerPoseController::INVALID_SENSOR) { mPoseController->setHeadSensor(mHeadSensor); mPoseController->setScreenSensor(mScreenSensor); } else { mPoseController->setHeadSensor(SpatializerPoseController::INVALID_SENSOR); mPoseController->setScreenSensor(SpatializerPoseController::INVALID_SENSOR); } } } Loading @@ -746,11 +743,11 @@ void Spatializer::engineCallback(int32_t event, void *user, void *info) { switch (event) { case AudioEffect::EVENT_FRAMES_PROCESSED: { int frames = info == nullptr ? 0 : *(int*)info; ALOGD("%s frames processed %d for me %p", __func__, frames, me); ALOGV("%s frames processed %d for me %p", __func__, frames, me); me->postFramesProcessedMsg(frames); } break; default: ALOGD("%s event %d", __func__, event); ALOGV("%s event %d", __func__, event); break; } } Loading
services/audiopolicy/service/Spatializer.h +6 −1 Original line number Diff line number Diff line Loading @@ -276,7 +276,12 @@ private: void postFramesProcessedMsg(int frames); void checkHeadSensor_l() REQUIRES(mLock); /** * Checks if head and screen sensors must be actively monitored based on * spatializer state and playback activity and configures the pose controller * accordingly. */ void checkSensorsState_l() REQUIRES(mLock); /** Effect engine descriptor */ const effect_descriptor_t mEngineDescriptor; Loading