⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adsp.c

📁 MTK1389 SOURCE CODE
💻 C
字号:
/**********************************************************************/
/***************    MTK CONFIDENTIAL & COPYRIGHTED     ****************/
/***************                                       ****************/
/***************  $Modtime:: 04/04/19 3:01p    $       ****************/
/***************  $Revision:: 1                $       ****************/
/***************                                       ****************/
/***************   Description :                       ****************/
/***************                                       ****************/
/***************                                       ****************/
/***************       Company : MediaTek Inc.         ****************/
/***************    Programmer :                       ****************/
/**********************************************************************/

#ifndef _ADSP_C
#define _ADSP_C

#define VOLUME_BASE (0x20000/MAX_VOL_LEVEL)

#ifdef TRACE_WRONG_VOL
  #define VOL_ZERO_BASE         1
#else /* normal case */
  #ifdef VOL_ZERO_AS_MUTE
    #define VOL_ZERO_BASE       0
  #else /* volume zero no mute */
    #ifdef USE_LINEAR_VLOUME
      #define VOL_ZERO_BASE     (VOLUME_BASE/2)
    #else
      #define VOL_ZERO_BASE     0x150
    #endif
  #endif /* volume zero no mute */
#endif /* normal case */

#ifdef USE_LINEAR_VLOUME
code DWRD VOLUME[MAX_VOL_LEVEL + 1] =
{
  VOL_ZERO_BASE,
  VOLUME_BASE *  1, VOLUME_BASE *  2, VOLUME_BASE *  3, VOLUME_BASE *  4, VOLUME_BASE *  5,
  VOLUME_BASE *  6, VOLUME_BASE *  7, VOLUME_BASE *  8, VOLUME_BASE *  9, VOLUME_BASE * 10,
  VOLUME_BASE * 11, VOLUME_BASE * 12, VOLUME_BASE * 13, VOLUME_BASE * 14, VOLUME_BASE * 15,
  VOLUME_BASE * 16, VOLUME_BASE * 17, VOLUME_BASE * 18, VOLUME_BASE * 19, 0x20000
};

#else
// 2.5dB per step
code DWRD VOLUME[MAX_VOL_LEVEL + 1] =
{
  VOL_ZERO_BASE,
  0x00000229,0x000002E1,0x000003D7,0x0000051F,0x000006D4,
  0x0000091B,0x00000C24,0x00001031,0x00001597,0x00001CCB,
  0x00002665,0x00003333,0x00004447,0x00005B0C,0x0000796A,
  0x0000A1E9,0x0000D7E9,0x00011FEB,0x00017FF2,0x00020000
};
#endif


code DWRD GAINDRY[GAIN_DRY_MAX] =
{
  0x00003314,0x0000394F,0x0000404D,0x00004826,0x000050F4,0x00005AD5,0x000065EA,0x00007259,
  0x0000804D,0x00008FF5,0x0000A186,0x0000B53B,0x0000CB59,0x0000E429,0x00010000,0x00011F3C,
  0x00014248,0x0001699C,0x000195BB,0x0001C73D,0x0001FEC9,0x00023D1C,0x0002830A,0x0002D181,
  0x0003298B,0x00038C52,0x0003FB27,0x00047782,0x0005030A
};

code DWRD GAINBAND[GAIN_BAND_MAX] =
{
  0xFFFF3315,0xFFFF3950,0xFFFF404E,0xFFFF4827,0xFFFF50F5,0xFFFF5AD6,0xFFFF65EB,0xFFFF725A,
  0xFFFF804E,0xFFFF8FF6,0xFFFFA187,0xFFFFB53C,0xFFFFCB5A,0xFFFFE42A,0x00000000,0x00001F3C,
  0x00004248,0x0000699C,0x000095BB,0x0000C73D,0x0000FEC9,0x00013D1C,0x0001830A,0x0001D181,
  0x0002298B,0x00028C52,0x0002FB27,0x00037782,0x0004030A
};

code DWRD MICGAIN[GAIN_MIC_MAX] =
{
  0,
  0x000005C9,0x0000082C,0x00000B8B,0x0000104E,0x00001709,0x00002089,0x00002DF5,0x000040EB,
  0x00005BB3,0x00008187,0x0000B6F6,0x00010271,0x00016D0E,0x000203A8,0x0002D862,0x000404DE,
  0x0005AD51,0x000804DD,0x000B53BF,0x000FFFFE
};

#ifdef KARAOKE_SIMPLE_ECHO
code BYTE ECHO_DELAY[ECHO_LEVEL_MAX] =
{
  0, 10, 20, 30, 40, 50, 60, 70, 80, 90,
  100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200
};

code DWRD ECHO_LEVEL[ECHO_LEVEL_MAX] =
{
  0,
  0x00002E49,0x00004161,0x00005C5A,0x00008274,0x0000B845,0x00010449,0x00016FAA,0x00020756,
  0x0002DD96,0x00040C37,0x0005B7B1,0x00081385,0x000B6873,0x00101D3F,0x0016C311,0x002026F3,
  0x002D6A86,0x004026E7,0x005A9DF7,0x007FFFFF
};

code DWRD ECHO_DEPTH[ECHO_LEVEL_MAX] =
{
  0,
  0x00002E49,0x00004161,0x00005C5A,0x00008274,0x0000B845,0x00010449,0x00016FAA,0x00020756,
  0x0002DD96,0x00040C37,0x0005B7B1,0x00081385,0x000B6873,0x00101D3F,0x0016C311,0x002026F3,
  0x002D6A86,0x004026E7,0x005A9DF7,0x00700000
};
#else /* original echo */
code BYTE ECHO_DELAY[DELAY_ECHO_MAX] =
{
  0, 10, 20, 30, 40, 50, 60, 70, 80, 90,
  100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200
};

code DWRD ECHO_LEVEL[ECHO_LEVEL_MAX] =
{
  0,
  0x00002E49,0x00004161,0x00005C5A,0x00008274,0x0000B845,0x00010449,0x00016FAA,0x00020756,
  0x0002DD96,0x00040C37,0x0005B7B1,0x00081385,0x000B6873,0x00101D3F,0x0016C311,0x002026F3,
  0x002D6A86,0x004026E7,0x005A9DF7,0x007FFFFF
};

code DWRD ECHO_DEPTH[ECHO_LEVEL_MAX] =
{
  0,
  0x00002E49,0x00004161,0x00005C5A,0x00008274,0x0000B845,0x00010449,0x00016FAA,0x00020756,
  0x0002DD96,0x00040C37,0x0005B7B1,0x00081385,0x000B6873,0x00101D3F,0x0016C311,0x002026F3,
  0x002D6A86,0x004026E7,0x005A9DF7,0x00700000
};
#endif /* original echo */

code DWRD TRIM[TRIM_LEVEL_MAX] =
{
  0x0000A1E9,0x0000AB81,0x0000B5AA,0x0000C06E,0x0000CBD5,0x0000D7E9,0x0000E4B4,0x0000F241,
  0x0001009C,0x00010FD0,0x00011FEB,0x000130FB,0x0001430D,0x00015631,0x00016A78,0x00017FF2,
  0x000196B2,0x0001AECB,0x0001C852,0x0001E35C,0x00020000,0x00021E57,0x00023E79,0x00026083,
  0x00028492,0x0002AAC3,0x0002D338,0x0002FE13,0x00032B77,0x00035B8C,0x00038E7B,0x0003C46E,
  0x0003FD93,0x00043A1B,0x00047A3A,0x0004BE25,0x00050616,0x0005524B,0x0005A303,0x0005F884,
  0x00065316
};

code DWRD VSURRGAIN[VSURR_GAIN_MAX] = 
{
  0x00001031,0x00001462,0x000019A9,0x0000204E,0x000028AB,0x00003333,0x00004075,0x00005126,
  0x00006628,0x0000809C,0x0000A1E9,0x0000CBD5,0x0001009C,0x0001430D,0x000196B2,0x00020000
};

code DWRD DYNAMIC_RANGE[DNR_MAX] =
{
  0x00000000,
  0x000FFFFF,0x001FFFFF,0x002FFFFF,0x003FFFFF,0x004FFFFF,0x005FFFFF,0x006FFFFF,0x007FFFFF
};

code DWRD LRMIX[LRMIX_MAX] =
{
  0x00000000,
  0x00080000,0x00100000,0x00180000,0x00200000,0x00280000,0x00300000,0x00380000,0x00400000,
  0x00480000,0x00500000,0x00580000,0x00600000,0x00680000,0x00700000,0x00780000,0x00800000
};

code DWRD MICTH[MIC_TH_MAX] =
{
  0x2000, 0x4000, 0x6000, 0x8000, 0xA000, 0xC000, 0xE000, 0x10000, 0x20000, 0x40000, 0x60000, 0x80000, 0xA0000, 0xC0000, 0xE0000
};

code BYTE SBDELAY[DELAY_SUB_MAX] =
{
  1, 2, 3, 4, 5, 6, 7
};

#ifdef PLAYER_SURROUND
typedef struct rReverbMode
{
  DWRD dwGain;
  BYTE bReverbBank0;
  BYTE bReverbBank1;
  BYTE bReverbBank2;
  BYTE bReverbBank3;
} rReverbMode;

static code rReverbMode prReverMode[AUD_REVERB_MODE_MAX] = {
  {0x200000, 79, 67, 59, 47},       /* 01 Concert */
  {0x180000, 41, 31, 23, 13},       /* 02 Living Room */
  {0x300000, 79, 59, 37, 19},       /* 03 Hall */
  {0x400000, 19, 17, 11,  7},       /* 04 Bathroom */
  {0x600000, 59, 47, 37, 23},       /* 05 Cave */
  {0x100000, 79, 73, 71, 67},       /* 06 Arena */
  {0x500000, 73, 67, 31, 11}        /* 07 Church */
};

static code char pcChEqPreset[AUD_EQ_TYPE_MAX][CH_EQ_BAND_NO+1] = {
  { 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0 },      // 00 NONE
  { 0,  10,  8,  5,  0,  -2,  0,  2,  4,  8, 10 },    // 01 ROCK
  { 0,  -2,  0,  4,  8,  10,  8,  5,  1,  -2,  -4 },  // 02 POP
  { 0,  14,  12,  8,  2,  -2,  0,  6,  10,  8,  4 },  // 03 LIVE
  { 0,  10,  9,  7,  4,  0,  -3,  -5,  -3,  -1, 0 },  // 04 DANCE
  { 0,  -4,  -2,  -1,  0,  1,  3,  6,  8,  9, 10 },   // 05 TECHNO
  { 0,  0,  0,  0,  0,  0,  0,  -1,  -2,  -3, -5 },   // 06 Classic
  { 0,  5,  4,  3,  2,  1,  -1,  -3,  -5,  -7, -8 }   // 07 Soft
};

#endif /* PLAYER_SURROUND */

#endif /* _ADSP_C */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -