Files
banban/ql-kernel/threadx/common/include/ql_keypad.h

63 lines
1.3 KiB
C

/*================================================================
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