⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd_osd002.c

📁 LCD Monitor 部分源码
💻 C
📖 第 1 页 / 共 3 页
字号:
    PrintfInt(0);

    RightAlignTextOut(0,0,0);
    ChangeSource();
    SetOSDDouble(0);
    GetCurrLanguagePos();
    IndexofLanuguage(0);

}
//----------------------------------------------------------------------------------------------------
void InitOSDFrame()
{
    COsdFxDisableOsd();
    CAdjustColorPalette(tPALETTE_0);


    SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
    SetRowCmds(ROW_COUNT,COL_WIDTH);
    COsdFxCodeWrite(ucCloseAllWindow);
    COsdFxCodeWrite(ucMain_Frame);

    OSDPosition(372,324,50,50,0x01);
    ShowMode();
}
//----------------------------------------------------------------------------------------------------
void InitDialog()
{
    COsdFxDisableOsd();
    CAdjustColorPalette(tPALETTE_0);

    SetOSDRamAddress(ROW_COUNT,COL_WIDTH,FONT_BASE_ADDRESS);
    SetRowCmds(ROW_COUNT,COL_WIDTH);
    COsdFxCodeWrite(ucCloseAllWindow);
    COsdFxCodeWrite(ucDialog_Frame);
    OSDClear(11, 7, 0, COL_WIDTH, 0x8C, THE_BYTE0);
    OSDClear(11, 7, 0, COL_WIDTH, 0x00, THE_BYTE1);
    OSDClear(11, 7, 0, COL_WIDTH, 0xB0, THE_BYTE2);
    OSDPosition(372,180,50,50,0x01);
}
//----------------------------------------------------------------------------------------------------

void MNoneProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MNoneMenu();       break;
         case VK_LEFT:        MNoneLR(1);        break;
         case VK_RIGHT:       MNoneLR(0);        break;
         case VK_ENTER:       MNoneEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MNoneMenu()
{     
     CScalerLoadFont(FntMainPageIcon,0x6e,60,_COMPRESS_FONT);
     InitOSDFrame();
     ucOsdState = MENU_ITEM_BRIGHT;
     DrawItemSelect(1);
     CenterTextout((unsigned char code *)sBright[GET_LANGUAGE],15,3);
     SLIDER2(BRIGHTNESS_GUAGE);
     COsdFxEnableOsd();     
}
//----------------------------------------------------------------------------------------------------
void MNoneLR(unsigned char  LR)
{
     if(LR)
     {
          ucOsdState = MENU_BRIGHT_SP;
          MBrightSPDraw();

          //EnterFactoryMenu();
          
          //stSystemData.InputSource = _INPUT_PORT_1;
          //ucOsdEventMsg = _CHANGE_SOURCE_MSG;
     }
     else
     {
          ucOsdState = MENU_VOLUME_SP;
          MVolumeSPDraw();
          //stSystemData.InputSource = _INPUT_PORT_0;
          //ucOsdEventMsg = _CHANGE_SOURCE_MSG;
     }
}
//----------------------------------------------------------------------------------------------------
void MNoneEnter()
{
     AutoDialog();
}
//----------------------------------------------------------------------------------------------------

void MMainItemProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MMainItemMenu();       break;
         case VK_LEFT:        MMainItemLR(1);        break;
         case VK_RIGHT:       MMainItemLR(0);        break;
         case VK_ENTER:       MMainItemEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MMainItemMenu()
{
     //Exit Menu
     DrawItemSelect(0);
     COsdFxDisableOsd();
     ucOsdState = _MENU_NONE;
}
//----------------------------------------------------------------------------------------------------

void MMainItemLR(unsigned char LR)
{
     //STEP 1 : BEFORE ITEM CHANGE CLEAR OLD SELECT
     OSDLine(3, 3, 25, 0x00, THE_BYTE1);        // Clear Title
     DrawItemSelect(0);

     //STEP 2 : ITEM CHANGE
     ucOsdState = ValueInRangeChange(MENU_ITEM_BRIGHT,MENU_ITEM_CLOSE,ucOsdState,LR,1);

     //STEP 3 : AFTER ITEM CHANGE DRAW SELECT
     DrawItemSelect(1);
     switch(ucOsdState)
     {
        case MENU_ITEM_BRIGHT:
             TITLE_OUT((unsigned char code *)sBright[GET_LANGUAGE]);
             SLIDER2(BRIGHTNESS_GUAGE);
             break;
        case MENU_ITEM_CONTRAST:
             TITLE_OUT((unsigned char code *)sContrast[GET_LANGUAGE]);
             SLIDER2(CONTRAST_GUAGE);
             break;
        case MENU_ITEM_PHASE:
             TITLE_OUT((unsigned char code *)sPhase[GET_LANGUAGE]);
             SLIDER2(PHASE_GUAGE);
             break;
        case MENU_ITEM_CLOCK:
             TITLE_OUT((unsigned char code *)sClock[GET_LANGUAGE]);
             SLIDER2(ClockGuage());
             break;
        case MENU_ITEM_HPOS:
             TITLE_OUT((unsigned char code *)sHPos[GET_LANGUAGE]);
             SLIDER2(HPosGuage());
             break;
        case MENU_ITEM_VPOS:
             TITLE_OUT((unsigned char code *)sVPos[GET_LANGUAGE]);
             SLIDER2(VPosGuage());
             break;
        case MENU_ITEM_LANGUAGE:
             TITLE_OUT((unsigned char code *)sLanguage[GET_LANGUAGE]);
             OSDLine(11, 3, 25, 0x00, THE_BYTE1);      // Clear value
             SUBTITLE_OUT((unsigned char code *)sLangName[GET_LANGUAGE]);
             break;
        case MENU_ITEM_AUTO:
             TITLE_OUT((unsigned char code *)sAuto[GET_LANGUAGE]);
             OSDLine(11, 3, 25, 0x00, THE_BYTE1);      // Clear value
             break;
        case MENU_ITEM_RESET:
             TITLE_OUT((unsigned char code *)sReset[GET_LANGUAGE]);
             OSDLine(11, 3, 25, 0x00, THE_BYTE1);      // Clear value
             break;
        case MENU_ITEM_CLOSE:
             TITLE_OUT((unsigned char code *)sExit[GET_LANGUAGE]);
             OSDLine(11, 3, 25, 0x00, THE_BYTE1);      // Clear value
             break;
     }
}
//----------------------------------------------------------------------------------------------------
void MMainItemEnter()
{
    DrawItemSelect(2);
    // Enter Sub Item
    switch(ucOsdState)
    {
        case MENU_ITEM_BRIGHT:
             SLIDER1(BRIGHTNESS_GUAGE);
             ucOsdState = MENU_ITEM_BRIGH_ADJ;
             break;
        case MENU_ITEM_CONTRAST:
             SLIDER1(CONTRAST_GUAGE);
             ucOsdState = MENU_ITEM_CONTRAST_ADJ;
             break;
        case MENU_ITEM_PHASE:
             SLIDER1(PHASE_GUAGE);
             ucOsdState = MENU_ITEM_PHASE_ADJ;
             break;
        case MENU_ITEM_CLOCK:
             SLIDER1(ClockGuage());
             ucOsdState = MENU_ITEM_CLOCK_ADJ;
             break;
        case MENU_ITEM_HPOS:
             SLIDER1(HPosGuage());
             ucOsdState = MENU_ITEM_HPOS_ADJ;
             break;
        case MENU_ITEM_VPOS:
             SLIDER1(VPosGuage());
             ucOsdState = MENU_ITEM_VPOS_ADJ;
             break;
        case MENU_ITEM_LANGUAGE:
             ucOsdState = MENU_ITEM_LANGUAGE_ADJ;
             OSDLine(11, 3, 25, 0x64, THE_BYTE2);
             break;
        case MENU_ITEM_AUTO:
             OSDLine(11, 3, 25, 0x64, THE_BYTE2);      // Clear value
             SUBTITLE_OUT((unsigned char code *)sAuto[GET_LANGUAGE]);
             CAutoDoAutoConfig();
             DrawItemSelect(1);
             OSDLine(11, 3, 25, 0x00, THE_BYTE1);      // Clear value
             OSDLine(11, 3, 25, 0xc4, THE_BYTE2);      // Clear value
             break;
        case MENU_ITEM_RESET:
             DoReset();
             DrawItemSelect(1);
             break;
        case MENU_ITEM_CLOSE:
             //Exit Menu
             DrawItemSelect(0);
             COsdFxDisableOsd();             
             ucOsdState = _MENU_NONE;             
             break;
    }

}
//----------------------------------------------------------------------------------------------------
void DrawItemSelect(unsigned char State)   // State  0 : Not Select    1 : Select     2 : Enter Item
{
     unsigned char ucColor;
     unsigned char x = ((ucOsdState - 1) % 5) * 5 + 4;
     unsigned char y = ((ucOsdState - 1) / 5) * 3 + 5;
     if(State == 0)              ucColor = 0xe4;
     else if(State == 1)         ucColor = 0x1B;
     else                        ucColor = 0xc4;
     OSDClear(y, 2, x, 3, ucColor, THE_BYTE2);      //set color
}
//----------------------------------------------------------------------------------------------------





//--------- BRIGHTNESS PROC ----------------------------------
void MBrightAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MBrightAdjMenu();       break;
         case VK_LEFT:        MBrightAdjLR(1);        break;
         case VK_RIGHT:       MBrightAdjLR(0);        break;
         case VK_ENTER:       MBrightAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjMenu()
{
     ucOsdState = MENU_ITEM_BRIGHT;
     DrawItemSelect(1);
     SLIDER2(BRIGHTNESS_GUAGE);

     ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjLR(unsigned char  LR)
{
     unsigned int iBright = BRIGHTNESS_GUAGE;
     SET_KEYREPEATENABLE();
     iBright = ValueInRangeChange(0,100,iBright,LR,0);
     iBright = iBright * 255;
     if((iBright % 100) == 0)    iBright /= 100;
     else                        iBright = iBright/100 + 1;
     stConBriData.Brightness = iBright;
     SLIDER1(BRIGHTNESS_GUAGE);
     CAdjustBrightness();
}
//----------------------------------------------------------------------------------------------------
void MBrightAdjEnter()
{
}
//----------------------------------------------------------------------------------------------------



//--------- CONTRAST ADJUST PROC ----------------------------------
void MContrastAdjProc()
{
     switch(ucKeyMessage)
     {
         case VK_MENU:        MContrastAdjMenu();       break;
         case VK_LEFT:        MContrastAdjLR(1);        break;
         case VK_RIGHT:       MContrastAdjLR(0);        break;
         case VK_ENTER:       MContrastAdjEnter();      break;
     }
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjMenu()
{
     ucOsdState = MENU_ITEM_CONTRAST;
     DrawItemSelect(1);
     SLIDER2(CONTRAST_GUAGE);

     ucOsdEventMsg = _SAVE_EE_COLORPROC0_MSG;     
     CLR_KEYREPEATENABLE();
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjLR(unsigned char  LR)
{
     unsigned int ucContrast = CONTRAST_GUAGE;
     SET_KEYREPEATENABLE();
     ucContrast = ValueInRangeChange(0,100,ucContrast,LR,0);
     ucContrast = ucContrast * 255;
     stConBriData.Contrast = ucContrast / 100;
     if(ucContrast % 100 != 0)    stConBriData.Contrast = stConBriData.Contrast + 1;
     SLIDER1(CONTRAST_GUAGE);
     CAdjustContrast();
}
//----------------------------------------------------------------------------------------------------
void MContrastAdjEnter()
{

}
//----------------------------------------------------------------------------------------------------


//--------- PHASE ADJUST PROC ----------------------------------
void MPhaseAdjProc()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -