diff --git a/lib_rend/ivas_orient_trk.c b/lib_rend/ivas_orient_trk.c index 471694637fc328ae2cb7def8399502cee41a87bc..58ae7fd457d00322fe3f0ceb8d6aed2e8d3902cf 100644 --- a/lib_rend/ivas_orient_trk.c +++ b/lib_rend/ivas_orient_trk.c @@ -549,20 +549,16 @@ ivas_error ivas_orient_trk_GetMainOrientation( case OTR_TRACKING_NONE: *pOrientation = IdentityQuaternion(); break; +#ifdef OTR_REFERENCE_VECTOR_TRACKING + case OTR_TRACKING_REF_VEC: + case OTR_TRACKING_REF_VEC_LEV: +#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case OTR_TRACKING_REF_ORIENT: *pOrientation = pOTR->refRot; break; case OTR_TRACKING_AVG_ORIENT: *pOrientation = pOTR->absAvgRot; break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING - case OTR_TRACKING_REF_VEC: - *pOrientation = pOTR->refRot; - break; - case OTR_TRACKING_REF_VEC_LEV: - *pOrientation = pOTR->refRot; - break; -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ } return IVAS_ERR_OK; } @@ -599,10 +595,9 @@ ivas_error ivas_orient_trk_SetReferenceVector( switch ( pOTR->trackingType ) { + case OTR_TRACKING_NONE: case OTR_TRACKING_REF_ORIENT: case OTR_TRACKING_AVG_ORIENT: - return IVAS_ERR_WRONG_MODE; - case OTR_TRACKING_NONE: case OTR_TRACKING_REF_VEC: acousticFrontVector = VectorSubtract( listenerPos, refPos ); break; @@ -629,8 +624,7 @@ ivas_error ivas_orient_trk_SetReferenceVector( ivasForwardVector.x = -1.0f; ivasForwardVector.y = 0.0f; ivasForwardVector.z = 0.0f; - VectorRotationToQuaternion( acousticFrontVector, ivasForwardVector, &pOTR->refRot ); - + VectorRotationToQuaternion( ivasForwardVector, acousticFrontVector, &pOTR->refRot ); return IVAS_ERR_OK; } #endif /* OTR_REFERENCE_VECTOR_TRACKING */ @@ -690,7 +684,10 @@ ivas_error ivas_orient_trk_Process( case OTR_TRACKING_NONE: pOTR->trkRot = absRot; break; - +#ifdef OTR_REFERENCE_VECTOR_TRACKING + case OTR_TRACKING_REF_VEC: + case OTR_TRACKING_REF_VEC_LEV: +#endif /* OTR_REFERENCE_VECTOR_TRACKING */ case OTR_TRACKING_REF_ORIENT: /* Reset average orientation */ pOTR->absAvgRot = absRot; @@ -739,15 +736,6 @@ ivas_error ivas_orient_trk_Process( /* Compute filter coefficient corresponding to desired cutoff frequency */ pOTR->alpha = sinf( 2.0f * EVS_PI * cutoffFrequency / updateRate ); break; -#ifdef OTR_REFERENCE_VECTOR_TRACKING - case OTR_TRACKING_REF_VEC: - case OTR_TRACKING_REF_VEC_LEV: - { - /* This processing step of the OTR_TRACKING_REF_VEC/OTR_TRACKING_REF_VEC_LEVEL is identical */ - QuaternionProduct( pOTR->refRot, absRot, &pOTR->trkRot ); - break; - } -#endif /* OTR_REFERENCE_VECTOR_TRACKING */ default: result = IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Non-supported orientation tracking adaptation type" ); break;