📄 adsp.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 + -