📄 ui_flow_menu.c
字号:
gbFocusItemIdx = 0;
for(i = 0; i < MENU_PICTURE_ITEM_MAX; i++)
UI_FL_PictureDrawItem(i, ( (i == 0) ? FOCUS_COLOR : UNFOCUS_COLOR ) );
}
/***************************************************************************/
void UI_FL_PictureProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("...main_menu_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
switch(bKey)
{
case KEY_LEFT:
case KEY_EXIT:
API_OSD_ClearArea(0, MENU_PICTURE_ITEM_MAX + 1, 0, 11, OSD_BLACK);
UI_FLC_ReturnLastState();
break;
case KEY_UP:
UI_FL_PictureDrawItem(gbFocusItemIdx, UNFOCUS_COLOR);
if(gbFocusItemIdx) gbFocusItemIdx--;
else gbFocusItemIdx = MENU_PICTURE_ITEM_MAX - 1;
UI_FL_PictureDrawItem(gbFocusItemIdx, FOCUS_COLOR);
break;
case KEY_DOWN:
UI_FL_PictureDrawItem(gbFocusItemIdx, UNFOCUS_COLOR);
gbFocusItemIdx++;
if(gbFocusItemIdx == MENU_PICTURE_ITEM_MAX) gbFocusItemIdx = 0;
UI_FL_PictureDrawItem(gbFocusItemIdx, FOCUS_COLOR);
break;
case KEY_RIGHT:
case KEY_MENU:
UI_FLC_EnterNewState(FS_PICTURE_BRIGHTNESS + gbFocusItemIdx);
break;
default:
break;
}
}
/***************************************************************************/
void UI_FL_PicBrightnessInit(void)
{
BYTE bval;
#if(UART_DEBUG_MSG)
printf("......picture_brightness_init\n");
#endif // UART_DEBUG_MSG
// 2's complement
bval = gScalerPara.bBrightness + 0x80;
_AdjItemWindowInit(MPictureItemStr1, bval);
}
void UI_FL_PicBrightnessProc(BYTE bKey)
{
BYTE bval;
#if(UART_DEBUG_MSG)
printf("......picture_brightness_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
if(bKey == KEY_LEFT || bKey == KEY_RIGHT)
{
// 2's complement
bval = gScalerPara.bBrightness + 0x80;
bval = _AdjItemWindowProc(bKey, 4, bval) + 0x80;
gScalerPara.bBrightness = bval;
API_CTRL_ScalerColorEnhance();
}
else if(bKey == KEY_EXIT)
{
// Save parameter
_ItemWindowExit();
}
}
/***************************************************************************/
void UI_FL_PicContrastInit(void)
{
#if(UART_DEBUG_MSG)
printf("......picture_contrast_init\n");
#endif // UART_DEBUG_MSG
_AdjItemWindowInit(MPictureItemStr2, gScalerPara.bContrast);
}
void UI_FL_PicContrastProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("......picture_contrast_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
if(bKey == KEY_LEFT || bKey == KEY_RIGHT)
{
gScalerPara.bContrast = _AdjItemWindowProc(bKey, 4, gScalerPara.bContrast);
API_CTRL_ScalerColorEnhance();
}
else if(bKey == KEY_EXIT)
{
// Save parameter
_ItemWindowExit();
}
}
/***************************************************************************/
void UI_FL_PicHueInit(void)
{
BYTE bval;
#if(UART_DEBUG_MSG)
printf("......picture_hue_init\n");
#endif // UART_DEBUG_MSG
// 2's complement
bval = (BYTE)(((WORD)(gScalerPara.bHue) << 7) / 30) + 0x80;
_AdjItemWindowInit(MPictureItemStr3, bval);
}
void UI_FL_PicHueProc(BYTE bKey)
{
BYTE bval;
#if(UART_DEBUG_MSG)
printf("......picture_hue_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
if(bKey == KEY_LEFT || bKey == KEY_RIGHT)
{
// 2's complement
bval = gScalerPara.bHue;
if(bval > 0x80)
bval = (BYTE)(((WORD)(bval - 0xE0) << 8) / 64);
else
bval = (BYTE)(((WORD)bval << 8) / 64) + 0x80;
bval = _AdjItemWindowProc(bKey, 4, bval);
if(bval > 0x80)
bval = (BYTE)(((WORD)(bval - 0x80) * 64) >> 8);
else
bval = (BYTE)((WORD)(bval * 64) >> 8) + 0xE0;
gScalerPara.bHue = bval;
API_CTRL_ScalerColorEnhance();
}
else if(bKey == KEY_EXIT)
{
// Save parameter
_ItemWindowExit();
}
}
/***************************************************************************/
void UI_FL_PicSaturationInit(void)
{
#if(UART_DEBUG_MSG)
printf("......picture_saturation_init\n");
#endif // UART_DEBUG_MSG
_AdjItemWindowInit(MPictureItemStr4, gScalerPara.bSaturation);
}
void UI_FL_PicSaturationProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("......picture_saturation_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
if(bKey == KEY_LEFT || bKey == KEY_RIGHT)
{
gScalerPara.bSaturation = _AdjItemWindowProc(bKey, 8, gScalerPara.bSaturation);
API_CTRL_ScalerColorEnhance();
}
else if(bKey == KEY_EXIT)
{
// Save parameter
_ItemWindowExit();
}
}
/***************************************************************************/
void UI_FL_PicSharpnessInit(void)
{
#if(UART_DEBUG_MSG)
printf("......picture_sharpness_init\n");
#endif // UART_DEBUG_MSG
_AdjItemWindowInit(MPictureItemStr5, gScalerPara.bSharpness);
}
void UI_FL_PicSharpnessProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("......picture_sharpness_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
if(bKey == KEY_LEFT || bKey == KEY_RIGHT)
{
gScalerPara.bSharpness = _AdjItemWindowProc(bKey, 37, gScalerPara.bSharpness * 37) / 37;
API_CTRL_ScalerColorEnhance();
}
else if(bKey == KEY_EXIT)
{
// Save parameter
_ItemWindowExit();
}
}
/***************************************************************************/
BYTE code IZoomItemStr1[] = {_1, _6, _MINUS, _9, _EOF};
BYTE code IZoomItemStr2[] = {_4, _MINUS, _3, _EOF};
void UI_FL_PicZoomInit(void)
{
#if(UART_DEBUG_MSG)
printf("......picture_zoom_init\n");
#endif // UART_DEBUG_MSG
_ItemWindowInit(MPictureItemStr6);
API_OSD_PrintString(1, 15, (gScalerPara.fAspectType == 0) ? OSD_BLUE : OSD_GRAY_2, IZoomItemStr1);
API_OSD_PrintString(1, 20, (gScalerPara.fAspectType == 1) ? OSD_BLUE : OSD_GRAY_2, IZoomItemStr2);
}
void UI_FL_PicZoomProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("......picture_zoom_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
switch(bKey)
{
case KEY_EXIT:
_ItemWindowExit();
// Save parameters
break;
case KEY_LEFT:
case KEY_RIGHT:
gScalerPara.fAspectType = ~(gScalerPara.fAspectType);
API_OSD_PrintString(1, 15, (gScalerPara.fAspectType == 0) ? OSD_BLUE : OSD_GRAY_2, IZoomItemStr1);
API_OSD_PrintString(1, 20, (gScalerPara.fAspectType == 1) ? OSD_BLUE : OSD_GRAY_2, IZoomItemStr2);
API_OSD_Enable(0);
_PositionCtrl(1);
API_PANEL_SetAspectRatio(gScalerPara.fAspectType);
API_OSD_Enable(1);
break;
default:
break;
}
}
/***************************************************************************/
BYTE code IFlipItemStr1[] = {_S, _T, _D, _EOF};
BYTE code IFlipItemStr2[] = {_L, _2, _R, _EOF};
BYTE code IFlipItemStr3[] = {_U, _2, _D, _EOF};
BYTE code IFlipItemStr4[] = {_I, _N, _V, _EOF};
void UI_FL_PicFlipInit(void)
{
#if(UART_DEBUG_MSG)
printf("......picture_flip_init\n");
#endif // UART_DEBUG_MSG
_ItemWindowInit(MPictureItemStr7);
API_OSD_PrintString(1, 15, (gScalerPara.bFlipMode == 0) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr1);
API_OSD_PrintString(1, 19, (gScalerPara.bFlipMode == 1) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr2);
API_OSD_PrintString(1, 23, (gScalerPara.bFlipMode == 2) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr3);
API_OSD_PrintString(1, 27, (gScalerPara.bFlipMode == 3) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr4);
}
void UI_FL_PicFlipProc(BYTE bKey)
{
#if(UART_DEBUG_MSG)
printf("......picture_flip_proc(%02X)\n", (int)bKey);
#endif // UART_DEBUG_MSG
switch(bKey)
{
case KEY_EXIT:
_ItemWindowExit();
// Save parameters
break;
case KEY_LEFT:
case KEY_RIGHT:
if(bKey == KEY_LEFT)
gScalerPara.bFlipMode = (gScalerPara.bFlipMode > 0) ? (gScalerPara.bFlipMode - 1) : 3;
else // (bKey == KEY_RIGHT)
gScalerPara.bFlipMode = (gScalerPara.bFlipMode < 3) ? (gScalerPara.bFlipMode + 1) : 0;
API_OSD_PrintString(1, 15, (gScalerPara.bFlipMode == 0) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr1);
API_OSD_PrintString(1, 19, (gScalerPara.bFlipMode == 1) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr2);
API_OSD_PrintString(1, 23, (gScalerPara.bFlipMode == 2) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr3);
API_OSD_PrintString(1, 27, (gScalerPara.bFlipMode == 3) ? OSD_BLUE : OSD_GRAY_2, IFlipItemStr4);
SYS_BacklightPower(0);
API_PANEL_Flip(gScalerPara.bFlipMode);
SYS_Delay_mS(20);
SYS_BacklightPower(1);
break;
default:
break;
}
}
/****************************************************************************
* UI Menu function - Input sub-menu
****************************************************************************/
BYTE code MInputItemStr1[] = { _C, _V, _B, _S, __, __, __, __, _EOF };
BYTE code MInputItemStr2[] = { _S, _MINUS, _V, _I, _D, _E, _O, __, _EOF };
//BYTE code MInputItemStr3[] = { _T, _V, __, __, __, __, __, __, _EOF };
//BYTE code MInputItemStr4[] = { _C, _C, _I, _R, _MINUS, _6, _5, _6, _EOF };
BYTE code * code MInputItemStr[] =
{
MInputItemStr1,
MInputItemStr2//,
//MInputItemStr3,
//MInputItemStr4
};
/***************************************************************************/
void UI_FL_InputDrawItem(BYTE bIndex, BYTE bColor)
{
API_OSD_PrintString(bIndex+1, 1, bColor, MInputItemStr[bIndex]);
}
/***************************************************************************/
void UI_FL_InputInit(void)
{
BYTE i;
#if(UART_DEBUG_MSG)
printf("...menu_input_init\n");
#endif // UART_DEBUG_MSG
#if(MAIN_MENU_ITEM_MAX < MENU_INPUT_ITEM_MAX)
UI_OSD_SetAreaRowAttr(0, MENU_INPUT_ITEM_MAX + 1, 0x00, 0x14);
#endif // MAIN_MENU_ITEM_MAX < MENU_INPUT_ITEM_MAX
API_OSD_ClearRow(0, 15, OSD_BLACK);
UI_OSD_DrawFrame(0, MENU_INPUT_ITEM_MAX + 1, 0, 9);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -