typedef enum IvnrI2CRetTypeTag {
IV_I2C_RET_ACK_CMD = MODULE_RC_I2C_FIRST - 4,
IV_I2C_RET_NOSUPPORT = MODULE_RC_I2C_FIRST -3,
IV_I2C_RET_UNKNOW = MODULE_RC_I2C_FIRST -2,
IV_I2C_RET_BUSY = MODULE_RC_I2C_FIRST -1,
IV_I2C_RET_SUCCESS_STANDBY = 0x00,
} IvnrI2CRetType;
typedef enum
{
OUTPUT_FORMAT_ANALOG = 0x1,
OUTPUT_FORMAT_DIGITAL = 0x2,
OUTPUT_FORMAT_NULL = 0x3,
} cmd_output_format_id;
typedef enum
{
WORK_MODE_PERIPHERAL = 0x1,
WORK_MODE_TOPLIGHT = 0x2,
WORK_MODE_HOST = 0x3
} cmd_work_mode_id;
typedef enum
{
FUNC_MODE_PASSBY = 0x0, //所有功能关闭直接录音
FUNC_MODE_NOISECLEAN = 0x1, //降噪功能
FUNC_MODE_PHONE = 0x2, //通话回声消除功能
FUNC_MODE_WAKEUP = 0x3, //唤醒回声消除功能
} cmd_func_id;
typedef enum
{
DAC_GAIN_N23 = 34, //-23 dB
DAC_GAIN_N22 = 35, //-22 dB
DAC_GAIN_N21 = 36, //-21 dB
DAC_GAIN_N20 = 37, //-20 dB
DAC_GAIN_N19 = 38, //-19 dB
DAC_GAIN_N18 = 39, //-18 dB
DAC_GAIN_N17 = 40, //-17 dB
DAC_GAIN_N16 = 41, //-16 dB
DAC_GAIN_N15 = 42, //-15 dB
DAC_GAIN_N14 = 43, //-14 dB
DAC_GAIN_N13 = 44, //-13 dB
DAC_GAIN_N12 = 45, //-12 dB
DAC_GAIN_N11 = 46, //-11 dB
DAC_GAIN_N10 = 47, //-10 dB
DAC_GAIN_N09 = 48, //-9 dB
DAC_GAIN_N08 = 49, //-8 dB
DAC_GAIN_N07 = 50, //-7 dB default
DAC_GAIN_N06 = 51, //-6 dB
DAC_GAIN_N05 = 52, //-5 dB
DAC_GAIN_N04 = 53, //-4 dB
DAC_GAIN_N03 = 54, //-3 dB
DAC_GAIN_N02 = 55, //-2 dB
DAC_GAIN_N01 = 56, //-1 dB
DAC_GAIN_000 = 57, // 0 dB
DAC_GAIN_001 = 58, //+1 dB
DAC_GAIN_002 = 59, //+2 dB
DAC_GAIN_003 = 60, //+3 dB
DAC_GAIN_004 = 61, //+4 dB 麦克风模组,顶灯模式
DAC_GAIN_005 = 62, //+5 dB
DAC_GAIN_006_MAX = 63 //+6 dB
} cmd_dac_gain_id;
#define CMD_SET(item) ((item) & ~0x0100)
#define CMD_GET(item) ((item) | 0x0100)
#define CMD_MASK (~(CMD_SET(0)|CMD_GET(0)))
#define CMD_ITEM(cmd) ((cmd) & CMD_MASK)
#define CMD_REPLY 1
#define mkword(reg, val) ((val >> 8) | (reg << 1) | ((val & 0xFF) << 8))
#define GET_APP_ID(app_module_id) ((app_module_id)&~0xFF)
#define GET_MODULE_ID(app_module_id) ((app_module_id)& 0xFF)
#define APP_ID(a,b,c,d) (uint32_t)(((uint32_t)((a)-0x20)<<8)| \
((uint32_t)((b)-0x20)<<14)| \
((uint32_t)((c)-0x20)<<20)| \
((uint32_t)((d)-0x20)<<26))
#define APP_ID_SOS APP_ID('S','O','S',' ')
#define APP_ID_CTRL APP_ID('C','T','R','L')
#define APP_ID_STRM APP_ID('S','T','R','M')
#define APP_ID_CAPT APP_ID('C','A','P','T')
#define APP_ID_GVAD APP_ID('G','V','A','D')
#define APP_ID_PLBK APP_ID('P','L','B','K')
#define APP_ID_BROADCAST 0xFFFFFF00 // to broadcast commands to all apps
// Reserved module IDs
#define MODULE_ID_APP 0 // to send commands to the app
#define MODULE_ID_BROADCAST 0xFF // to broadcast commands to all modules
#define Q8_23(v) ((v) << 23)