30 lines
827 B
C
30 lines
827 B
C
|
|
#ifndef __KEYWORK_H
|
||
|
|
#define __KEYWORK_H
|
||
|
|
#include "sys_config.h"
|
||
|
|
#include "typesdef.h"
|
||
|
|
#include "list.h"
|
||
|
|
struct key_callback_list_s;
|
||
|
|
|
||
|
|
|
||
|
|
//keyvalue:按键的键值和状态
|
||
|
|
//extern_value:额外参数,根据不同按键传输数据不一样,比如adkey传的是adc的值,如果是powerkey,可以传输对应的电量值
|
||
|
|
typedef uint32_t (*key_callback)(struct key_callback_list_s *key_callback_list,uint32_t keyvalue,uint32_t extern_value);
|
||
|
|
|
||
|
|
struct key_callback_list_s
|
||
|
|
{
|
||
|
|
struct list_head list;
|
||
|
|
key_callback callback;
|
||
|
|
void *priv;
|
||
|
|
uint8_t flag; //0正常 1要删除
|
||
|
|
};
|
||
|
|
|
||
|
|
struct key_msg_s
|
||
|
|
{
|
||
|
|
uint32_t keycode;
|
||
|
|
uint32_t extern_value;
|
||
|
|
};
|
||
|
|
|
||
|
|
void *add_keycallback(key_callback callback,void *priv);
|
||
|
|
uint8_t remove_keycallback(struct key_callback_list_s *remove_list);
|
||
|
|
int32 keyWork_init(int listen_max);
|
||
|
|
#endif
|