Commit ea81af1c authored by hsd's avatar hsd
Browse files

[mod] unified processing of the reference vector modes with OTR_TRACKING_REF_ORIENT

parent c1604c89
Loading
Loading
Loading
Loading
Loading
+10 −22
Original line number Diff line number Diff line
@@ -537,20 +537,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;
}
@@ -587,10 +583,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;
@@ -617,8 +612,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:
            trkQuat = absQuat;
            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 = absQuat;
@@ -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, absQuat, &trkQuat );
            break;
        }
#endif /* OTR_REFERENCE_VECTOR_TRACKING */
        default:
            result = IVAS_ERROR( IVAS_ERR_INTERNAL_FATAL, "Non-supported orientation tracking adaptation type" );
            break;