/**
 * @file KeyboardConfig.h
 * @brief Header file of keyboard configuration.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 *
 *
 @ endverbatim
 *
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2023-05-30
 */
#ifndef __KEYBOARD_CONFIG_H__
#define __KEYBOARD_CONFIG_H__

#include "Keyboard.h"

#define KEY_HOLD_TIME_MS           500
/* if don't support double kick, config it small. if support it, 250 maybe useful. */
#define KEY_DOUBLE_CLICK_TIME_MS   20

/* 两路ADC按键对应的使能开关，1：开  0：关 */
#define ADC0_KEY_ENABLE         1
#define ADC1_KEY_ENABLE         0
/* 单路ADC对应的按键数量，注意单路最多支持6个按键 */
#define SINGLE_ADC_KEY_NUMS     4
/* ADC功能按键的总数量(两路总和) */
#define ADC_KEY_NUMS            (SINGLE_ADC_KEY_NUMS)
/* 组合按键使能开关 */
#define ADC_COMBO_KEY_ENABLE    1
/* 组合按键的个数，注意：组合按键只支持两路ADC按键同时开启的情况 */
#define ADC_COMBO_KEY_NUMS      2
/* ADC键值的阈值，注意：ADC_Theshold_MAX 要大于所有ADC键值的最大值；
   ADC_Theshold_MIN要小于所有ADC键值的最小值 */
#define ADC_Theshold_MAX        (2880+50)
#define ADC_Theshold_MIN        (1180-112)
/* MENU + POWER 组合按键的定义，需要给出MENU按键在ADC0还是ADC1 */
#define PM51_CONFIG_MENU_KEY_WITH_ADC_INDEX               MENU_KEY_WITH_ADC0
/* LED ON时对应PWM的极性 */
#define PM51_CONFIG_LED_ON_WITH_PWM_POL                   PWM_POL_HIGH
/* 工厂按键的对应的键值Index，注意：具体按键名称可以在结构体定义中查找；
   进入工厂的方法是:关机后按住定义的按键，再交流开机，当系统显示LOGO的时候松开按键 */
#define PM51_CONFIG_FACTORY_MODE_KEY_VAL                  E_ADC0_KEY_VAL_2
/* 配置Powerkey对应的功能模式 */
#define PM51_CONFIG_POWER_KEY_MODE                        POWER_KEY_MODE_NORMAL

/* 按键长按的时长，持续OSD_DEFAULT_KEY_HOLD_TIME_MS时间后，触发按键长按操作 */
#define OSD_DEFAULT_KEY_HOLD_TIME_MS        (3000)
/* 按键重复周期，用于OSD菜单的连续切换 */
#define OSD_DEFAULT_KEY_REPEAT_PERIOD_MS    (200)
/* 按键重复周期，用于OSD连续数据的调整 */
#define OSD_ADJUST_KEY_REPEAT_PERIOD_MS     (50)
#define ADC_KEY_RETRY       2
#ifdef HV_CONFIG_ARCH_RISC
UINT32 GetAdcMappedValue(UINT32 uiAdcValue);
#endif

#endif
