Home | History | Annotate | Download | only in lib_src
      1 /*----------------------------------------------------------------------------
      2  *
      3  * File:
      4  * eas_pan.h
      5  *
      6  * Contents and purpose:
      7  * Calculates left and right gain multipliers based on a pan value from -63 to +63
      8  *
      9  * NOTES:
     10  * The _CMX_PARSER and _MFI_PARSER preprocessor symbols determine
     11  * whether the parser works for those particular file formats.
     12  *
     13  * Copyright Sonic Network Inc. 2005
     14 
     15  * Licensed under the Apache License, Version 2.0 (the "License");
     16  * you may not use this file except in compliance with the License.
     17  * You may obtain a copy of the License at
     18  *
     19  *      http://www.apache.org/licenses/LICENSE-2.0
     20  *
     21  * Unless required by applicable law or agreed to in writing, software
     22  * distributed under the License is distributed on an "AS IS" BASIS,
     23  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     24  * See the License for the specific language governing permissions and
     25  * limitations under the License.
     26  *
     27  *----------------------------------------------------------------------------
     28  * Revision Control:
     29  *   $Revision: 82 $
     30  *   $Date: 2006-07-10 11:45:19 -0700 (Mon, 10 Jul 2006) $
     31  *----------------------------------------------------------------------------
     32 */
     33 
     34 #ifndef EAS_PAN_H
     35 #define _EAS_PAN_H
     36 
     37 #include "eas_types.h"
     38 
     39 /*----------------------------------------------------------------------------
     40  * EAS_CalcPanControl()
     41  *----------------------------------------------------------------------------
     42  * Purpose:
     43  * Assign the left and right gain values corresponding to the given pan value.
     44  *
     45  * This routine uses sin/cos approximations for an equal power curve:
     46  *
     47  * sin(x) = (2-4*c)*x^2 + c + x
     48  * cos(x) = (2-4*c)*x^2 + c - x
     49  *
     50  * where  c = 1/sqrt(2)
     51  * using the a0 + x*(a1 + x*a2) approach
     52  *
     53  * Inputs:
     54  * pan          - pan value (-63 to + 63)
     55  *
     56  * Outputs:
     57  * pGainLeft    linear gain multiplier for left channel (15-bit fraction)
     58  * pGainRight   linear gain multiplier for left channel (15-bit fraction)
     59  *
     60  * Side Effects:
     61  *----------------------------------------------------------------------------
     62 */
     63 void EAS_CalcPanControl (EAS_INT pan, EAS_I16 *pGainLeft, EAS_I16 *pGainRight);
     64 
     65 #endif
     66 
     67