📄 osd_001.c
字号:
#include "Core\Header\Include.h"
#if(_001_OSD)
//-----------------------------------------------------------
void Clear(void)
{
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
OSDClear(0, 1, 0, COL_WIDTH, 0xf0, BYTE_COLOR);
//OSDClear(4, 11, 0, COL_WIDTH, 0x00,BYTE_COLOR);
OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);
}
//---------------------------------------------------------------------------
void Draw001Menu(void)
{
InitOsdFrame();
//COsdFxDisableOsd();
SetOSDDouble(0);
COsdFxCodeWrite(ucCloseAllWindow);
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
OSDClear(0,1,0,COL_WIDTH,0xf0,BYTE_COLOR);
OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);
OSDPosition(348,72,100,90,0x01);
ucOsdState = _MI_001_CONTRAST;
CCenterTextout(sContrast[GET_LANGUAGE()], ROW(0), 0, 28);
OSDSlider1(ROW(2), 3, 16, stConBriData.Contrast, 100,0xe0);
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(348), YEND(72), tOSD_WINDOW0_STYLE);
OSDPosition(70,20,39,85,0x03);
COsdFxEnableOsd();
//CTimerReactiveTimerEvent(SEC(15), COsdFxDisableOsd);
while(0)
{
CGetADCValue(&pData[3]);
Gotoxy(5, 10, BYTE_DISPLAY);
CShowNumber(2,2,pData[3]);
}
}
//---------------------------------------------------------------------------
void Draw001MainMenu(void)
{
COsdFxDisableOsd();
COsdFxCodeWrite(ucCloseAllWindow);
OSDClear(0, 15, 0 , 30, 0x00, BYTE_DISPLAY);
OSDClear(0, 15, 0 , 30, 0x8c, BYTE_ATTRIB);
OSDClear(0, 15, 0, 30, 0x10, BYTE_COLOR);
COsdFxDrawWindow(XSTART(0), YSTART(0), XEND(348), YEND(72), tOSD_WINDOW0_STYLE);
OSDPosition(70,20,39,85,0x03);
COsdFxEnableOsd();
bOSDTimeOut = 0;
}
//---------------------------------------------------------------------------
void M001MenuAdj(BYTE ucMode)
{
BYTE ucNewItem = AdjustMenuItem(_MI_001_CONTRAST,_MI_001_EXIT,ucMode);
if(ucNewItem == ucOsdState)
{
return;
}
// 1. Clear Current Menu
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x00, BYTE_DISPLAY);
OSDClear(0, ROW_COUNT, 0 , COL_WIDTH, 0x8c, BYTE_ATTRIB);
OSDClear(0, 1, 0, COL_WIDTH, 0xf0, BYTE_COLOR);
OSDClear(1,0,2,COL_WIDTH,0xe0,BYTE_COLOR);
//OSDClear(4, 11, 0, COL_WIDTH, 0x00,BYTE_COLOR);
if(ucNewItem == _MI_001_EXIT)
{
ucOsdState = _MI_MENU_NONE;
COsdFxDisableOsd();
return;
}
// 2. Change ucOsdState
ucOsdState = ucNewItem;
// 3. Draw New Item
Draw001MenuItem(ucOsdState,_ST_SELECT);
}
//---------------------------------------------------------------------------
void M001ValueAdj(BYTE ucMode)
{
// ucMode : _INC or _DEC
switch(ucOsdState)
{
case _MI_001_CONTRAST: Adjust001Contrast(ucMode); break;
case _MI_001_BRIGHTNESS: Adjust001Brightness(ucMode); break;
case _MI_001_HUE: Adjust001Hue(ucMode); break;
case _MI_001_SATURATION: Adjust001Saturation(ucMode); break;
case _MI_001_AV1_AV2: Adjust001Source(ucMode); break;
case _MI_001_LEFT_RIGHT: Adjust001LeftRight(ucMode); break;
case _MI_001_UP_DOWN: Adjust001UpDown(ucMode); break;
case _MI_001_DISPLAY_RATIO: Adjust001DisplayRatio(ucMode); break;
case _MI_001_RESET: ResetAdjustLeftRight(1); break;
case _MI_001_EXIT: Exit001Menu(); break;
}
}
//---------------------------------------------------------------------------
void M001Proc(void)
{
switch(ucOsdEventMsg)
{
case _OE_ADJ_INC: M001ValueAdj(_INC); break;
case _OE_ADJ_DEC: M001ValueAdj(_DEC); break;
case _OE_RETURN_UPMENU: M001MenuAdj(_NEXT); break;
case _OE_ENTER_RESET: ResetMenuProc(); break;
}
}
//------------------------------------------------------------------------------
void ResetItemProc()
{
switch(ucKeyMessage)
{
case _OE_ENTER_SUBMENU: ResetMenuProc(); break;
case _OE_ADJ_INC: ResetAdjustLeftRight(1); break;
case _OE_ADJ_DEC: ResetAdjustLeftRight(0); break;
default: break;
}
}
//------------------------------------------------------------------------------
void ResetAdjustLeftRight(BYTE LR)
{
LR = 1;
if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
{
Gotoxy(14,2,BYTE_DISPLAY);
OutputChar(0x56);
Gotoxy(4,2,BYTE_DISPLAY);
OutputChar(0x00);
_SET_RESET_SELECT_STATE(_RESET_NO_STATE);
}
else
{
Gotoxy(14,2,BYTE_DISPLAY);
OutputChar(0x00);
Gotoxy(4,2,BYTE_DISPLAY);
OutputChar(0x56);
_SET_RESET_SELECT_STATE(_RESET_SELECT_STATE);
}
}
//------------------------------------------------------------------------------
void ResetMenuProc(void)
{
if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
{
if(_GET_RESET_SELECT_STATE() == _RESET_SELECT_STATE)
{
CDoReset();
}
}
CLR_KEYREPEATENABLE();
COsdFxDisableOsd();
ucOsdState = _MI_MENU_NONE;
//CTimerDelayXms(500);
}
//------------------------------------------------------------------------------
void DrawContrastMenu(void)
{
Clear();
CCenterTextout(sContrast[GET_LANGUAGE()], ROW(0), 0, 28);
OSDSlider1(ROW(2), 3, 16, GET_CONTRAST(), 100,0xe0);
}
//------------------------------------------------------------------------------
void DrawBrightnessMenu(void)
{
Clear();
CCenterTextout(sBrightness[GET_LANGUAGE()], ROW(0), 0, 28);
OSDSlider1(ROW(2), 3, 16, stConBriData.Brightness, 100,0xe0);
}
//------------------------------------------------------------------------------
void DrawSaturationMenu(void)
{
Clear();
CCenterTextout(sSaturation[GET_LANGUAGE()], ROW(0), 0, 28);
OSDSlider1(ROW(2), 3, 16, GET_SATURATION(), 100,0xe0);
}
//------------------------------------------------------------------------------
void DrawHueMenu(void)
{
Clear();
CCenterTextout(sHue[GET_LANGUAGE()], ROW(0), 0, 25);
OSDSlider1(ROW(2), 3, 16, GET_HUE(), 100,0xe0);
}
//------------------------------------------------------------------------------
void DrawSourceA1A2Menu(void)
{
Clear();
CCenterTextout(sSource, ROW(0), 0, 27);
CTextOutEx(sAV,COL(6),ROW(2));
CTextOutEx(sSVideo,COL(18),ROW(2));
if(stSystemData.InputSource == _SOURCE_VIDEO_AV)
{
//Gotoxy(8,2,BYTE_DISPLAY);
//OutputChar(0x00);
Gotoxy(4,2,BYTE_DISPLAY);
OutputChar(0x56);
}
else if(stSystemData.InputSource == _SOURCE_VIDEO_SV)
{
//Gotoxy(4,2,BYTE_DISPLAY);
//OutputChar(0x56);
Gotoxy(15,2,BYTE_DISPLAY);
//OutputChar(0x00);
OutputChar(0x56);
}
}
//------------------------------------------------------------------------------
void DrawLeftRightChangeMenu()
{
Clear();
CCenterTextout(sLeftRight, ROW(0), 0, 27);
CTextOutEx(sLeft,COL(6),ROW(2));
CTextOutEx(sRight,COL(16),ROW(2));
if(bLR)
{
Gotoxy(4,2,BYTE_DISPLAY);
OutputChar(0x56);
}
else
{
Gotoxy(15,2,BYTE_DISPLAY);
OutputChar(0x56);
}
}
//------------------------------------------------------------------------------
void DrawUpDownChangeMenu()
{
Clear();
CCenterTextout(sUpDown, ROW(0), 0, 27);
CTextOutEx(sUp,COL(6),ROW(2));
CTextOutEx(sDown,COL(16),ROW(2));
if(bUD)
{
Gotoxy(4,2,BYTE_DISPLAY);
OutputChar(0x56);
}
else
{
Gotoxy(15,2,BYTE_DISPLAY);
OutputChar(0x56);
}
}
//------------------------------------------------------------------------------
void DrawDisplayRadioMenu()
{
Clear();
CCenterTextout(sDisplayRatio[GET_LANGUAGE()], ROW(0), 0, 27);
CTextOutEx(s16_9,COL(6),ROW(2));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -