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

📄 lcd_osd_ktc.c

📁 keil c51平台,此代码可用于学习TFT LCD TV 搜台等,(本人自己修改)
💻 C
📖 第 1 页 / 共 5 页
字号:
                break;
            case PAGE1_ITEM_POSH :
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if (ucH_Min_Margin >= stMUD.H_POSITION)     break;

                    if (KEY_TURBO_ENABLE > ucKey_Issued)
                        stMUD.H_POSITION    = stMUD.H_POSITION > ucH_Min_Margin ? stMUD.H_POSITION - 1 : ucH_Min_Margin;
                    else
                        stMUD.H_POSITION    = stMUD.H_POSITION > (ucH_Min_Margin + 2) ? stMUD.H_POSITION - 3 : ucH_Min_Margin;
                }
                else
                {
                    if (ucH_Max_Margin <= stMUD.H_POSITION)     break;

                    if (KEY_TURBO_ENABLE > ucKey_Issued)
                        stMUD.H_POSITION    = stMUD.H_POSITION < ucH_Max_Margin ? stMUD.H_POSITION + 1 : ucH_Max_Margin;
                    else
                        stMUD.H_POSITION    = stMUD.H_POSITION < (ucH_Max_Margin - 2) ? stMUD.H_POSITION + 3 : ucH_Max_Margin;
                }                    
                Set_H_Position();
                Save_MUD(ucMode_Curr);
                OSD_Slider(7, 5, 14, ucH_Max_Margin - stMUD.H_POSITION, ucH_Max_Margin - ucH_Min_Margin, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;
            case PAGE1_ITEM_POSV :
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if ((unsigned int)256 - ucV_Min_Margin <= stMUD.V_POSITION)     break;

                    stMUD.V_POSITION    += 1;
                }
                else
                {
                    if (ucV_Min_Margin >= stMUD.V_POSITION)     break;

                    stMUD.V_POSITION    -= 1;
                }                
                Set_V_Position();
                Save_MUD(ucMode_Curr);
                OSD_Slider(7, 5, 14, (unsigned int)(stMUD.V_POSITION - ucV_Min_Margin) * 50 / (128 - ucV_Min_Margin), 100, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;
            case PAGE1_ITEM_CLOCK :
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if (228 <= stMUD.CLOCK)     break;

                    if (KEY_TURBO_ENABLE > ucKey_Issued)
                        stMUD.CLOCK = (227 >= stMUD.CLOCK) ? stMUD.CLOCK + 1 : 228;
                    else
                        stMUD.CLOCK = (226 >= stMUD.CLOCK) ? stMUD.CLOCK + 2 : 228;
                    
                    Set_Clock();
                    Set_H_Position();
                }
                else
                {
                    if (28 >= stMUD.CLOCK)     break;

                    if (KEY_TURBO_ENABLE > ucKey_Issued)
                        stMUD.CLOCK = (29 <= stMUD.CLOCK) ? stMUD.CLOCK - 1 : 28;
                    else
                        stMUD.CLOCK = (30 <= stMUD.CLOCK) ? stMUD.CLOCK - 2 : 28;
                    
                    Set_H_Position();
                    Set_Clock();
                }                    
                Save_MUD(ucMode_Curr);
                OSD_Slider(7, 5, 14, stMUD.CLOCK - 28, 200, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;
            case PAGE1_ITEM_PHASE :
                stMUD.PHASE     &= 0x7c;
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if (0x7c <= stMUD.PHASE)    break;

                    stMUD.PHASE += 4;
                }
                else
                {
                    if (0x00 == stMUD.PHASE)    break;

                    stMUD.PHASE -= 4;
                }
                Set_Phase(stMUD.PHASE);
                Save_MUD(ucMode_Curr);
                OSD_Slider(7, 5, 14, (stMUD.PHASE & 0x7c) >> 2, 31, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;
            case PAGE1_ITEM_SHARP :
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if (5 <= ucOSD_Item_Index1)     break;
                    ucOSD_Item_Index1 = (5 <= ucOSD_Item_Index1) ? 1 : (ucOSD_Item_Index1 + 1);   
                }
                else
                {
                    if (1 >= ucOSD_Item_Index1)     break;
                    ucOSD_Item_Index1 = (1 >= ucOSD_Item_Index1) ? 5 : (ucOSD_Item_Index1 - 1);   
                }

                stGUD1.FILTER    = ucOSD_Item_Index1 - 1;
                Sharpness();
                Save_GUD1();
                RTDCodeW( (0 == ucOSD_Item_Index1)? OSD_ENTER_B_Atb : OSD_ENTER_R_Atb);
                RTDCodeW((1 == ucOSD_Item_Index1) ? OSD_Sharp_1 : (2 == ucOSD_Item_Index1) ? OSD_Sharp_2
                        : (3 == ucOSD_Item_Index1) ? OSD_Sharp_3 : (4 == ucOSD_Item_Index1) ? OSD_Sharp_4 : OSD_Sharp_5); 
                break;
            case PAGE1_ITEM_VOLUME :
#if (AUDIO_TYPE != AUDIO_NONE)
                if (NOTIFY_RIGHT_KEY == action)
                {
                    if (0x00 == stGUD3.VOLUME)      break;

                    stGUD3.VOLUME   = stGUD3.VOLUME - 1;
                }
                else
                {
                    if (0x1f <= stGUD3.VOLUME)      break;

                    stGUD3.VOLUME   = stGUD3.VOLUME + 1;
                }
#endif
                SetVolume();
                Save_GUD3();
                OSD_Slider(7, 5, 14, 0x1f - stGUD3.VOLUME, 0x1f, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;
            case PAGE1_ITEM_OSDT :
                if (NOTIFY_RIGHT_KEY == action)
                {
                    stGUD1.OSD_TIMEOUT = (stGUD1.OSD_TIMEOUT == 60) ? 60 : stGUD1.OSD_TIMEOUT + 1;
                }
                else
                {
                    stGUD1.OSD_TIMEOUT = (stGUD1.OSD_TIMEOUT == 5) ? 5 : stGUD1.OSD_TIMEOUT - 1;
                }

#if(IRPOLLING)
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
                Save_GUD1();
                OSD_Slider(7, 5, 14, stGUD1.OSD_TIMEOUT, 60, (0 == ucOSD_Item_Index1) ? 0X01 : 0X04);
                break;                

            }
        }
        else
        {
            if (NOTIFY_RIGHT_KEY == action)
                ucOSD_Item_Index0   = (PAGE1_ITEM_NUM == ucOSD_Item_Index0) ? 1 : (ucOSD_Item_Index0 + 1);
            else
                ucOSD_Item_Index0   = (1 == ucOSD_Item_Index0) ? PAGE1_ITEM_NUM : (ucOSD_Item_Index0 - 1);
                
            Show_Page1();
        }
        break;
        
    case NOTIFY_AUTO_KEY :
        if (0 == ucOSD_Item_Index1)
        {
            ucOSD_Page_Index    = 0;
            ucOSD_Item_Index0   = 0;
            ucOSD_Item_Index1   = 0;
            ucOSD_Item_Index2   = 0;  
            RTDCodeW(OSD_Reset);            
        }
        else
        {
            ucOSD_Item_Index1   = 0;                
            Show_Page1();
        }
        break;



    case NOTIFY_SHOW :
        OSD_Position();
        OSD_Clear(0, 12, 0, 29);
        RTDCodeW(OSD_Enable);
        Show_Page1();
        break;

    default :
        // We don't handle other messages
        break;
    }
}


#define PAGE2_ITEM_NUM     6
#define PAGE2_ITEM_NONE    0
#define PAGE2_ITEM_6500    1
#define PAGE2_ITEM_7800    2
#define PAGE2_ITEM_9300    3
#define PAGE2_ITEM_USER    4
#define PAGE2_ITEM_AUTO    5
#define PAGE2_ITEM_EXIT    6

#define PAGE2B_ITEM_NUM     4
#define PAGE2B_ITEM_NONE    0
#define PAGE2B_ITEM_RED     1
#define PAGE2B_ITEM_GREEN   2
#define PAGE2B_ITEM_BLUE    3
#define PAGE2B_ITEM_EXIT    4

void OSD_Proc2(unsigned char action)
{
    switch (action)
    {
    case NOTIFY_ENTER_KEY :
        if (ucOSD_Item_Index1)
        {
            if (ucOSD_Item_Index2)
            {
                ucOSD_Item_Index2   = 0;  
                RTDCodeW(OSD_Page2_Atb);
                RTDCodeW((unsigned char *)OSD_Page2_TABLE[ucOSD_Item_Index0 - 1]);
                RTDCodeW((unsigned char *)OSD_Page2B_TABLE[ucOSD_Item_Index1 - 1]);
                OSD_Slider(4, 4, 17, stGUD4.u_R, 100, 0X04);
                OSD_Slider(5, 4, 17, stGUD4.u_G, 100, 0X02);
                OSD_Slider(6, 4, 17, stGUD4.u_B, 100, 0X01);
            }
            else
            {
                if (ucOSD_Item_Index1 == 4)
                {
                    ucOSD_Item_Index0 = 4;
                    ucOSD_Item_Index1 = 0;
                    ucOSD_Item_Index2 = 0;
                    RTDCodeW(OSD_Page2_Atb);
                    RTDCodeW(OSD_Page2_User_Atb);
                    OSD_Slider(4, 4, 17, stGUD4.u_R, 100, 0x04);
                    OSD_Slider(5, 4, 17, stGUD4.u_G, 100, 0x02);
                    OSD_Slider(6, 4, 17, stGUD4.u_B, 100, 0x01);                    
                    Save_GUD0();
                    return;
                }    
                else
                {
                    ucOSD_Item_Index2   = 1;  
                }
                
                switch (ucOSD_Item_Index1)
                {
                case PAGE2B_ITEM_RED :
                    RTDCodeW(OSD_Page2B_RED_Atb);
                    OSD_Slider(4, 4, 17, stGUD4.u_R, 100, 0x47);
                    break;
                case PAGE2B_ITEM_GREEN :
                    RTDCodeW(OSD_Page2B_GREEN_Atb);
                    OSD_Slider(5, 4, 17, stGUD4.u_G, 100, 0x27);
                    break;                    
                case PAGE2B_ITEM_BLUE :
                    RTDCodeW(OSD_Page2B_BLUE_Atb);
                    OSD_Slider(6, 4, 17, stGUD4.u_B, 100, 0x17);
                    break;
                default:
                    break;
                }
            }
        }
        else
        {
            if (PAGE2_ITEM_EXIT == ucOSD_Item_Index0)
            {
                ucOSD_Page_Index    = 1;
                ucOSD_Item_Index0   = 9;
                ucOSD_Item_Index1   = 0;
                ucOSD_Item_Index2   = 0;
            }
            else if (MODE_NOSIGNAL != ucMode_Curr && MODE_NOSUPPORT != ucMode_Curr)
            {

                switch (ucOSD_Item_Index0)
                {
                case PAGE2_ITEM_6500 :
                    Show_Page2();
                    stGUD1.INPUT_SOURCE = ( stGUD1.INPUT_SOURCE & 0xe7) | 0x10;  
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD1();
                    break;
                case PAGE2_ITEM_7800 :
                    Show_Page2();
                    stGUD1.INPUT_SOURCE = ( stGUD1.INPUT_SOURCE & 0xe7) | 0x08;  
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD1();
                    break;
                case PAGE2_ITEM_9300 :
                    Show_Page2();
                    stGUD1.INPUT_SOURCE = ( stGUD1.INPUT_SOURCE & 0xe7) | 0x00;  
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD1();
                    break;                                        
                case PAGE2_ITEM_USER :
                    ucOSD_Item_Index1   = 1;
                    Show_Page2();
                    stGUD1.INPUT_SOURCE = ( stGUD1.INPUT_SOURCE & 0xe7) | 0x18;                      
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD1();
                    break;
                case PAGE2_ITEM_AUTO :
                    if (ERROR_INPUT == Auto_Balance())
                    {
                        ucMode_Curr = MODE_OSDFORCE;
                        return;
                    }
                    break;
                }
            }
        }
        break;

    case NOTIFY_RIGHT_KEY :     // Right-key to Increase; Left-key to Decrease
    case NOTIFY_LEFT_KEY :
        if (ucOSD_Item_Index1)
        {
            if (ucOSD_Item_Index2)
            {
                switch (ucOSD_Item_Index1)
                {
                case 1 :
                    if (NOTIFY_RIGHT_KEY == action)
                    {
                        if (100 <= stGUD4.u_R)   return;

                        if (KEY_TURBO_ENABLE > ucKey_Issued)
                            stGUD4.u_R   = 100 > stGUD4.u_R ? stGUD4.u_R + 1 : 100;
                        else
                            stGUD4.u_R   = 99 > stGUD4.u_R ? stGUD4.u_R + 2 : 100;
                    }
                    else
                    {
                        if (0 == stGUD4.u_R)     return;

                        if (KEY_TURBO_ENABLE > ucKey_Issued)
                            stGUD4.u_R   = 0 < stGUD4.u_R ? stGUD4.u_R - 1 : 0;
                        else
                            stGUD4.u_R   = 1 < stGUD4.u_R ? stGUD4.u_R - 2 : 0;
                    }
                    OSD_Slider(4, 4, 17, stGUD4.u_R, 100, 0x47);
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD4();                    
                    break;
                case 2 :
                    if (NOTIFY_RIGHT_KEY == action)
                    {
                        if (100 <= stGUD4.u_G)   return;

                        if (KEY_TURBO_ENABLE > ucKey_Issued)
                            stGUD4.u_G   = 100 > stGUD4.u_G ? stGUD4.u_G + 1 : 100;
                        else
                            stGUD4.u_G   = 99 > stGUD4.u_G ? stGUD4.u_G + 2 : 100;
                    }
                    else
                    {
                        if (0 == stGUD4.u_G)     return;

                        if (KEY_TURBO_ENABLE > ucKey_Issued)
                            stGUD4.u_G   = 0 < stGUD4.u_G ? stGUD4.u_G - 1 : 0;
                        else
                            stGUD4.u_G   = 1 < stGUD4.u_G ? stGUD4.u_G - 2 : 0;
                    }
                    OSD_Slider(5, 4, 17, stGUD4.u_G, 100, 0x27);
                    Set_Bright_Contrast();
                    Save_GUD0();
                    Save_GUD4();                    
                    break;
                case 3 :
                    if (NOTIFY_RIGHT_KEY == action)
                    {
                        if (100 <= stGUD4.u_B)   return;

                        if (KEY_TURBO_ENABLE > ucKey_Issued)
                            stGUD4.u_B   = 100 > stGUD4.u_B ? stGUD4.u_B + 1 : 100;
                        else
                            stGUD4.u_B   = 99 > stGUD4.u_B ? stGUD4.u_B + 2 : 100;
                    }
                    else
                    {
                        if (0 == stGUD4.u_B)     return;

⌨️ 快捷键说明

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