63 lines
1.3 KiB
C
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
|
|
|