/*----------------------------------------------------------------------------- * 配置数据类定义 * 类型必须以 CFG_XXX 命名 * 类成员必须赋值 *---------------------------------------------------------------------------*/ class CFG_User_Version // <"用户版本", CFG_CATEGORY_SYSTEM> { cfg_uint8 Version[CFG_MAX_USER_VERSION_LEN] = "ACTIONS_LARK"; // <"版本信息", string> }; class CFG_Platform_Case // <"平台方案", CFG_CATEGORY_SYSTEM, readonly> { cfg_uint32 IC_Type = CFG_IC_TYPE; // <"IC 类型", hex> cfg_uint8 Board_Type = BOARD_TYPE; // <"板型"> cfg_uint8 Case_Name[CFG_MAX_CASE_NAME_LEN] = "S6_01010101"; // <"方案名称", string> cfg_uint8 Major_Version = 1; // <"主版本号"> cfg_uint8 Minor_Version = 0; // <"次版本号"> }; class CFG_Console_UART // <"控制台串口", CFG_CATEGORY_SYSTEM> { cfg_uint16 TX_Pin = UART_TX_GPIO_10; // <"输出管脚", CFG_TYPE_UART_TX_PIN> cfg_uint16 RX_Pin = UART_RX_GPIO_11; // <"输入管脚", CFG_TYPE_UART_RX_PIN> cfg_uint32 Baudrate = 2000000; // <"波特率 (bps)"> cfg_uint8 Print_Time_Stamp = YES; // <"打印时间戳", CFG_TYPE_BOOL> }; class CFG_System_Settings // <"系统设置", CFG_CATEGORY_SYSTEM> { cfg_uint16 Support_Features = ( // SYS_ENABLE_SOFT_WATCHDOG | // SYS_ENABLE_DC5V_IN_RESET | SYS_ENABLE_DC5VPD_WHEN_DETECT_OUT | // SYS_FRONT_CHARGE_DC5V_OUT_REBOOT | 0 ); // <"系统支持特性", CFG_TYPE_SYS_SUPPORT_FEATURES, multi_select> cfg_uint8 Auto_Power_Off_Mode = AUTO_POWOFF_MODE_UNCONNECTED; // <"自动关机模式", CFG_TYPE_AUTO_POWOFF_MODE> cfg_uint16 Auto_Power_Off_Time_Sec = 120; // <"自动关机时间 (秒)", 0 ~ 900, /* 设置为 0 时禁止自动关机 */> cfg_uint16 Auto_Standby_Time_Sec = 30; // <"自动待机时间 (秒)", 0 ~ 900, /* 设置为 0 时禁止自动待机 */> cfg_uint8 Enable_Voice_Prompt_In_Calling = NO; // <"通话中允许语音播报提示", CFG_TYPE_BOOL> cfg_uint8 Default_Voice_Language = VOICE_LANGUAGE_1; // <"默认语音语言", CFG_TYPE_VOICE_LANGUAGE> cfg_uint8 Linein_Disable_Bluetooth = NO; // <"Linein 模式下禁用蓝牙功能", CFG_TYPE_BOOL, hide> }; class CFG_OTA_Settings // <"OTA 设置", CFG_CATEGORY_UPGRADE> { cfg_uint8 Enable_Dongle_OTA_Erase_VRAM = NO; // <"Dongle OTA擦除用户区", CFG_TYPE_BOOL> cfg_uint8 Enable_APP_OTA_Erase_VRAM = NO; // <"发射机或APP OTA擦除用户区", CFG_TYPE_BOOL> cfg_uint8 Enable_Single_OTA_Without_TWS = NO; // <"未组队时允许单耳OTA", CFG_TYPE_BOOL> cfg_uint8 Enable_Ver_Diff = YES; // <"左右耳固件版本不同时,允许TWS OTA", CFG_TYPE_BOOL> cfg_uint8 Enable_Ver_Low = YES; // <"关闭版本控制,版本号自动加1", CFG_TYPE_BOOL> cfg_uint8 Enable_Poweroff = NO; // <"OTA完成后关机", CFG_TYPE_BOOL> cfg_uint8 Version_Number[12] = "1.0.0"; // <"固件版本号", string, /* 例如 1.6.8, 2.6.3.4 */> }; class CFG_Factory_Settings // <"固件烧录设置", CFG_CATEGORY_UPGRADE> { cfg_uint8 Keep_User_VRAM_Data_When_UART_Upgrade = NO; // <"配置工具串口烧录固件时保留用户区数据", CFG_TYPE_BOOL> cfg_uint8 Keep_Factory_VRAM_Data_When_ATT_Upgrade = NO; // <"ATT 工具烧录固件时保留工厂区数据", CFG_TYPE_BOOL> }; class CFG_ONOFF_Key // <"ONOFF 按键", CFG_CATEGORY_KEY> { cfg_uint8 Use_Inner_ONOFF_Key = YES; // <"使用内部软 ONOFF 按键", CFG_TYPE_BOOL> cfg_uint8 Continue_Key_Function_After_Wake_Up = YES; // <"按键唤醒后允许继续响应按键功能", CFG_TYPE_BOOL, /* (内部软 ONOFF 按键) */> cfg_uint8 Key_Value = VKEY_PLAY; // <"ONOFF 键值", CFG_TYPE_KEY_VALUE> cfg_uint16 Time_Press_Power_On = ONOFF_PRESS_POWER_ON_500_MS; // <"按下开机", CFG_TYPE_ONOFF_PRESS_POWER_ON, /* (内部软 ONOFF 按键) */> cfg_uint8 Time_Long_Press_Reset = ONOFF_LONG_PRESS_RESET_8S; // <"长按复位", CFG_TYPE_ONOFF_LONG_PRESS_RESET, /* (内部软 ONOFF 按键) */> cfg_uint8 Boot_Hold_Key_Func = BOOT_HOLD_KEY_FUNC_ENTER_PAIR_MODE; // <"开机长按键功能", CFG_TYPE_BOOT_HOLD_KEY_FUNC> cfg_uint16 Boot_Hold_Key_Time_Ms = 2500; // <"开机长按键时间 (毫秒)", 500 ~ 8000> cfg_uint16 Debounce_Time_Ms = 40; // <"去抖时间 (毫秒)", 0 ~ 100> cfg_uint8 Reboot_After_Boot_Hold_Key_Clear_Paired_List = NO; // <"开机长按键清除配对列表后自动重启", CFG_TYPE_BOOL> }; class CFG_LRADC_Keys // <"LRADC 按键", CFG_CATEGORY_KEY> { CFG_Type_LRADC_Key Key[CFG_MAX_LRADC_KEYS] = { { .Key_Value = VKEY_VADD, .ADC_Min = 0, .ADC_Max = 0xb0 + 0x16c, }, { .Key_Value = VKEY_VSUB, .ADC_Min = 0x520 - 0x16c, .ADC_Max = 0x520 + 0x16c, }, { .Key_Value = VKEY_MENU, .ADC_Min = 0x970 - 0x16c, .ADC_Max = 0x970 + 0x16c, }, { .Key_Value = VKEY_MODE, .ADC_Min = 0xdb0 - 0x16c, .ADC_Max = 0xdb0 + 0x16c, }, }; // <"按键", CFG_Type_LRADC_Key> cfg_uint32 LRADC_Ctrl = ( LRADC_CTRL_1_GPIO_76 ); // <"LRADC 控制器", CFG_TYPE_LRADC_CTRL> cfg_uint8 LRADC_Pull_Up = LRADC_PULL_UP_EXTERNAL; // <"LRADC 上拉电阻", CFG_TYPE_LRADC_PULL_UP, /* LRADC_CTRL_1 默认使用内部上拉, 其它只能外部上拉 */> cfg_uint8 Use_LRADC_Key_Wake_Up = NO; // <"使用 LRADC 按键唤醒", CFG_TYPE_BOOL, /* LRADC_CTRL_1_GPIO_0 才能支持唤醒 */> cfg_uint8 LRADC_Value_Test = NO; // <"LRADC 采样值测试", CFG_TYPE_BOOL, /* 通过串口打印 LRADC 采样值 */> cfg_uint16 Debounce_Time_Ms = 40; // <"去抖时间 (毫秒)", 0 ~ 100> }; class CFG_GPIO_Keys // <"GPIO 按键", CFG_CATEGORY_KEY> { CFG_Type_GPIO_Key Key[CFG_MAX_GPIO_KEYS] = { { .Key_Value = VKEY_NONE, .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_UP, .Active_Level = GPIO_LEVEL_LOW, .Debounce_Time_Ms = 40, }, { .Key_Value = VKEY_NONE, .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_UP, .Active_Level = GPIO_LEVEL_LOW, .Debounce_Time_Ms = 40, }, { .Key_Value = VKEY_NONE, .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_UP, .Active_Level = GPIO_LEVEL_LOW, .Debounce_Time_Ms = 40, }, { .Key_Value = VKEY_NONE, .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_UP, .Active_Level = GPIO_LEVEL_LOW, .Debounce_Time_Ms = 40, }, }; // <"按键", CFG_Type_GPIO_Key> }; class CFG_Tap_Key // <"敲击按键", CFG_CATEGORY_KEY> { CFG_Type_Tap_Key_Control Tap_Key_Control = { .Tap_Ctrl_Select = TAP_CTRL_NONE, .SDA_Pin = GPIO_NONE, .SCL_Pin = GPIO_NONE, .I2C_Pull_Up = CFG_GPIO_PULL_UP_10K, .I2C_Device_Address = 0x4e, .I2C_Bitrate = 100000, .INT1_Pin = GPIO_NONE, .INT1_Pull_Up_Down = CFG_GPIO_PULL_UP, .INT1_Active_Level = GPIO_LEVEL_LOW, .First_Tap_Sensitivity = 13, .Continue_Tap_Sensitivity = 6, .Enable_Single_Tap = NO, .Tap_Key_Tone = TONE_KEY_SOUND, .Support_INT_Wake_Up = NO, }; // <"敲击按键支持", CFG_Type_Tap_Key_Control> }; class CFG_Key_Threshold // <"按键响应门限参数", CFG_CATEGORY_KEY> { cfg_uint16 Single_Click_Valid_Ms = 500; // <"单击有效时间 (毫秒)", 200 ~ 1000, /* 单击按下到抬起在该时间内有效 */> cfg_uint16 Multi_Click_Interval_Ms = 300; // <"多击间隔时间 (毫秒)", 100 ~ 500> cfg_uint16 Repeat_Start_Delay_Ms = 500; // <"重复按键延迟时间 (毫秒)", 0 ~ 1000, /* 按键按下该时间后开始重复按键 */> cfg_uint16 Repeat_Interval_Ms = 250; // <"重复按键间隔时间 (毫秒)", 100 ~ 1000> cfg_uint16 Long_Press_Time_Ms = 800; // <"长按键时间 (毫秒)", 500 ~ 5000> cfg_uint16 Long_Long_Press_Time_Ms = 3000; // <"超长按键时间 (毫秒)", 1000 ~ 10000> cfg_uint16 Very_Long_Press_Time_Ms = 5000; // <"极长按键时间 (毫秒)", 1500 ~ 20000> }; class CFG_Key_Func_Maps // <"按键功能映射", CFG_CATEGORY_KEY> { CFG_Type_Key_Func_Map Map[CFG_MAX_KEY_FUNC_MAPS] = { { .Key_Func = KEY_FUNC_POWER_OFF, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_ENTER_PAIR_MODE, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_CLEAR_PAIRED_LIST_IN_PAIR_MODE, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_TRIPLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_CLEAR_PAIRED_LIST, .Key_Value = VKEY_MODE, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_TWS_PAIR_SEARCH, .Key_Value = VKEY_MODE, .Key_Event = KEY_EVENT_DOUBLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_START_RECONNECT, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_PLAY_PAUSE, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_PREV_MUSIC, .Key_Value = VKEY_VSUB, .Key_Event = KEY_EVENT_DOUBLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NEXT_MUSIC, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_DOUBLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_ADD_MUSIC_VOLUME, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_SUB_MUSIC_VOLUME, .Key_Value = VKEY_VSUB, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_ADD_CALL_VOLUME, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_SUB_CALL_VOLUME, .Key_Value = VKEY_VSUB, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_ACCEPT_CALL, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_REJECT_CALL, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_HANGUP_CALL, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_KEEP_CALL_RELEASE_3WAY, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_HOLD_CALL_ACTIVE_3WAY, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_HANGUP_CALL_ACTIVE_3WAY, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_DOUBLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_SWITCH_CALL_OUT, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_SWITCH_MIC_MUTE, .Key_Value = VKEY_VSUB, .Key_Event = KEY_EVENT_LONG_PRESS, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_DIAL_LAST_NO, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_DOUBLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_START_VOICE_ASSIST, .Key_Value = VKEY_VSUB, .Key_Event = KEY_EVENT_TRIPLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_STOP_VOICE_ASSIST, .Key_Value = VKEY_PLAY, .Key_Event = KEY_EVENT_SINGLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_HID_PHOTO_SHOT, .Key_Value = VKEY_VADD, .Key_Event = KEY_EVENT_TRIPLE_CLICK, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_HID_CUSTOM_KEY, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, }; // <"映射", CFG_Type_Key_Func_Map> }; class CFG_Combo_Key_Func_Maps // <"组合按键映射", CFG_CATEGORY_KEY> { CFG_Type_Combo_Key_Map Map[CFG_MAX_COMBO_KEY_MAPS] = { { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, { .Key_Func = KEY_FUNC_NONE, .Key_Value_1 = VKEY_NONE, .Key_Value_2 = VKEY_NONE, .Key_Event = KEY_EVENT_NONE, .LR_Device = KEY_DEVICE_TWS_UNPAIRED | KEY_DEVICE_TWS_PAIRED, }, }; // <"映射", CFG_Type_Combo_Key_Map> }; class CFG_Customed_Key_Sequence // <"自定义按键序列设置", CFG_CATEGORY_KEY> { CFG_Type_Customed_Key_Sequence Customed_Key_Sequence[2] = { { .Key_Sequence = CUSTOMED_KEY_SEQUENCE_NONE, .Key_Event_1 = KEY_EVENT_NONE, .Key_Event_2 = KEY_EVENT_NONE, }, { .Key_Sequence = CUSTOMED_KEY_SEQUENCE_NONE, .Key_Event_1 = KEY_EVENT_NONE, .Key_Event_2 = KEY_EVENT_NONE, }, };// <"自定义按键序列", CFG_Type_Customed_Key_Sequence> }; class CFG_LED_Drives // <"LED 驱动", CFG_CATEGORY_DISPLAY> { CFG_Type_LED_Drive LED[CFG_MAX_LEDS] = { { .LED_No = LED_RED, .GPIO_Pin = LED_GPIO_18, .Active_Level = GPIO_LEVEL_HIGH, }, { .LED_No = LED_BLUE, .GPIO_Pin = LED_GPIO_19, .Active_Level = GPIO_LEVEL_HIGH, }, { .LED_No = LED_NULL, .GPIO_Pin = LED_GPIO_NONE, .Active_Level = GPIO_LEVEL_HIGH, }, { .LED_No = LED_NULL, .GPIO_Pin = LED_GPIO_NONE, .Active_Level = GPIO_LEVEL_HIGH, }, }; // <"LED", CFG_Type_LED_Drive> }; class CFG_LED_Display_Models // <"LED 显示模式", CFG_CATEGORY_DISPLAY> { CFG_Type_LED_Display_Model Model[CFG_MAX_LED_DISPLAY_MODELS] = { { .Display_Model = LED_DISPLAY_POWER_ON, .Display_LEDs = LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 200, .OFF_Time_Ms = 200, .Flash_Count = 3, .Loop_Count = 1, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_POWER_OFF, .Display_LEDs = LED_RED, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 200, .OFF_Time_Ms = 200, .Flash_Count = 3, .Loop_Count = 1, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_STANDBY, .Display_LEDs = LED_RED, .Disable_LEDs = LED_BLUE, .Use_PWM_Control = YES, .Delay_Time_Ms = 0, .ON_Time_Ms = 100, .OFF_Time_Ms = 5000, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_CHARGE_START, .Display_LEDs = LED_RED, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 1000, .OFF_Time_Ms = 0, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_CHARGE_FULL, .Display_LEDs = LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 1000, .OFF_Time_Ms = 0, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_BT_PAIR_MODE, .Display_LEDs = LED_RED | LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 250, .ON_Time_Ms = 250, .OFF_Time_Ms = 250, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_BT_WAIT_CONNECT, .Display_LEDs = LED_RED | LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 500, .ON_Time_Ms = 500, .OFF_Time_Ms = 500, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_BT_CONNECTED, .Display_LEDs = LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 150, .OFF_Time_Ms = 0, .Flash_Count = 1, .Loop_Count = 0, .Loop_Wait_Time_Ms = 5000, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_BT_UNLINKED, .Display_LEDs = LED_RED | LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 1000, .ON_Time_Ms = 1000, .OFF_Time_Ms = 1000, .Flash_Count = 0, .Loop_Count = 0, .Loop_Wait_Time_Ms = 0, .Breath_Time_Ms = 0, }, { .Display_Model = LED_DISPLAY_BT_CALL_INCOMING, .Display_LEDs = LED_BLUE, .Disable_LEDs = NONE, .Use_PWM_Control = NO, .Delay_Time_Ms = 0, .ON_Time_Ms = 150, .OFF_Time_Ms = 150, .Flash_Count = 3, .Loop_Count = 0, .Loop_Wait_Time_Ms = 500, .Breath_Time_Ms = 0, }, }; // <"模式", CFG_Type_LED_Display_Model> }; class CFG_BT_Music_Volume_Table // <"蓝牙音乐音量分级表", CFG_CATEGORY_VOLUME_GAIN> { cfg_uint16 Level[CFG_MAX_BT_MUSIC_VOLUME + 1] = { VOLUME_GAIN_0, // LEVEL_0 VOLUME_GAIN_4, // LEVEL_1 VOLUME_GAIN_6, // LEVEL_2 VOLUME_GAIN_9, // LEVEL_3 VOLUME_GAIN_12, // LEVEL_4 VOLUME_GAIN_15, // LEVEL_5 VOLUME_GAIN_18, // LEVEL_6 VOLUME_GAIN_21, // LEVEL_7 VOLUME_GAIN_24, // LEVEL_8 VOLUME_GAIN_27, // LEVEL_9 VOLUME_GAIN_30, // LEVEL_10 VOLUME_GAIN_33, // LEVEL_11 VOLUME_GAIN_36, // LEVEL_12 VOLUME_GAIN_39, // LEVEL_13 VOLUME_GAIN_42, // LEVEL_14 VOLUME_GAIN_45, // LEVEL_15 VOLUME_GAIN_48, // LEVEL_16 }; // <"分级", CFG_TYPE_VOLUME_GAIN, click_popup> }; class CFG_BT_Call_Volume_Table // <"蓝牙通话音量分级表", CFG_CATEGORY_VOLUME_GAIN> { cfg_uint16 Level[CFG_MAX_BT_CALL_VOLUME + 1] = { VOLUME_GAIN_4, // LEVEL_0 VOLUME_GAIN_6, // LEVEL_1 VOLUME_GAIN_9, // LEVEL_2 VOLUME_GAIN_12, // LEVEL_3 VOLUME_GAIN_15, // LEVEL_4 VOLUME_GAIN_18, // LEVEL_5 VOLUME_GAIN_21, // LEVEL_6 VOLUME_GAIN_24, // LEVEL_7 VOLUME_GAIN_27, // LEVEL_8 VOLUME_GAIN_30, // LEVEL_9 VOLUME_GAIN_33, // LEVEL_10 VOLUME_GAIN_36, // LEVEL_11 VOLUME_GAIN_39, // LEVEL_12 VOLUME_GAIN_42, // LEVEL_13 VOLUME_GAIN_45, // LEVEL_14 VOLUME_GAIN_48, // LEVEL_15 }; // <"分级", CFG_TYPE_VOLUME_GAIN, click_popup> }; class CFG_Linein_Volume_Table // <"Linein 音量分级表", CFG_CATEGORY_VOLUME_GAIN, hide> { cfg_uint16 Level[CFG_MAX_LINEIN_VOLUME + 1] = { VOLUME_GAIN_4, // LEVEL_0 VOLUME_GAIN_6, // LEVEL_1 VOLUME_GAIN_9, // LEVEL_2 VOLUME_GAIN_12, // LEVEL_3 VOLUME_GAIN_15, // LEVEL_4 VOLUME_GAIN_18, // LEVEL_5 VOLUME_GAIN_21, // LEVEL_6 VOLUME_GAIN_24, // LEVEL_7 VOLUME_GAIN_27, // LEVEL_8 VOLUME_GAIN_30, // LEVEL_9 VOLUME_GAIN_33, // LEVEL_10 VOLUME_GAIN_36, // LEVEL_11 VOLUME_GAIN_39, // LEVEL_12 VOLUME_GAIN_42, // LEVEL_13 VOLUME_GAIN_45, // LEVEL_14 VOLUME_GAIN_48, // LEVEL_15 VOLUME_GAIN_52, // LEVEL_15 }; // <"分级", CFG_TYPE_VOLUME_GAIN, click_popup> }; class CFG_Voice_Volume_Table // <"语音音量分级表", CFG_CATEGORY_VOLUME_GAIN> { cfg_uint16 Level[CFG_MAX_VOICE_VOLUME + 1] = { VOLUME_GAIN_4, // LEVEL_0 VOLUME_GAIN_6, // LEVEL_1 VOLUME_GAIN_9, // LEVEL_2 VOLUME_GAIN_12, // LEVEL_3 VOLUME_GAIN_15, // LEVEL_4 VOLUME_GAIN_18, // LEVEL_5 VOLUME_GAIN_21, // LEVEL_6 VOLUME_GAIN_24, // LEVEL_7 VOLUME_GAIN_27, // LEVEL_8 VOLUME_GAIN_30, // LEVEL_9 VOLUME_GAIN_33, // LEVEL_10 VOLUME_GAIN_36, // LEVEL_11 VOLUME_GAIN_39, // LEVEL_12 VOLUME_GAIN_42, // LEVEL_13 VOLUME_GAIN_45, // LEVEL_14 VOLUME_GAIN_48, // LEVEL_15 VOLUME_GAIN_52, // LEVEL_16 }; // <"分级", CFG_TYPE_VOLUME_GAIN, click_popup> }; class CFG_Volume_Settings // <"音量设置", CFG_CATEGORY_VOLUME_GAIN> { cfg_uint8 Voice_Default_Volume = 8; // <"语音默认音量", 0 ~ 16, slide_bar, hide> cfg_uint8 Voice_Min_Volume = 6; // <"语音最小音量", 0 ~ 16, slide_bar> cfg_uint8 Voice_Max_Volume = 12; // <"语音最大音量", 0 ~ 16, slide_bar> cfg_uint8 BT_Music_Default_Volume = 8; // <"蓝牙音乐默认音量", 0 ~ 16, slide_bar> cfg_uint8 BT_Call_Default_Volume = 8; // <"蓝牙通话默认音量", 0 ~ 15, slide_bar> cfg_uint8 BT_Music_Default_Vol_Ex = 12; // <"蓝牙音乐默认音量 (用于不支持音量同步的设备)", 0 ~ 16, slide_bar> cfg_uint8 Linein_Default_Volume = 8; // <"Linein 默认音量", 0 ~ 16, slide_bar, hide> cfg_uint8 Linein_Gain = MIC_GAIN_6_0_DB; // <"Linein 模拟增益", CFG_TYPE_MIC_GAIN, dev_mode, hide> }; class CFG_Audio_Settings // <"音频设置", CFG_CATEGORY_AUDIO> { cfg_uint8 Audio_Out_Mode = ( AUDIO_OUT_MODE_DAC_DIFF ); // <"音频输出模式", CFG_TYPE_AUDIO_OUT_MODE> CFG_Type_I2S_Select_GPIO I2STX_Select_GPIO = { .I2S_MCLK = I2STX_MCLK_GPIO_NONE, .I2S_LRCLK = I2STX_MCLK_GPIO_NONE, .I2S_BCLK = I2STX_MCLK_GPIO_NONE, .I2S_DOUT = I2STX_MCLK_GPIO_NONE, }; // <"I2S TX 管脚配置", CFG_Type_I2S_Select_GPIO, click_popup> CFG_Type_I2S_Select_GPIO I2SRX_Select_GPIO = { .I2S_MCLK = GPIO_NONE, .I2S_LRCLK = GPIO_NONE, .I2S_BCLK = GPIO_NONE, .I2S_DOUT = GPIO_NONE, }; // <"I2S RX 管脚配置", CFG_Type_I2S_Select_GPIO, click_popup, hide> cfg_uint8 Channel_Select_Mode = CHANNEL_SELECT_L_BY_TWS_PAIR; // <"声道选择模式", CFG_TYPE_CHANNEL_SELECT_MODE> CFG_Type_Channel_Select_GPIO Channel_Select_GPIO = { .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_DOWN, .Active_Level = GPIO_LEVEL_LOW, }; // <"GPIO 选择声道", CFG_Type_Channel_Select_GPIO, click_popup> CFG_Type_Channel_Select_LRADC Channel_Select_LRADC = { .LRADC_Ctrl = LRADC_CTRL_NONE, .LRADC_Pull_Up = LRADC_PULL_UP_EXTERNAL, .ADC_Min = 0x00, .ADC_Max = 0x00, }; // <"LRADC 选择声道", CFG_Type_Channel_Select_LRADC, click_popup> cfg_uint8 TWS_Alone_Audio_Channel = TWS_ALONE_AUDIO_MIX_LR; // <"TWS 未组对时声道选择", CFG_TYPE_TWS_ALONE_AUDIO_CHANNEL> cfg_uint8 L_Speaker_Out = SPEAKER_OUT_ENABLE; // <"左声道喇叭输出", CFG_TYPE_SPEAKER_OUT_SELECT> cfg_uint8 R_Speaker_Out = SPEAKER_OUT_ENABLE; // <"右声道喇叭输出", CFG_TYPE_SPEAKER_OUT_SELECT> cfg_uint32 ADC_Bias_Setting = 0x1a36528a; // <"ADC BIAS 设置", hex, dev_mode> cfg_uint32 DAC_Bias_Setting = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 0x9b014964 #else 0x9b004964 #endif ); // <"DAC BIAS 设置", hex, dev_mode> cfg_uint8 Keep_DA_Enabled_When_Play_Pause = YES; // <"保持DAC打开状态", CFG_TYPE_BOOL, dev_mode> cfg_uint8 Disable_PA_When_Reconnect = YES; // <"回连或组对时关闭 PA", CFG_TYPE_BOOL> CFG_Type_Extern_PA_Control Extern_PA_Control[2] = { { .PA_Function = EXTERN_PA_ENABLE, .GPIO_Pin = GPIO_40, .Pull_Up_Down = CFG_GPIO_PULL_NONE, .Active_Level = GPIO_LEVEL_HIGH, }, { .PA_Function = EXTERN_PA_NONE, .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_NONE, .Active_Level = GPIO_LEVEL_LOW, }, }; // <"外部 PA 控制", CFG_Type_Extern_PA_Control, click_popup> cfg_uint8 AntiPOP_Process_Disable = NO; // <"禁止ANTIPOP处理", CFG_TYPE_BOOL> cfg_uint8 Pa_Gain = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 7 #else 0 #endif ); // <"PA增益选择", /* 选择范围[0, 7], 不同模式下增益不同*/> cfg_uint8 DMIC01_Channel_Aligning = 0; // <"DMIC01 采样沿选择", /* 值为 0 表示 channel_1 是上升沿, channel_2 是下降沿, 值为 1 则相反 */> cfg_uint8 DMIC23_Channel_Aligning = 0; // <"DMIC23 采样沿选择", /* 值为 0 表示 channel_1 是上升沿, channel_2 是下降沿, 值为 1 则相反 */> CFG_Type_DMIC_Select_GPIO DMIC_Select_GPIO = { .DMIC01_CLK = DMIC01_CLK_GPIO_NONE, .DMIC01_DAT = DMIC01_DAT_GPIO_NONE, .DMIC23_CLK = DMIC23_CLK_GPIO_NONE, .DMIC23_DAT = DMIC23_DAT_GPIO_NONE, }; // <"DMIC 管脚配置", CFG_Type_DMIC_Select_GPIO, click_popup> cfg_uint8 Enable_ANC = ANC_FF; // <"ANC功能使能, 使能后需要配置ANC DMIC GPIO", CFG_TYPE_ANC, dev_mode, /* ANC-FF fix ADC0, ANC-FB fix ADC1*/> CFG_Type_DMIC_Select_GPIO ANCDMIC_Select_GPIO = { .DMIC01_CLK = DMIC01_CLK_GPIO_NONE, .DMIC01_DAT = DMIC01_DAT_GPIO_NONE, .DMIC23_CLK = DMIC23_CLK_GPIO_NONE, .DMIC23_DAT = DMIC23_DAT_GPIO_NONE, }; // <"ANCDMIC 管脚配置", CFG_Type_DMIC_Select_GPIO, click_popup, dev_mode> cfg_uint8 Record_Adc_Select = ADC_2; // <"mic录音通路选择", CFG_TYPE_ADC, multi_select> cfg_uint8 Enable_VMIC = VMIC_0 | VMIC_1 | VMIC_2; // <"是否启用 VMIC", CFG_TYPE_VMIC, multi_select, /* 启用 VMIC 则由 PIN 脚供电, 否则由 AVCC 供电 */> cfg_uint8 Hw_Aec_Select = ADC_NONE; // <"硬件aec,选择'无'则使用软件aec", CFG_TYPE_ADC, hide> cfg_uint8 Tm_Adc_Select = ADC_0; // <"通透录音通路选择", CFG_TYPE_ADC> CFG_Type_Mic_Config Mic_Config[CFG_MAX_ADC_NUM] = { { .Adc_Index = ADC_0, .Mic_Type = ADC_TYPE_AMIC, .Audio_In_Mode = AUDIO_IN_MODE_ADC_SINGLE, }, { .Adc_Index = ADC_1, .Mic_Type = ADC_TYPE_AMIC, .Audio_In_Mode = AUDIO_IN_MODE_ADC_SINGLE, }, { .Adc_Index = ADC_2, .Mic_Type = ADC_TYPE_AMIC, .Audio_In_Mode = AUDIO_IN_MODE_ADC_SINGLE, }, { .Adc_Index = ADC_3, .Mic_Type = ADC_TYPE_AMIC, .Audio_In_Mode = AUDIO_IN_MODE_ADC_SINGLE, }, }; // <"麦克风配置", CFG_Type_Mic_Config> CFG_Type_ADC_Select_INPUT ADC_Select_INPUT = { .ADC_Input_Ch0 = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 2 #else 1 #endif ), .ADC_Input_Ch1 = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 8 #else 2 #endif ), .ADC_Input_Ch2 = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 1 #else 1 #endif ), .ADC_Input_Ch3 = ( #if (CFG_IC_TYPE & IC_TYPE_LARK) 4 #else 0 #endif ), }; // <"ADC INPUT管脚配置", CFG_Type_ADC_Select_INPUT, click_popup> cfg_uint8 Dual_MIC_Exchange_Enable = NO; // <"双MIC声道交换使能", CFG_TYPE_BOOL, /* 默认R为拾音MIC,L为降噪MIC */> cfg_uint8 Large_Current_Protect_Enable = NO; // <"Speaker大电流保护使能", CFG_TYPE_BOOL> CFG_Type_ANALOG_GAIN_Settings ANALOG_GAIN_Settings = { 0, }; // <"模拟增益设置", CFG_Type_ANALOG_GAIN_Settings, click_popup> }; class CFG_Tone_List // <"提示音列表", CFG_CATEGORY_TONE, readonly> { CFG_Type_Tone_ID_Name Tone[CFG_MAX_TONES] = { { TONE_ID1, "T_ID1", }, { TONE_ID2, "T_ID2", }, { TONE_ID3, "T_ID3", }, { TONE_ID4, "T_ID4", }, { TONE_ID5, "T_ID5", }, { TONE_ID6, "T_ID6", }, { TONE_ID7, "T_ID7", }, { TONE_KEY_SOUND, "T_KEY", }, { TONE_CALL_RING, "T_RING", }, { TONE_WARNING, "T_WARN", }, }; // <"提示音", CFG_Type_Tone_ID_Name> cfg_uint8 Tone_Format_Name[CFG_MAX_TONE_FMT_LEN] = ".act"; // <"文件格式", string> }; class CFG_Key_Tone // <"按键音", CFG_CATEGORY_TONE> { cfg_uint8 Key_Tone_Select = TONE_KEY_SOUND; // <"选择按键音", CFG_TYPE_TONE_ID> cfg_uint8 Long_Key_Tone_Select = TONE_NONE; // <"长按提示音", CFG_TYPE_TONE_ID> cfg_uint8 Long_Long_Key_Tone_Select = TONE_NONE; // <"超长按提示音", CFG_TYPE_TONE_ID> cfg_uint8 Very_Long_Key_Tone_Select = TONE_NONE; // <"极长按提示音", CFG_TYPE_TONE_ID> }; class CFG_Voice_List // <"语音列表", CFG_CATEGORY_VOICE, readonly> { CFG_Type_Voice_ID_Name Voice[CFG_MAX_VOICES] = { { VOICE_ID1, "V_ID1", }, { VOICE_ID2, "V_ID2", }, { VOICE_ID3, "V_ID3", }, { VOICE_ID4, "V_ID4", }, { VOICE_ID5, "V_ID5", }, { VOICE_POWER_ON, "V_POWON", }, { VOICE_POWER_OFF, "V_POWOFF", }, { VOICE_BAT_LOW, "V_BATLOW", }, { VOICE_BAT_TOO_LOW, "V_BATTLO", }, { VOICE_BT_PAIR_MODE, "V_BTPRMD", }, { VOICE_BT_WAIT_CONNECT, "V_BTWPR", }, { VOICE_BT_CONNECTED, "V_BTCNT", }, { VOICE_2ND_CONNECTED, "V_BTCNT2", }, { VOICE_BT_DISCONNECTED, "V_BTDSC", }, { VOICE_TWS_WAIT_PAIR, "V_TWSWPR", }, { VOICE_TWS_CONNECTED, "V_TWSCNT", }, { VOICE_TWS_DISCONNECTED,"V_TWSDSC", }, { VOICE_PLAY, "V_PLAY", }, { VOICE_PAUSE, "V_PAUSE", }, { VOICE_PREV_MUSIC, "V_PRVMUS", }, { VOICE_NEXT_MUSIC, "V_NXTMUS", }, { VOICE_MIN_VOLUME, "V_MINVOL", }, { VOICE_MAX_VOLUME, "V_MAXVOL", }, // { VOICE_LINEIN, "V_LINEIN", }, }; // <"语音", CFG_Type_Voice_ID_Name> cfg_uint8 Voice_Format_Name[CFG_MAX_VOICE_FMT_LEN] = ".act"; // <"文件格式", string> }; class CFG_Numeric_Voice_List // <"数字语音列表", CFG_CATEGORY_VOICE, readonly> { CFG_Type_Numeric_Voice_ID_Name Voice[CFG_MAX_NUMERIC_VOICES] = { { VOICE_NO_0, "V_NO_0", }, { VOICE_NO_1, "V_NO_1", }, { VOICE_NO_2, "V_NO_2", }, { VOICE_NO_3, "V_NO_3", }, { VOICE_NO_4, "V_NO_4", }, { VOICE_NO_5, "V_NO_5", }, { VOICE_NO_6, "V_NO_6", }, { VOICE_NO_7, "V_NO_7", }, { VOICE_NO_8, "V_NO_8", }, { VOICE_NO_9, "V_NO_9", }, }; // <"语音", CFG_Type_Numeric_Voice_ID_Name> }; class CFG_Event_Notify // <"事件通知", CFG_CATEGORY_EVENT_NOTIFY> { CFG_Type_Event_Notify Notify[CFG_MAX_EVENT_NOTIFY] = { { .Event_Type = UI_EVENT_POWER_ON, .LED_Display = LED_DISPLAY_POWER_ON, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_POWER_ON, .Options = NONE, }, { .Event_Type = UI_EVENT_POWER_OFF, .LED_Display = LED_DISPLAY_POWER_OFF, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_POWER_OFF, .Options = NONE, }, { .Event_Type = UI_EVENT_STANDBY, .LED_Display = LED_DISPLAY_STANDBY, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BATTERY_TOO_LOW, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = VOICE_BAT_TOO_LOW, .Options = NONE, }, { .Event_Type = UI_EVENT_BATTERY_LOW, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = VOICE_BAT_LOW, .Options = NONE, }, { .Event_Type = UI_EVENT_CHARGE_START, .LED_Display = LED_DISPLAY_CHARGE_START, .LED_Override = LED_OVERRIDE_BACK, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_CHARGE_FULL, .LED_Display = LED_DISPLAY_CHARGE_FULL, .LED_Override = LED_OVERRIDE_BACK, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_ENTER_PAIR_MODE, .LED_Display = LED_DISPLAY_BT_PAIR_MODE, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_BT_PAIR_MODE, .Options = NONE, }, { .Event_Type = UI_EVENT_CLEAR_PAIRED_LIST, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_WAIT_CONNECT, .LED_Display = LED_DISPLAY_BT_WAIT_CONNECT, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_BT_WAIT_CONNECT, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_CONNECTED, .LED_Display = LED_DISPLAY_BT_CONNECTED, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_BT_CONNECTED, .Options = NONE, }, { .Event_Type = UI_EVENT_2ND_CONNECTED, .LED_Display = LED_DISPLAY_BT_CONNECTED, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_2ND_CONNECTED, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_DISCONNECTED, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = VOICE_BT_DISCONNECTED, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_UNLINKED, .LED_Display = LED_DISPLAY_BT_UNLINKED, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_TWS_WAIT_PAIR, .LED_Display = LED_DISPLAY_BT_PAIR_MODE, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_TWS_WAIT_PAIR, .Options = NONE, }, { .Event_Type = UI_EVENT_TWS_CONNECTED, .LED_Display = LED_DISPLAY_BT_CONNECTED, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = VOICE_TWS_CONNECTED, .Options = NONE, }, { .Event_Type = UI_EVENT_TWS_DISCONNECTED, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = VOICE_TWS_DISCONNECTED, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_MUSIC_PLAY, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_MUSIC_PAUSE, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_PREV_MUSIC, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_NEXT_MUSIC, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_MIN_VOLUME, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = VOICE_MIN_VOLUME, .Options = NONE, }, { .Event_Type = UI_EVENT_MAX_VOLUME, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = VOICE_MAX_VOLUME, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_CALL_INCOMING, .LED_Display = LED_DISPLAY_BT_CALL_INCOMING, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = TONE_CALL_RING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_CALL_OUTGOING, .LED_Display = LED_DISPLAY_BT_CALL_INCOMING, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_CALL_ONGOING, .LED_Display = LED_DISPLAY_BT_CALL_ONGOING, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_BT_CALL_3WAYIN, .LED_Display = LED_DISPLAY_BT_CALL_INCOMING, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = TONE_CALL_RING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_VOICE_ASSIST_START, .LED_Display = LED_DISPLAY_BT_CALL_ONGOING, .LED_Override = LED_OVERRIDE_FRONT, .Tone_Play = NONE, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_MIC_MUTE_ON, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_MIC_MUTE_OFF, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_SWITCH_CALL_OUT, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = NONE, .Options = NONE, }, { .Event_Type = UI_EVENT_HID_PHOTO_SHOT, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = TONE_WARNING, .Voice_Play = NONE, .Options = NONE, }, #if 0 { .Event_Type = UI_EVENT_ENTER_LINEIN, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = VOICE_LINEIN, .Options = NONE, }, { .Event_Type = UI_EVENT_LINEIN_PLAY, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = VOICE_PLAY, .Options = NONE, }, { .Event_Type = UI_EVENT_LINEIN_PAUSE, .LED_Display = NONE, .LED_Override = NONE, .Tone_Play = NONE, .Voice_Play = VOICE_PAUSE, .Options = NONE, }, #endif }; // <"通知", CFG_Type_Event_Notify> }; class CFG_Battery_Charge // <"电池充电", CFG_CATEGORY_BATTERY_CHARGE> { cfg_uint8 Select_Charge_Mode = BAT_BACK_CHARGE_MODE; // <"选择充电模式", CFG_TYPE_BAT_CHARGE_MODE, /* 后台充电模式将保持蓝牙正常工作状态 */> cfg_uint8 Charge_Current = ( #if (BOARD_TYPE == BOARD_LARK) CHARGE_CURRENT_60_MA #else CHARGE_CURRENT_300_MA #endif ); // <"正常充电电流", CFG_TYPE_CHARGE_CURRENT> cfg_uint8 Charge_Voltage = CHARGE_VOLTAGE_4_20_V; // <"正常充电电压", CFG_TYPE_CHARGE_VOLTAGE> cfg_uint8 Charge_Stop_Mode = CHARGE_STOP_BY_VOLTAGE_AND_CURRENT; // <"电池充满阈值选择", CFG_TYPE_CHARGE_STOP_MODE> cfg_uint16 Charge_Stop_Voltage = 4160; // <"电池充满阈值电压", 4.05 ~ 4.33, float_x1000, /* (小于等于充电电压 - 0.02V) */> cfg_uint8 Charge_Stop_Current = CHARGE_STOP_CURRENT_20_PERCENT; // <"电池充满阈值电流", CFG_TYPE_CHARGE_STOP_CURRENT> cfg_uint16 Precharge_Stop_Voltage = PRECHARGE_STOP_3_3_V; // <"低电预充阈值电压", CFG_TYPE_PRECHARGE_STOP_VOLTAGE, hide> cfg_uint16 Battery_Check_Period_Sec = 60; // <"电量检测周期 (秒)", 10 ~ 300> cfg_uint16 Charge_Check_Period_Sec = 300; // <"正常充电检测周期 (秒)", 60 ~ 600> cfg_uint16 Charge_Full_Continue_Sec = 420; // <"充满延续时间 (秒)", 10 ~ 1800, /* 充电至阈值后继续充电该时间以完全充满 */> cfg_uint16 Front_Charge_Full_Power_Off_Wait_Sec = 10; // <"前台模式充电满后关机等待时间 (秒)", 5 ~ 300> cfg_uint16 DC5V_Detect_Debounce_Time_Ms = 300; // <"DC5V 检测去抖时间 (毫秒)", 0 ~ 1000> }; class CFG_Charger_Box // <"充电盒设置", CFG_CATEGORY_BATTERY_CHARGE> { cfg_uint8 Enable_Charger_Box = NO; // <"启用充电盒充电模式", CFG_TYPE_BOOL> cfg_uint8 DC5V_Pull_Down_Current = DC5VPD_CURRENT_DISABLE; // <"DC5V 下拉唤醒充电盒", CFG_TYPE_DC5VPD_CURRENT> cfg_uint16 DC5V_Pull_Down_Hold_Ms = 0; // <"DC5V 下拉保持时间 (毫秒)", 0 ~ 2000> cfg_uint16 Charger_Standby_Delay_Ms = 500; // <"充电盒待机延迟 (毫秒)", 0 ~ 2000> cfg_uint16 Charger_Standby_Voltage = 3.00f * 1000; // <"充电盒待机电压", 0.5 ~ 4.0, float_x1000, /* 充电盒待机电压为自身电池电压时可配置为 3.8V */> cfg_uint16 Charger_Wake_Delay_Ms = 500; // <"充电盒唤醒延迟 (毫秒)", 0 ~ 2000> cfg_uint8 Enable_Battery_Recharge = NO; // <"启用电池复充功能", CFG_TYPE_BOOL> cfg_uint8 Battery_Recharge_Threshold = BAT_RECHARGE_3_8_V; // <"电池复充阈值电压", CFG_TYPE_BAT_RECHARGE_THRESHOLD> cfg_uint8 Charger_Box_Standby_Current = 0; // <"充电盒待机电流(mA)", 0 ~ 10> CFG_Type_DC5V_UART_Comm_Settings DC5V_UART_Comm_Settings = { 0, }; // <"DC5V_COM 通讯设置", CFG_Type_DC5V_UART_Comm_Settings, click_popup> CFG_Type_DC5V_IO_Comm_Settings DC5V_IO_Comm_Settings = { 0, }; // <"DC5V_IO 通讯设置", CFG_Type_DC5V_IO_Comm_Settings, click_popup> }; class CFG_Battery_Level // <"电量分级", CFG_CATEGORY_BATTERY_CHARGE> { cfg_uint16 Level[CFG_MAX_BATTERY_LEVEL] = { 3.10f * 1000, // LEVEL_0 3.40f * 1000, // LEVEL_1 3.60f * 1000, // LEVEL_2 3.65f * 1000, // LEVEL_3 3.70f * 1000, // LEVEL_4 3.75f * 1000, // LEVEL_5 3.80f * 1000, // LEVEL_6 3.90f * 1000, // LEVEL_7 4.00f * 1000, // LEVEL_8 4.10f * 1000, // LEVEL_9 }; // <"分级", 2.80 ~ 4.30, float_x1000> }; class CFG_Battery_Low // <"低电电量", CFG_CATEGORY_BATTERY_CHARGE> { cfg_uint16 Battery_Too_Low_Voltage = BATTERY_LOW_3_1_V; // <"电量不足", 3.00 ~ 3.80, float_x1000, /* 电量不足时会自动关机 */> cfg_uint16 Battery_Low_Voltage = BATTERY_LOW_3_4_V; // <"电量低", 3.00 ~ 3.80, float_x1000> cfg_uint16 Battery_Low_Voltage_Ex = 0; // <"更低电量", 0.00 ~ 3.80, float_x1000> cfg_uint16 Battery_Low_Prompt_Interval_Sec = 120; // <"电量低提示间隔时间 (秒)", 0 ~ 600, /* 设置为 0 时只提示一次 */> }; class CFG_NTC_Settings // <"温度调节充电电流", CFG_CATEGORY_BATTERY_CHARGE> { CFG_Type_NTC_Settings NTC_Settings = { 0, }; // <"NTC 温度调节充电电流", CFG_Type_NTC_Settings> CFG_Type_NTC_Range NTC_Ranges[5] = { { 0, }, }; // <"NTC 温度范围", CFG_Type_NTC_Range,click_popup> }; class CFG_BT_Device // <"蓝牙设备", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 BT_Device_Name[CFG_MAX_BT_DEV_NAME_LEN] = ( "ZS302A-Hello" ); // <"蓝牙设备名称", string> cfg_uint8 Left_Device_Suffix [CFG_MAX_BT_SUFFIX_LEN] = " (L)"; // <"L 左设备名称后缀", string> cfg_uint8 Right_Device_Suffix[CFG_MAX_BT_SUFFIX_LEN] = " (R)"; // <"R 右设备名称后缀", string> cfg_uint8 BT_Address[6] = { 0x01, 0x00, 0x00, 0xFC, 0x4E, 0xF4 }; // <"蓝牙地址", bt_addr> cfg_uint8 Use_Random_BT_Address = YES; // <"使用随机蓝牙地址", CFG_TYPE_BOOL, /* 通过 MIC 采样噪声生成低 3 字节蓝牙地址 */> cfg_uint32 BT_Device_Class = 0x240404; // <"蓝牙设备类型", hex, dev_mode> cfg_uint8 PIN_Code[CFG_MAX_BT_PIN_CODE_LEN] = "0000"; // <"PIN Code", string, dev_mode, /* 在禁止 SSP 功能时使用 */> cfg_uint8 Default_HOSC_Capacity = ( #if (BOARD_TYPE == BOARD_LARK) 12.0f * 10 #else 13.5f * 10 #endif ); // <"缺省频偏电容值 (pF)", 0.0 ~ 24.0, float_x10> cfg_uint8 Force_Default_HOSC_Capacity = YES; // <"总是使用配置的频偏电容值", CFG_TYPE_BOOL> cfg_uint8 BT_Max_RF_TX_Power = ( #if (BOARD_TYPE == BOARD_LARK) 15 #else 18 #endif ); // <"蓝牙最大发射功率", 0 ~ 22> cfg_uint8 BLE_RF_TX_Power = 8; // <"BLE 发射功率", 0 ~ 22> cfg_uint8 A2DP_Bitpool = 49; // <"A2DP Bitpool", 2 ~ 53> cfg_uint16 Vendor_ID = 0x03E0; // <"厂商 ID", hex> cfg_uint16 Product_ID = 0x302A; // <"产品 ID", hex> cfg_uint16 Version_ID = 0x0100; // <"版本 ID", hex> }; class CFG_BT_Manager // <"蓝牙管理", CFG_CATEGORY_BLUETOOTH> { cfg_uint32 Support_Features = ( BT_SUPPORT_A2DP | BT_SUPPORT_A2DP_AAC | // BT_SUPPORT_A2DP_DTCP | // BT_SUPPORT_A2DP_SCMS_T | BT_SUPPORT_AVRCP | BT_SUPPORT_AVRCP_VOLUME_SYNC | BT_SUPPORT_HFP | BT_SUPPORT_HFP_VOLUME_SYNC | BT_SUPPORT_HFP_BATTERY_REPORT | BT_SUPPORT_HFP_3WAY_CALL | BT_SUPPORT_HFP_PHONEBOOK_NUMBER | BT_SUPPORT_HFP_VOICE_ASSIST | BT_SUPPORT_HFP_CODEC_NEGOTIATION | BT_SUPPORT_ENABLE_NREC | BT_SUPPORT_HID | BT_SUPPORT_TWS | BT_SUPPORT_ENABLE_SNIFF | BT_SUPPORT_LINKKEY_MISS_REJECT | BT_SUPPORT_DUAL_PHONE_DEV_LINK ); // <"蓝牙支持特性", CFG_TYPE_BT_SUPPORT_FEATURES, multi_select, /* 支持 AAC 音频格式时无法启用智能语音识别功能 */> cfg_uint8 Support_Device_Number = 3; // <"可同时连接设备个数", 1 ~ 3> cfg_uint8 Paired_Device_Save_Number = 8; // <"已配对设备保存个数", 2 ~ 8> cfg_uint8 Controller_Test_Mode = BT_CTRL_DISABLE_TEST; // <"控制器测试模式", CFG_TYPE_BT_CTRL_TEST_MODE> cfg_uint8 Enter_BQB_Test_Mode_By_Key = NO; // <"通过按键进入 BQB 测试模式", CFG_TYPE_BOOL> CFG_Type_Auto_Quit_BT_Ctrl_Test Auto_Quit_BT_Ctrl_Test = { 0, }; // <"自动退出控制器测试模式", CFG_Type_Auto_Quit_BT_Ctrl_Test, click_popup> cfg_uint16 Idle_Enter_Sniff_Time_Ms = 5000; // <"空闲进入 Sniff 模式时间 (毫秒)", 2000 ~ 20000, dev_mode> cfg_uint16 Sniff_Interval_Ms = 500; // <"Sniff 周期 (毫秒)", 100 ~ 500, dev_mode> }; class CFG_BT_Pair // <"蓝牙配对连接", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 Default_State_Discoverable = YES; // <"默认状态可被搜索发现", CFG_TYPE_BOOL> cfg_uint16 Default_State_Wait_Connect_Sec = 120; // <"默认状态等待配对连接 (秒)", 0 ~ 600, /* 设置为 0 时不限时间 */> cfg_uint16 Pair_Mode_Duration_Sec = 120; // <"配对模式持续时间 (秒)", 0 ~ 600, /* 设置为 0 时不限时间 */> cfg_uint8 Disconnect_All_Phones_When_Enter_Pair_Mode = NO; // <"进入配对模式时断开所有已连接手机设备", CFG_TYPE_BOOL> cfg_uint8 Clear_Paired_List_When_Enter_Pair_Mode = NO; // <"进入配对模式时清除配对列表", CFG_TYPE_BOOL> cfg_uint8 Clear_TWS_When_Key_Clear_Paired_List = YES; // <"按键清除配对列表同时清除 TWS 组对设备信息", CFG_TYPE_BOOL> cfg_uint8 Enter_Pair_Mode_When_Key_Clear_Paired_List = NO; // <"按键清除配对列表同时进入配对模式", CFG_TYPE_BOOL> cfg_uint8 Enter_Pair_Mode_When_Paired_List_Empty = YES; // <"配对列表为空时开机进入配对模式", CFG_TYPE_BOOL> cfg_uint8 BT_Not_Discoverable_When_Connected = NO; // <"蓝牙已连接后关闭可见性", CFG_TYPE_BOOL> }; class CFG_TWS_Pair // <"TWS 组对连接", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 TWS_Pair_Key_Mode = TWS_PAIR_KEY_MODE_ONE; // <"按键组对模式", CFG_TYPE_TWS_PAIR_KEY_MODE> cfg_uint8 Match_Mode = TWS_MATCH_NAME; // <"匹配模式", CFG_TYPE_TWS_MATCH_MODE> cfg_uint8 Match_Name_Length = 30; // <"名称匹配长度", 1 ~ 30> cfg_uint16 TWS_Wait_Pair_Search_Time_Sec = 60; // <"等待组对搜索时间 (秒)", 5 ~ 600> cfg_uint8 TWS_Power_On_Auto_Pair_Search = NO; // <"未组对过时开机自动进行组对搜索", CFG_TYPE_BOOL> }; class CFG_TWS_Advanced_Pair // <"TWS 高级组对设置", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 Enable_TWS_Advanced_Pair_Mode = YES; // <"启用 TWS 高级组对模式", CFG_TYPE_BOOL> cfg_uint8 Check_RSSI_When_TWS_Pair_Search = NO; // <"组对搜索时判断信号强度", CFG_TYPE_BOOL> cfg_int8 RSSI_Threshold = 0; // <"信号强度阈值", -120 ~ 0> cfg_uint8 Use_Search_Mode_When_TWS_Reconnect = YES; // <"TWS 回连时使用搜索模式", CFG_TYPE_BOOL> } ; class CFG_TWS_Sync // <"TWS 同步设置", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 Sync_Mode = ( TWS_SYNC_KEY_TONE // TWS_SYNC_POWER_OFF ); // <"同步模式", CFG_TYPE_TWS_SYNC_MODE, multi_select> }; class CFG_BT_Auto_Reconnect // <"蓝牙自动回连", CFG_CATEGORY_BLUETOOTH> { cfg_uint8 Enable_Auto_Reconnect = ( AUTO_RECONNECT_PHONE_BY_STARTUP | AUTO_RECONNECT_PHONE_BY_TIMEOUT ); // <"启用自动回连", CFG_TYPE_BT_AUTO_RECONNECT, multi_select> cfg_uint16 Reconnect_Phone_Timeout = 5.0f * 10; // <"单次连接手机设备超时 (秒)", 0.5 ~ 10.0, float_x10> cfg_uint16 Reconnect_Phone_Interval = 5.0f * 10; // <"重试回连手机设备间隔时间 (秒)", 0.1 ~ 60.0, float_x10> cfg_uint8 Reconnect_Phone_Times_By_Startup = 10; // <"开机回连手机设备尝试次数", 0 ~ 100, /* 设置为 0 时不限次数 */> cfg_uint16 Reconnect_TWS_Timeout = 5.0f * 10; // <"单次连接 TWS 设备超时 (秒)", 0.5 ~ 10.0, float_x10> cfg_uint16 Reconnect_TWS_Interval = 5.0f * 10; // <"重试回连 TWS 设备间隔时间 (秒)", 0.1 ~ 60.0, float_x10> cfg_uint8 Reconnect_TWS_Times_By_Startup = 5; // <"开机回连 TWS 设备尝试次数", 0 ~ 100, /* 设置为 0 时不限次数 */> cfg_uint8 Reconnect_Times_By_Timeout = 30; // <"超时断开回连尝试次数", 0 ~ 100, /* 设置为 0 时不限次数 */> cfg_uint8 Enter_Pair_Mode_When_Startup_Reconnect_Fail = NO; // <"开机回连失败时进入配对模式", CFG_TYPE_BOOL> }; class CFG_BT_HID_Settings // <"HID 设置", CFG_CATEGORY_BLUETOOTH, dev_mode> { cfg_uint16 HID_Auto_Disconnect_Delay_Sec = 30; // <"HID 操作后自动断开延迟时间 (秒)", 0 ~ 600, /* 设置为 0 时不自动断开 */> cfg_uint16 HID_Connect_Operation_Delay_Ms = 1000; // <"HID 连接时操作延迟时间 (毫秒)", 100 ~ 2000> cfg_uint8 HID_Custom_Key_Type = BT_HID_KEY_TYPE_KEYBOARD; // <"HID 自定义按键类型", CFG_TYPE_BT_HID_KEY_TYPE> cfg_uint8 HID_Custom_Key_Value = 0x00; // <"HID 自定义按键值", hex> }; class CFG_Low_Latency_Settings // <"低延迟模式设置", CFG_CATEGORY_AUDIO> { cfg_uint8 Default_Low_Latency_Mode = NO; // <"默认低延迟模式", CFG_TYPE_BOOL> cfg_uint8 Save_Low_Latency_Mode = NO; // <"保存低延迟模式", CFG_TYPE_BOOL, /* 不保存时重新开机恢复默认模式 */> cfg_uint16 AAC_Threshold = 0; // <"AAC 格式播放延迟时间 ms", 0 ~ 150, /* 0 表示默认值 60, 非0时不能小于50 */> cfg_uint16 SBC_Threshold = 0; // <"SBC 格式播放延迟时间 ms", 0 ~ 150, /* 0 表示默认值 60, 非0时不能小于40 */> cfg_uint16 MSBC_Threshold = 0; // <"MSBC 格式播放延迟时间 ms", 0 ~ 150, /* 0 表示默认值 60, 非0时不能小于30 */> cfg_uint16 CVSD_Threshold = 0; // <"CVSD 格式播放延迟时间 ms", 0 ~ 150, /* 0 表示默认值 60, 非0时不能小于30 */> }; class CFG_Transparency_Mode_Settings // <"通透模式设置", CFG_CATEGORY_AUDIO> { cfg_uint8 Tranparency_En = NO; // <"是否使能通透模式", CFG_TYPE_BOOL> cfg_uint8 Mic_Channel = MIC_CHANNEL_LEFT; // <"MIC通道", CFG_TYPE_MIC_CHANNEL_SELECT> cfg_int16 Mic_Gain = 0; // <"MIC增益(dB)", -60.0 ~ 0.0, float_x10> cfg_uint8 Voice_Sample_Mode = 0; // <"提示音采样率模式", CFG_VOICE_SAMPLE_MODE> cfg_uint8 Mic_Sample_Mode = 0; // <"MIC采样率模式", CFG_MIC_SAMPLE_MODE> cfg_uint8 Mic_Al_Mode = 0; // <"MIC算法模式"> }; class CFG_BTMusic_Multi_Dae_Settings // <"自定义音效使能", CFG_CATEGORY_AUDIO> { cfg_uint8 Enable = NO; // <"是否打开自定义音效", CFG_TYPE_BOOL, /* 打开后可以在音效调节中自定义蓝牙音乐音效 */> cfg_uint8 Cur_Dae_Num = 0; // <"自定义音效数量", readonly, dev_mode> cfg_uint8 Dae_Index = 0; // <"当前音效序号", readonly, dev_mode> }; class CFG_BT_Music_Volume_Sync // <"音量同步", CFG_CATEGORY_BT_MUSIC> { cfg_uint8 Volume_Sync_Only_When_Playing = NO; // <"只在播放状态下同步音量", CFG_TYPE_BOOL> cfg_uint8 Origin_Volume_Sync_To_Remote = NO; // <"初始音量同步至远端设备", CFG_TYPE_BOOL, /* (连接时同步) */> cfg_uint16 Origin_Volume_Sync_Delay_Ms = 2500; // <"初始音量同步延迟时间 (毫秒)", 2000 ~ 5000> cfg_uint16 Playing_Volume_Sync_Delay_Ms = 1000; // <"播放音量同步延迟时间 (毫秒)", 1000 ~ 3000> }; class CFG_BT_Music_Stop_Hold // <"按键停顿时间", CFG_CATEGORY_BT_MUSIC> { cfg_uint16 Key_Pause_Stop_Hold_Ms = 0; // <"按键暂停时停顿时间 (毫秒)", 0 ~ 5000, /* 暂停后维持停止状态一段时间 (可过滤音乐淡出数据) */> cfg_uint16 Key_Prev_Next_Hold_Ms = 0; // <"按键上下曲停顿时间 (毫秒)", 0 ~ 5000> }; class CFG_BT_Two_Device_Play // <"双手机播放控制", CFG_CATEGORY_BT_MUSIC> { cfg_uint8 Stop_Another_When_One_Playing = NO; // <"开始播放时停止另一手机", CFG_TYPE_BOOL> cfg_uint8 Resume_Another_When_One_Stopped = NO; // <"停止播放时恢复另一手机", CFG_TYPE_BOOL> cfg_uint16 A2DP_Status_Stopped_Delay_Ms = 1000; // <"停止播放状态延迟时间 (毫秒)", 500 ~ 5000> }; class CFG_BT_Call_Volume_Sync // <"音量同步", CFG_CATEGORY_BT_CALL> { cfg_uint8 Origin_Volume_Sync_To_Remote = NO; // <"初始音量同步至远端设备", CFG_TYPE_BOOL, /* (开始通话时同步) */> cfg_uint16 Origin_Volume_Sync_Delay_Ms = 1500; // <"初始音量同步延迟时间 (毫秒)", 1000 ~ 3000> }; class CFG_Incoming_Call_Prompt // <"来电提示", CFG_CATEGORY_BT_CALL> { cfg_uint16 Prompt_Interval_Ms = 1500; // <"来电提示间隔时间 (毫秒)", 200 ~ 5000> cfg_uint8 Play_Phone_Number = YES; // <"播报来电号码", CFG_TYPE_BOOL> cfg_uint8 BT_Call_Ring_Mode = BT_CALL_RING_MODE_DEFAULT; // <"来电铃声模式", CFG_TYPE_BT_CALL_RING_MODE> }; class CFG_Cap_Temp_Comp // <"温度补偿", CFG_CATEGORY_BLUETOOTH, dev_mode> { cfg_uint8 Enable_Cap_Temp_Comp = NO; // <"启用温度补偿", CFG_TYPE_BOOL> CFG_Type_Cap_Temp_Comp Table[CFG_MAX_CAP_TEMP_COMP] = { { CAP_TEMP_N_20, 0.0f * 10 }, { CAP_TEMP_0, 0.0f * 10 }, { CAP_TEMP_P_20, 0.0f * 10 }, { CAP_TEMP_P_25, 0.0f * 10 }, { CAP_TEMP_P_40, 0.0f * 10 }, { CAP_TEMP_P_60, 0.0f * 10 }, { CAP_TEMP_P_75, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, { CAP_TEMP_NA, 0.0f * 10 }, }; // <"温度补偿", CFG_Type_Cap_Temp_Comp> }; class CFG_Linein_Detect // <"Linein 检测", CFG_CATEGORY_LINEIN, hide> { cfg_uint8 Detect_Mode = LINEIN_DETECT_NONE; // <"检测方式", CFG_TYPE_LINEIN_DETECT_MODE> CFG_Type_Linein_Detect_GPIO Detect_GPIO = { .GPIO_Pin = GPIO_NONE, .Pull_Up_Down = CFG_GPIO_PULL_UP, .Active_Level = GPIO_LEVEL_LOW, }; // <"GPIO 检测 Linein", CFG_Type_Linein_Detect_GPIO, click_popup> CFG_Type_Linein_Detect_LRADC Detect_LRADC = { .LRADC_Ctrl = LRADC_CTRL_NONE, .LRADC_Pull_Up = LRADC_PULL_UP_EXTERNAL, .ADC_Min = 0x00, .ADC_Max = 0x00, }; // <"LRADC 检测 Linein", CFG_Type_Linein_Detect_LRADC, click_popup> cfg_uint16 Debounce_Time_Ms = 300; // <"去抖时间 (毫秒)", 0 ~ 1000> }; class CFG_BT_Music_DAE // <"蓝牙音乐音效", CFG_CATEGORY_ASET, adjust_online> { cfg_uint8 Enable_DAE=1; // <"音效使能", CFG_TYPE_BOOL> cfg_uint8 Test_Volume=8; // <"测试音量", 0 ~ 16, slide_bar> }; class CFG_BT_Call_Out_DAE // <"蓝牙通话输出音效", CFG_CATEGORY_ASET, adjust_online, asqt> { cfg_uint8 Enable_DAE=1; // <"音效使能", CFG_TYPE_BOOL> cfg_uint8 Test_Volume=8; // <"测试音量", 0 ~ 16, slide_bar> }; class CFG_BT_Call_MIC_DAE // <"蓝牙通话 MIC 音效", CFG_CATEGORY_ASET, adjust_online, asqt> { cfg_uint8 Enable_DAE=1; // <"音效使能", CFG_TYPE_BOOL> cfg_uint8 Test_Volume=8; // <"测试音量", 0 ~ 16, slide_bar> }; class CFG_Linein_Out_DAE // <"Linein 输出音效", CFG_CATEGORY_ASET, adjust_online, hide> { cfg_uint8 Enable_DAE=1; // <"音效使能", CFG_TYPE_BOOL> cfg_uint8 Test_Volume=8; // <"测试音量", 0 ~ 16, slide_bar> }; class CFG_BT_Call_Quality // <"通话效果", CFG_CATEGORY_ASQT, adjust_online, asqt> { CFG_Type_MIC_Gain MIC_Gain = { .ADC0_Gain = MIC_GAIN_31_5_DB, .ADC1_Gain = MIC_GAIN_31_5_DB, .ADC2_Gain = MIC_GAIN_31_5_DB, .ADC3_Gain = MIC_GAIN_31_5_DB, }; // <"MIC 增益", CFG_Type_MIC_Gain, click_popup> cfg_uint8 Test_Volume = 8; // <"测试音量", 0 ~ 15, slide_bar> }; class CFG_Voice_Player_Param // <"播放器参数", CFG_CATEGORY_VOICE, dev_mode> { cfg_uint32 VP_Develop_Value1 = 0; // <"开发者模式参数 1"> cfg_uint8 VP_WaitData_Time = 20; // <"数据不增加时持续等待时间"> cfg_uint8 VP_WaitData_Empty_Time = 0; // <"数据为空时持续等待时间 (0 表示一直等待)"> cfg_uint8 VP_Max_Decode_Count = 5; // <"最大解码次数"> cfg_uint16 VP_Max_PCMBUF_Sampels = 768; // <"PCMBUF 持续解码最大门限值"> cfg_uint16 VP_Het_PCMBUF_Sampels = 256; // <"PCMBUF 半空中断门限值"> cfg_uint16 VP_Hft_PCMBUF_Sampels = 268; // <"PCMBUF 半满中断门限值"> cfg_uint8 VP_Work_Frequency = 66; // <"工作频率(包括系统正常工作的频率)"> cfg_uint8 VP_Module_Frequency = 30; // <"模块频率(此模块所需频率增量)"> }; class CFG_Voice_User_Settings // <"播放器设置", CFG_CATEGORY_VOICE, dev_mode> { cfg_uint16 VP_StartPlay_Threshold = 1; // <"普通模式开始播放门限值 Bytes"> }; class CFG_Tone_Player_Param // <"播放器参数", CFG_CATEGORY_TONE, dev_mode> { cfg_uint32 WT_Develop_Value1 = 0; // <"开发者模式参数 1"> cfg_uint8 WT_WaitData_Time = 20; // <"数据不增加时持续等待时间"> cfg_uint8 WT_WaitData_Empty_Time = 0; // <"数据为空时持续等待时间 (0 表示一直等待)"> cfg_uint8 WT_Max_Decode_Count = 3; // <"最大解码次数"> cfg_uint16 WT_Max_PCMBUF_Sampels = 500; // <"PCMBUF 持续解码最大门限值"> cfg_uint16 WT_Het_PCMBUF_Sampels = 256; // <"PCMBUF 半空中断门限值"> cfg_uint16 WT_Hft_PCMBUF_Sampels = 268; // <"PCMBUF 半满中断门限值"> cfg_uint8 WT_Work_Frequency = 54; // <"工作频率(包括系统正常工作的频率)"> cfg_uint8 WT_Module_Frequency = 20; // <"模块频率(此模块所需频率增量)"> }; class CFG_Tone_User_Settings // <"播放器设置", CFG_CATEGORY_TONE, dev_mode> { cfg_uint16 WT_StartPlay_Threshold = 1; // <"普通模式开始播放门限值 Bytes"> }; class CFG_Linein_Player_Param // <"播放器参数", CFG_CATEGORY_LINEIN, dev_mode, hide> { cfg_uint32 LI_Develop_Value1 = 0; // <"开发者模式参数 1"> cfg_uint8 LI_WaitData_Time = 20; // <"数据不增加时持续等待时间"> cfg_uint8 LI_WaitData_Empty_Time = 0; // <"数据为空时持续等待时间 (0 表示一直等待)"> cfg_uint8 LI_Max_Decode_Count = 3; // <"最大解码次数"> cfg_uint16 LI_Max_PCMBUF_Sampels = 768; // <"PCMBUF 持续解码最大门限值"> cfg_uint16 LI_Het_PCMBUF_Sampels = 512; // <"PCMBUF 半空中断门限值"> cfg_uint16 LI_Hft_PCMBUF_Sampels = 528; // <"PCMBUF 半满中断门限值"> cfg_uint16 LI_StartPlay_Normal = 100; // <"普通模式开始播放门限值 Bytes"> cfg_uint8 LI_Work_Frequency = 50; // <"工作频率(包括系统正常工作的频率)"> cfg_uint8 LI_Module_Frequency = 20; // <"模块频率(此模块所需频率增量)"> }; class CFG_Linein_User_Settings // <"播放器设置", CFG_CATEGORY_LINEIN, hide> { cfg_uint8 LI_INOUT_Mode = AUX_ADDA; // <"模式选择", CFG_TYPE_AUXIN_OUT_MODE, /* AA 通路无法调节音量 */> cfg_uint16 LI_Fadein_Continue_Time = 500; // <"淡入持续时间 ms"> cfg_uint16 LI_Fadeout_Continue_Time = 500; // <"淡出持续时间 ms"> cfg_uint16 LI_Playing_CacheData = 4096; // <"普通模式缓冲区播放数据量 Bytes"> }; class CFG_BTMusic_Player_Param // <"播放器参数", CFG_CATEGORY_BT_MUSIC, dev_mode> { cfg_uint32 BM_Develop_Value1 = ( #if (BOARD_TYPE == BOARD_LARK) 6 #else 2 #endif ); // <"开发者模式参数 1"> cfg_uint8 BM_WaitData_Time = 200; // <"数据不增加时持续等待时间"> cfg_uint8 BM_WaitData_Empty_Time = 0; // <"数据为空时持续等待时间 (0 表示一直等待)"> cfg_uint8 BM_Freq_TWS_Increment = 0; // <"TWS 场景频率增量 Mhz"> cfg_uint8 BM_SBC_Max_Decode_Count = 2; // <"SBC 最大解码次数"> cfg_uint8 BM_AAC_Max_Decode_Count = 2; // <"AAC 最大解码次数"> cfg_uint16 BM_SBC_Max_Sleep_Time = 1000; // <"SBC 最大睡眠时间 us"> cfg_uint16 BM_AAC_Max_Sleep_Time = 1000; // <"AAC 最大睡眠时间 us"> cfg_uint16 BM_TWS_WPlay_Mintime = 120; // <"TWS 同时播放等待最小时间间隔 ms"> cfg_uint16 BM_TWS_WPlay_Maxtime = 1000; // <"TWS 同时播放等待最大时间间隔 ms"> cfg_uint16 BM_TWS_WStop_Mintime = 60; // <"TWS 同时停止等待最小时间间隔 (中断时间) ms"> cfg_uint16 BM_TWS_WStop_Maxtime = 80; // <"TWS 同时停止等待最大时间间隔 (超时时间) ms"> cfg_uint16 BM_TWS_Sync_interval = 40; // <"TWS 播放过程中同步时间间隔 pkt"> cfg_uint16 BM_SBC_Max_PCMBUF_Sampels = 1535; // <"PCMBUF 持续解码最大门限值 (SBC)"> cfg_uint16 BM_AAC_Max_PCMBUF_Sampels = 1535; // <"PCMBUF 持续解码最大门限值 (AAC)"> cfg_uint16 BM_Het_PCMBUF_Sampels = 512; // <"PCMBUF 半空中断门限值"> cfg_uint16 BM_Hft_PCMBUF_Sampels = 528; // <"PCMBUF 半满中断门限值"> cfg_uint16 BM_StartPlay_Normal = 200; // <"普通模式开始播放延迟时间 ms"> cfg_uint16 BM_StartPlay_TWS = 1; // <"TWS 模式开始播放延迟时间 ms"> cfg_uint8 BM_Work_Frequency_AAC = 90; // <"AAC工作频率(包括系统正常工作的频率)"> cfg_uint8 BM_Module_Frequency_AAC = 50; // <"AAC模块频率(此模块所需频率增量)"> cfg_uint8 BM_Work_Frequency_SBC = 84; // <"SBC工作频率(包括系统正常工作的频率)"> cfg_uint8 BM_Module_Frequency_SBC = 44; // <"SBC模块频率(此模块所需频率增量)"> }; class CFG_BTMusic_User_Settings // <"播放器设置", CFG_CATEGORY_BT_MUSIC> { cfg_uint8 BM_DataWidth = 4; // <"音频输出位宽选择", /* 值为 2 表示 16bit 输出, 4 表示24bit 输出 */> cfg_uint8 BM_ISpeech_PEQ_Enable = 0; // <"语音识别场景下播歌 PEQ (CPU 不足时不能开启)", dev_mode> cfg_uint16 BM_Fadein_Continue_Time = 350; // <"淡入持续时间 ms"> cfg_uint16 BM_Fadeout_Continue_Time = 100; // <"淡出持续时间 ms"> cfg_uint16 BM_SBC_Playing_CacheData = 200; // <"SBC 格式播放延迟 ms", 40 ~ 300> cfg_uint16 BM_AAC_Playing_CacheData = 200; // <"AAC 格式播放延迟 ms", 50 ~ 300> }; class CFG_BTSpeech_Player_Param // <"播放器参数", CFG_CATEGORY_BT_CALL, dev_mode> { cfg_uint32 BS_Develop_Value1 = ( #if (BOARD_TYPE == BOARD_LARK) 32527 #else 15 #endif ); // <"开发者模式参数 1"> cfg_uint8 BS_WaitData_Time = 20; // <"数据不增加时持续等待时间"> cfg_uint8 BS_WaitData_Empty_Time = 0; // <"数据为空时持续等待时间 (0 表示一直等待)"> cfg_uint8 BS_Max_Decode_Count = 2; // <"最大解码次数"> cfg_uint16 BS_CVSD_Max_Sleep_Time = 1000; // <"CVSD 最大睡眠时间 us"> cfg_uint16 BS_MSBC_Max_Sleep_Time = 1000; // <"MSBC 最大睡眠时间 us"> cfg_uint16 BS_TWS_WPlay_Mintime = 100; // <"TWS 同时播放等待最小时间间隔 (中断时间) ms"> cfg_uint16 BS_TWS_WPlay_Maxtime = 600; // <"TWS 同时播放等待最大时间间隔 (超时时间) ms"> cfg_uint16 BS_TWS_WStop_Mintime = 60; // <"TWS 同时停止等待最小时间间隔 (中断时间) ms"> cfg_uint16 BS_TWS_WStop_Maxtime = 80; // <"TWS 同时停止等待最大时间间隔 (超时时间) ms"> cfg_uint16 BS_TWS_Sync_interval = 200; // <"TWS 播放过程中同步时间间隔 pkt"> cfg_uint16 BS_Max_PCMBUF_Sampels_CVSD = 256; // <"CVSD 输出端持续解码最大门限值"> cfg_uint16 BS_Max_PCMBUF_Sampels_MSBC = 512; // <"MSBC 输出端持续解码最大门限值"> cfg_uint16 BS_Het_PCMBUF_Sampels = 256; // <"PCMBUF 半空中断门限值"> cfg_uint16 BS_Hft_PCMBUF_Sampels = 268; // <"PCMBUF 半满中断门限值"> cfg_uint16 BS_StartPlay_Normal = 80; // <"普通模式开始播放延迟 ms"> cfg_uint16 BS_StartPlay_TWS = 30; // <"TWS 模式开始播放延迟 ms"> cfg_uint8 BS_Work_Frequency_MSBC = 102; // <"MSBC工作频率(包括系统正常工作的频率)"> cfg_uint8 BS_Module_Frequency_MSBC = 60; // <"MSBC模块频率(此模块所需频率增量)"> cfg_uint8 BS_Work_Frequency_CVSD = 90; // <"MSBC工作频率(包括系统正常工作的频率)"> cfg_uint8 BS_Module_Frequency_CVSD = 48; // <"MSBC模块频率(此模块所需频率增量)"> cfg_uint8 BS_Module_Frequency_TMIC = 36; // <"双MIC模块频率(此模块所需频率增量)"> cfg_uint8 BS_Module_Frequency_PLC = 36; // <"PLC模块频率(此模块所需频率增量)"> cfg_uint8 BS_MIC_Playing_PKTCNT = 3; // <"播放过程中控制器队列缓存MIC包数 "> }; class CFG_BTSpeech_User_Settings // <"播放器设置", CFG_CATEGORY_BT_CALL> { cfg_uint8 BS_DataWidth = 4; // <"音频输出位宽选择", /* 值为 2 表示 16bit 输出, 4 表示24bit 输出 */> cfg_uint16 BS_Max_Out_Gain = VOLUME_GAIN_40; // <"最大输出幅度", CFG_TYPE_VOLUME_GAIN, asqt> cfg_uint16 BS_Fadein_Continue_Time = 200; // <"淡入持续时间 ms"> cfg_uint16 BS_Fadeout_Continue_Time = 10; // <"淡出持续时间 ms", dev_mode> cfg_uint16 BS_CVSD_Playing_CacheData = 80; // <"CVSD 格式播放延迟 ms", 30 ~ 150> cfg_uint16 BS_MSBC_Playing_CacheData = 80; // <"MSBC 格式播放延迟 ms", 30 ~ 150> }; class CFG_IGSpeech_Player_Param // <"播放器参数", CFG_CATEGORY_IG_CALL, dev_mode, hide> { cfg_uint32 IS_Develop_Value1 = 0; // <"开发者模式参数 1"> cfg_uint8 IS_AEC_Asr_NrLevel = 0; // <"打断唤醒时的 level, 默认为 0 (aec mode 为 1 时才有效)"> cfg_uint8 IS_AEC_LowSkip_Enable = 1; // <"打断唤醒和正常通话都有效, 默认为 1"> cfg_uint8 IS_AEC_ShiftProcess = 130; // <"AEC 处理后的数据移位操作"> cfg_uint8 IS_Work_Frequency = 60; // <"普通场景的工作频率增量, 理论上只有 VAD"> cfg_uint8 IS_Module_Frequency_VAD = 20; // <"AEC模块频率(此模块所需频率增量)"> cfg_uint8 IS_Module_Frequency_AEC = 60; // <"AEC模块频率(此模块所需频率增量)"> cfg_uint8 IS_Module_Frequency_ASR = 30; // <"ASR模块频率(此模块所需频率增量)"> }; class CFG_IGSpeech_User_Settings // <"播放器设置", CFG_CATEGORY_IG_CALL, hide> { CFG_Type_MIC_Gain MIC_Gain = { .ADC0_Gain = MIC_GAIN_24_0_DB, .ADC1_Gain = MIC_GAIN_24_0_DB, .ADC2_Gain = MIC_GAIN_24_0_DB, .ADC3_Gain = MIC_GAIN_24_0_DB, }; // <"MIC 增益", CFG_Type_MIC_Gain, click_popup> }; class CFG_BLE_Manager // <"BLE 管理", CFG_CATEGORY_BLE, fixed_size=128> { cfg_uint8 BLE_Enable = NO; // <"启用 BLE 功能", CFG_TYPE_BOOL> cfg_uint8 Use_Advertising_Mode_2_After_Paired = NO; // <"配对连接过后使用 BLE 广播模式 2", CFG_TYPE_BOOL, /* 配对列表非空且不在配对模式 */> cfg_uint8 BLE_Address_Type = CFG_BLE_STATIC_DEVICE_ADDRESS; // <"BLE 地址类型", CFG_TYPE_BLE_ADDR_TYPE> cfg_uint8 Advertising_After_Connected = YES; // <"经典蓝牙连接后才进行BLE广播", CFG_TYPE_BOOL> }; class CFG_BLE_Advertising_Mode_1 // <"BLE 广播模式 1", CFG_CATEGORY_BLE> { cfg_uint16 Advertising_Interval_Ms = 500; // <"广播间隔 (毫秒)", 20 ~ 5000> cfg_uint8 Advertising_Type = CFG_ADV_IND; // <"广播类型", CFG_TYPE_BLE_ADV_TYPE> cfg_uint8 BLE_Device_Name[29] = ( "ZS302A-Hello" ); // <"BLE 设备名称", string> cfg_uint8 Manufacturer_Specific_Data[59] = ""; // <"厂商自定义数据", string> cfg_uint8 Service_UUIDs_16_Bit[59] = ""; // <"服务 UUIDs (16-Bit)", string> cfg_uint8 Service_UUIDs_128_Bit[CFG_MAX_UUID_STR_LEN] = ""; // <"服务 UUIDs (128-Bit)", string> }; class CFG_BLE_Advertising_Mode_2 // <"BLE 广播模式 2", CFG_CATEGORY_BLE> { cfg_uint16 Advertising_Interval_Ms = 500; // <"广播间隔 (毫秒)", 20 ~ 5000> cfg_uint8 Advertising_Type = CFG_ADV_IND; // <"广播类型", CFG_TYPE_BLE_ADV_TYPE> cfg_uint8 BLE_Device_Name[29] = ""; // <"BLE 设备名称", string> cfg_uint8 Manufacturer_Specific_Data[59] = ""; // <"厂商自定义数据", string> cfg_uint8 Service_UUIDs_16_Bit[59] = ""; // <"服务 UUIDs (16-Bit)", string> cfg_uint8 Service_UUIDs_128_Bit[CFG_MAX_UUID_STR_LEN] = ""; // <"服务 UUIDs (128-Bit)", string> }; class CFG_BLE_Connection_Param // <"BLE 连接参数", CFG_CATEGORY_BLE> { cfg_uint16 Interval_Min_Ms = 10; // <"最小间隔 (毫秒)", 8 ~ 1000> cfg_uint16 Interval_Max_Ms = 30; // <"最大间隔 (毫秒)", 8 ~ 1000> cfg_uint16 Latency = 2; // <"延迟", 0 ~ 100> cfg_uint16 Timeout_Ms = 3000; // <"超时 (毫秒)", 500 ~ 10000> }; class CFG_BLE_Pass_Through // <"BLE 数据透传", CFG_CATEGORY_BLE> { cfg_uint8 Enable_BLE_Pass_Through = NO; // <"启用 BLE 数据透传", CFG_TYPE_BOOL> cfg_uint8 Service_UUID[CFG_MAX_UUID_STR_LEN] = "0366"; // <"服务 UUID", string> cfg_uint8 TX_RX_UUID[CFG_MAX_UUID_STR_LEN] = "0466"; // <"TX/RX UUID", string> cfg_uint16 RX_Buffer_Size = 2048; // <"RX 缓冲区大小", 128 ~ 4096> }; class CFG_BT_Link_Quality // <"链路质量监控", CFG_CATEGORY_BLUETOOTH, dev_mode> { cfg_uint8 Quality_Pre_Value = 200; cfg_uint8 Quality_Diff = 55; cfg_uint8 Quality_ESCO_Diff = 20; cfg_uint8 Quality_Monitor = 1; }; class CFG_BT_Scan_Params // <"SCAN 参数设置", CFG_CATEGORY_BLUETOOTH, dev_mode> { CFG_Type_BT_Scan_Params Params[7] = { { CFG_DEFAULT_INQUIRY_PAGE_SCAN_MODE, 0x12, 0x1000, 0, 0x12, 0x800, 0 }, { CFG_FAST_PAGE_SCAN_MODE, 0, 0, 0, 0x30, 0x180, 1 }, { CFG_FAST_PAGE_SCAN_MODE_EX, 0, 0, 0, 0x60, 0x200, 1 }, { CFG_NORMAL_PAGE_SCAN_MODE, 0, 0, 0, 0x18, 0x380, 1 }, { CFG_NORMAL_PAGE_SCAN_MODE_S3, 0, 0, 0, 0x12, 0x800, 1 }, { CFG_NORMAL_PAGE_SCAN_MODE_EX, 0, 0, 0, 0x60, 0x500, 1 }, { CFG_FAST_INQUIRY_PAGE_SCAN_MODE, 0x60, 0x200, 1, 0x80, 0x480, 1 }, }; // <"SCAN 参数设置", CFG_Type_BT_Scan_Params> }; class CFG_App_Music // <"本地播放设置", CFG_CATEGORY_APP_MUSIC, fixed_size=128, hide> { cfg_uint8 Reserved = 0; // <"数据", hex> }; class CFG_Card_Settings // <"存储卡设置", CFG_CATEGORY_CARD, fixed_size=128, hide> { cfg_uint8 Reserved = 0; // <"数据", hex> }; class CFG_USB_Settings // <"USB 设置", CFG_CATEGORY_USB, fixed_size=128, hide> { cfg_uint8 Reserved = 0; // <"数据", hex> }; class CFG_Usr_Reserved_Data // <"用户保留配置", CFG_CATEGORY_SYSTEM, fixed_size=255> { cfg_uint8 String[128] = { 0, }; // <"字符串", string> cfg_uint8 Run_Console_Command[127] = { 0, }; // <"执行控制台命令", string> }; class CFG_Sys_Reserved_Data // <"系统更多配置", CFG_CATEGORY_SYSTEM, fixed_size=255, hide> { cfg_uint8 Reserved = 0; // <"数据", hex> };