✨ feat(lib/flash): 添加C++支持,定义了FLASH设备表格式
✨ feat(lib/font): 增加中文字体数据结构,扩展字形数组大小 ✨ chore(.gitignore): 添加构建目录到忽略列表 ✨ chore(CMakeLists): 优化CMake配置,修复库链接顺序 ✨ feat(sim/key): 实现模拟按键功能,包括上下左右及确认、设置、重置键 ✨ fix(main): 移除未使用的SDL实例,调整任务和OLED测试的执行顺序
This commit is contained in:
113
sim/key/key.cpp
113
sim/key/key.cpp
@@ -108,4 +108,117 @@ uint8_t SIM_Key_Scan() {
|
||||
return key;
|
||||
}
|
||||
|
||||
|
||||
uint8_t SIM_Key_UP(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_UP || event.key.key == SDLK_W)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_DOWN(uint8_t l) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_DOWN || event.key.key == SDLK_S)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_LEFT(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_LEFT || event.key.key == SDLK_A)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_RIGHT(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_RIGHT || event.key.key == SDLK_D)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_ENABLE(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_KP_ENTER || event.key.key == SDLK_E)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_SET(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_Q)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
uint8_t SIM_Key_RESET(uint8_t) {
|
||||
SDL_Event event;
|
||||
uint8_t key = 0;
|
||||
SDL_PollEvent(&event);
|
||||
switch (event.type) {
|
||||
case SDL_EVENT_QUIT:
|
||||
return 0;
|
||||
case SDL_EVENT_KEY_DOWN:
|
||||
if (event.key.key == SDLK_R)key = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user