Files
menu/examples/hmi/src/hmi_camera.c
2025-12-19 10:22:28 +08:00

103 lines
2.3 KiB
C

#include "hmi_camera.h"
#include "menu.h"
#include "language.h"
#include <stdio.h>
#include <string.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
#endif
const MenuImage_t sgc_CameraImage = {
"**********",
"&"
};
MenuList_t sg_CameraMenuTable[] =
{
MENU_ITEM_BIND("TEXT_PHOTO", NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
MENU_ITEM_BIND(TEXT_PHOTOGRAPHY, NULL, NULL, NULL, Hmi_OnCommonFunction, NULL),
};
static void ShowCameraMenu(MenuShow_t *ptShowInfo)
{
uint8_t showNum = 3;
menusize_t tmpselect;
Menu_LimitShowListNum(ptShowInfo, &showNum);
printf("\e[0;30;46m ------------- %s ------------- \e[0m\n", get_text(ptShowInfo->uMenuDesc.textId));
for (int i = 0; i < showNum; i++)
{
tmpselect = i + ptShowInfo->showBaseItem;
if (tmpselect == ptShowInfo->selectItem)
{
printf("\e[0;30;47m %d. %-34s\e[0m\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
}
else
{
printf("\e[7;30;47m %d. %-34s\e[0m\n", tmpselect + 1, get_text(ptShowInfo->uItemsListDesc[tmpselect].textId));
}
}
}
void Hmi_CameraEnter(const MenuItemInfo_t *pItemInfo)
{
Menu_Bind(sg_CameraMenuTable, MENU_GET_NUM(sg_CameraMenuTable), ShowCameraMenu);
}
void Hmi_CameraLoad(const MenuItemInfo_t *pItemInfo)
{
CLEAR();
MOVETO(0, 0);
printf("---%s-----\n", get_text(TEXT_LOADING));
}
void Hmi_CameraExit(const MenuItemInfo_t *pItemInfo)
{
printf("--------------------------\n");
printf(" %s%s...\n", get_text(TEXT_VIDEO), get_text(TEXT_STOPPING_PLAYBACK));
printf("--------------------------\n");
#ifdef _WIN32
Sleep(1000);
#else
sleep(1);
#endif
}
void Hmi_CameraTask(const MenuItemInfo_t *pItemInfo)
{
int cmd;
printf("%s(0-%s; 1-%s%s; 2-%s; 3-%s; 4-%s): ",
get_text(TEXT_SELECT_OPTION), get_text(TEXT_RETURN), get_text(TEXT_RETURN), get_text(TEXT_MAIN_MENU),
get_text(TEXT_ENTER), get_text(TEXT_NEXT), get_text(TEXT_PREVIOUS));
scanf(" %d", &cmd);
switch (cmd)
{
case 0:
Menu_Exit(true);
break;
case 1:
Menu_Reset();
break;
case 2:
Menu_Enter();
break;
case 3:
Menu_SelectNext(true);
break;
case 4:
Menu_SelectPrevious(true);
break;
default:
break;
}
}