/*================================================================ Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved. Quectel Wireless Solutions Proprietary and Confidential. =================================================================*/ #ifndef _QL_KEYPAD_H #define _QL_KEYPAD_H #ifdef __cplusplus extern "C" { #endif #define QL_KEYPAD_MATRIX_LENGTH 8 typedef struct ql_event_data_struct { int event_id; int param_01; int param_02; int param_03; int key_v; } ql_event_data_t; typedef enum QL_KPAD_MKOUT_ENUM{ QL_KP_OUT0 = 0, QL_KP_OUT1, QL_KP_OUT2, QL_KP_OUT3, QL_KP_OUT4, QL_KP_OUT5, QL_KP_OUT6, QL_KP_OUT7, QL_KP_OUT_NO_VALID }QL_KPAD_MKOUT_E; typedef enum QL_KPAD_MKIN_ENUM{ QL_KP_IN0 = 0, QL_KP_IN1, QL_KP_IN2, QL_KP_IN3, QL_KP_IN4, QL_KP_IN5, QL_KP_IN6, QL_KP_IN7, QL_KP_IN_NO_VALID }QL_KPAD_MKIN_E; typedef unsigned int (*ql_event_cb)(ql_event_data_t); int ql_keypad_Register(ql_event_cb event_cb); void ql_keypad_MultikeyEn(unsigned char enable); int ql_keypad_Config(unsigned char multi_key, unsigned char key_hold_dura, QL_KPAD_MKOUT_E row[QL_KEYPAD_MATRIX_LENGTH], QL_KPAD_MKIN_E col[QL_KEYPAD_MATRIX_LENGTH]); #endif #ifdef __cplusplus } /*"C" */ #endif