doubao_chat/apps/wifi_camera/ui_camera_demo/key_demo.c

92 lines
2.1 KiB
C

#include "app_config.h"
#ifdef CONFIG_UI_ENABLE //上电执行则打开app_config.h TCFG_DEMO_UI_RUN = 1
#include "device/device.h"//u8
#include "event/key_event.h"
#include "asm/gpio.h"
#include "system/includes.h"
/****************按键部分**********************/
enum data_mode {
camera,
ui,
ui_camera,
};
extern u8 data_mode;
extern int ui_key_control(u8 value, u8 event);
extern int ui_camera_key_control(u8 value, u8 event);
static int camera_ui_key_click(struct key_event *key)
{
static u8 mode = 0; //0为摄像头输出模式 1为UI输出模式
int err;
switch (key->action) {
case KEY_EVENT_CLICK:
switch (key->value) {
case KEY_MODE: //IO_key//键值
printf(">>>>>>>>>>>>>>>>key power_off");
break;
case KEY_1:
printf(">>>>>>>>>>>>>>>key1");
break;
case KEY_2:
printf(">>>>>>>>>>>>>>>>key2");
break;
case KEY_3:
printf(">>>>>>>>>>>>>>>>key3");
break;
case KEY_4:
mode = !mode;//按键切显示模式
printf(">>>>>>>>>>>>>>>key4");
case KEY_5:
printf(">>>>>>>>>>>>>>>key5");
case KEY_6:
printf(">>>>>>>>>>>>>>>key6");
case KEY_7:
printf(">>>>>>>>>>>>>>>key7");
case KEY_8:
printf(">>>>>>>>>>>>>>>key8");
break;
default:
break;
}
break;
default:
break;
}
if (!mode) { //按键分支 一个模式对应一个按键分支 便于编写
printf(">>>>>>>>ui_camera_key");
ui_camera_key_control(key->value, key->action);
} else {
printf(">>>>>>>>ui_key");
ui_key_control(key->value, key->action);
}
return false;
}
int camera_ui_key_event_handler(struct key_event *key)
{
char ret;
switch (key->action) {
case KEY_EVENT_CLICK:
ret = camera_ui_key_click(key);
break;
case KEY_EVENT_LONG:
break;
case KEY_EVENT_HOLD:
break;
case KEY_EVENT_UP:
break;
default:
break;
}
return 0;
}
#endif