亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lcd_msg.c

?? keil c51平臺,此代碼可用于學習TFT LCD 之TCON,SCALER,OSD,(本人自己修改)
?? C
字號:
#define __MESSAGE__

#include "reg52.h"

#include "MAIN_DEF.H"
#include "CONFIG.H"
#include "ACCESS.H"
#include "LCD_FUNC.H"
#include "LCD_MSG.H"
#include "LCD_MAIN.H"
#include "LCD_OSD.H"
#include "MTV512.H"

unsigned char GetKeyState(void)
{
    unsigned char ucKeyState=0;

#if (IRPOLLING)
    {
        Data[0]   = (1 < ucIR_State) ? 0 : ucIR_Cmd[0];

        if (Data[0])
        {
            switch (Data[0])
            {
#if (POWER_KEY_TYPE == TYPE_ONE_TOUCH)
            // Only when power-key is one-touch style, you can use IR remote controller to switch power on/off
            case IR_POWER_KEY :     ucKeyState=ucKeyState|POWER_KEY_MASK;     break;//0x10
#endif
            // Use IR to implement standard key
            case IR_ENTER_KEY :     ucKeyState=ucKeyState|ENTER_KEY_MASK;     break;//0x02
            // Other IR function key
            default :        
                ucKeyState=ucKeyState|IR_KEY_MASK;

#if (VIDEO_CHIP != VDC_NONE)
                switch (Data[0])
                {
                case IR_FUNC_SOURCE :   Data[0] = NOTIFY_IR_SOURCE;     break;//0x1a
                case IR_FUNC_DISP :     Data[0] = NOTIFY_IR_DISP;       break;//0x1b
                case IR_FUNC_JUMP :     Data[0] = NOTIFY_IR_JUMP;       break;//0x1c
                case IR_FUNC_CHDEC :    Data[0] = NOTIFY_IR_CHDEC;      break;//0x1d
                case IR_FUNC_CHINC :    Data[0] = NOTIFY_IR_CHINC;      break;//0x1e
                case IR_FUNC_VOLINC :   Data[0] = NOTIFY_IR_VOLINC;     break;//0x1f
                case IR_FUNC_VOLDEC :   Data[0] = NOTIFY_IR_VOLDEC;     break;//0x20
                case IR_FUNC_MENU :     Data[0] = NOTIFY_IR_MENU;       break;//0x21
                case IR_FUNC_CHNUM :    Data[0] = NOTIFY_IR_CHNUM;      break;//0x22
                case IR_FUNC_MUTE :     Data[0] = NOTIFY_IR_MUTE;       break;//0x23
                case IR_FUNC_NUM0 :     Data[0] = NOTIFY_IR_NUM0;       break;//0x10
                case IR_FUNC_NUM1 :     Data[0] = NOTIFY_IR_NUM1;       break;//0x11
                case IR_FUNC_NUM2 :     Data[0] = NOTIFY_IR_NUM2;       break;//0x12
                case IR_FUNC_NUM3 :     Data[0] = NOTIFY_IR_NUM3;       break;//0x13
                case IR_FUNC_NUM4 :     Data[0] = NOTIFY_IR_NUM4;       break;//0x14
                case IR_FUNC_NUM5 :     Data[0] = NOTIFY_IR_NUM5;       break;//0x15
                case IR_FUNC_NUM6 :     Data[0] = NOTIFY_IR_NUM6;       break;//0x16
                case IR_FUNC_NUM7 :     Data[0] = NOTIFY_IR_NUM7;       break;//0x17
                case IR_FUNC_NUM8 :     Data[0] = NOTIFY_IR_NUM8;       break;//0x18
                case IR_FUNC_NUM9 :     Data[0] = NOTIFY_IR_NUM9;       break;//0x19
                case IR_LEFT_KEY  :     Data[0] = NOTIFY_IR_LEFT_KEY;   break;//0x19
                case IR_RIGHT_KEY :     Data[0] = NOTIFY_IR_RIGHT_KEY;  break;//0x19
                default :               ucKeyState  = 0;                break;
                }
#endif
                break;
            }
        }
    }//#if (IRPOLLING)
#endif

    if(!bRIGHT_KEY)
        ucKeyState=ucKeyState|RIGHT_KEY_MASK;
    if(!bLEFT_KEY)
	ucKeyState=ucKeyState|LEFT_KEY_MASK;
    if(!bENTER_KEY)
	ucKeyState=ucKeyState|ENTER_KEY_MASK;
    if(!bAUTO_KEY)
	ucKeyState=ucKeyState|AUTO_KEY_MASK;
    if(!bPOWER_KEY)
	ucKeyState=ucKeyState|POWER_KEY_MASK;

#if (KEY_TYPE == KEY_6)
    if(!bEXIT_KEY)
	ucKeyState=ucKeyState|EXIT_KEY_MASK;
#endif

#if (TV_CHIP != TV_NONE)
    if(!bCHINC_KEY)
	ucKeyState=ucKeyState|CHINC_KEY_MASK;
    if(!bCHDEC_KEY)
	ucKeyState=ucKeyState|CHDEC_KEY_MASK;
#endif

    return ucKeyState;
}

// Key_Trans() is used for generating key related messages, including OSD timout message.
// You can just issue the message or execute system default function, like changing input source.

// BE CAREFUL !! YOU CANNOT CHANGE ANY OSD STATUS REGISTERS OR CALL ANY OSD PROCESS HERE !!
// You should not expect OSD_Proc() can always receive your message.
// Because main program will shield OSD process from been triggered when input signal isn't stable,
// and terminate OSD process when input source is changed.
unsigned char Key_Trans()
{
    static unsigned char    idata   ucP3_Prev       = 0;
    static unsigned char    idata   ucP3_Curr       = 0;
    static unsigned char    idata   ucKey_Repeat    = 0;

    unsigned char   ucNotify    = NOTIFY_NONE;

    // Save the previous key status
    ucP3_Prev   = ucP3_Curr;
    // Sample the current key status
    ucP3_Curr   = GetKeyState();

#if (POWER_KEY_TYPE == TYPE_TWO_STATE)
    // We MUST handle power-key first.
    if (bPower_Status)
    {
        if (ucP3_Curr & POWER_KEY_MASK)
            ucP3_Curr   ^= POWER_KEY_MASK;  // Go further to handle other keys (and mask power-key)
        else
        {
            Delay_Xms(20);

            ucP3_Prev   = ucP3_Curr;
            ucP3_Curr   = GetKeyState();

            if (ucP3_Curr & POWER_KEY_MASK)
                ucP3_Curr   ^= POWER_KEY_MASK;  // Go further to handle other keys (and mask power-key)
            else
                return  NOTIFY_POWERDOWN;
        }
    }
    else
    {
        if (ucP3_Curr & POWER_KEY_MASK)
        {
            ucKey_Issued    = 0;

            Delay_Xms(20);

            ucP3_Prev   = ucP3_Curr;
            ucP3_Curr   = GetKeyState();

            if (ucP3_Curr & POWER_KEY_MASK)
                return NOTIFY_POWERUP;
            else
                return NOTIFY_NONE;
        }
        else
            return NOTIFY_NONE;
    }

#else   // POWER_KEY_TYPE is TYPE_ONE_TOUCH

    if (bPower_Status)
    {
        if (POWER_KEY_MASK & ucP3_Curr)
        {
            if ((ucP3_Prev ^ ucP3_Curr) & POWER_KEY_MASK)
            {
                Delay_Xms(20);

                ucP3_Curr   = GetKeyState();

                if ((ucP3_Prev ^ ucP3_Curr) & POWER_KEY_MASK)   
		{
#if (AUDIO_TYPE == AUDIO_SC7313)
    		    Data[0] = 4;
    		    Data[1] = ADDR_SC7313;
    		    Data[2] = 0xbf;                           // Front right  - mutedB  10111111b
    		    Data[3] = 0x9f;                           // Front left   - mutedB  10011111b
    		    I2CWrite(Data);
#endif
#if (AUDIO_TYPE == AUDIO_62429)					
	  	    bAUDIO_PD = 0;
#endif  
#if(OUTPUT_BUS == RSDS_TYPE)	//V230
		    RTDCodeW(RTD_PW12V_DOWN);
#endif		    
                    return NOTIFY_POWERDOWN;
                }    
                else
                    return NOTIFY_NONE;
            }
        }
    }
    else
    {
        if (POWER_KEY_MASK & ucP3_Curr)
        {
            if ((ucP3_Prev ^ ucP3_Curr) & POWER_KEY_MASK)
            {
                ucKey_Issued    = 0;

                Delay_Xms(20);

                ucP3_Curr   = GetKeyState();

                if ((ucP3_Prev ^ ucP3_Curr) & POWER_KEY_MASK)
		{
#if (AUDIO_TYPE == AUDIO_SC7313)
    		    Data[0] = 4;
    		    Data[1] = ADDR_SC7313;
    		    Data[2] = 0xb4;                           // Front right  - mutedB  10111111b
    		    Data[3] = 0x94;                           // Front left   - mutedB  10011111b
    		    I2CWrite(Data);
#endif
#if (AUDIO_TYPE == AUDIO_62429)					
	  	    bAUDIO_PD = 1;
#endif                    
                    
                    return NOTIFY_POWERUP;
		}	
                else
                    return NOTIFY_NONE;
            }
            else
                return NOTIFY_NONE;
        }
    }

#endif

    // Generate Key Messages
    switch (ucP3_Curr)
    {
    case AUTO_KEY_MASK :
        if(ucOSD_Page_Index)
#if(IRPOLLING)
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif

        if ((ucP3_Prev ^ ucP3_Curr) & AUTO_KEY_MASK)
        {
            ucKey_Issued    = 0;
            ucNotify        = NOTIFY_AUTO_KEY;
        }
        break;

#if (KEY_TYPE == KEY_6)        
    case EXIT_KEY_MASK :
        if(ucOSD_Page_Index)
#if(IRPOLLING)
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    		usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
        if ((ucP3_Prev ^ ucP3_Curr) & EXIT_KEY_MASK)
        {
            ucKey_Issued    = 0;
            ucNotify        = NOTIFY_EXIT_KEY;
        }
        break;
#endif

    case CHINC_KEY_MASK :
#if(IRPOLLING)
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
        if ((ucP3_Prev ^ ucP3_Curr) & CHINC_KEY_MASK)
        {
            ucKey_Issued    = 0;
            ucNotify        = NOTIFY_CHINC_KEY;
            ucKey_Repeat    = KEY_REPEAT_COUNT;
        }
        else
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                if (KEY_TURBO_ENABLE > ucKey_Issued)
                {
                    ucKey_Issued    += 1;
                    ucKey_Repeat    = KEY_REPEAT_PERIOD;
                }
                else
                    ucKey_Repeat    = 0;

                ucNotify        = NOTIFY_CHINC_KEY;                     // Post CHINC-key repeat message
            }
        }
        break;
        
    case CHDEC_KEY_MASK :
#if(IRPOLLING)
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif        
        if ((ucP3_Prev ^ ucP3_Curr) & CHDEC_KEY_MASK)
        {
            ucKey_Issued    = 0;
            ucNotify        = NOTIFY_CHDEC_KEY;
            ucKey_Repeat    = KEY_REPEAT_COUNT;
        }
        else
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                if (KEY_TURBO_ENABLE > ucKey_Issued)
                {
                    ucKey_Issued    += 1;
                    ucKey_Repeat    = KEY_REPEAT_PERIOD;
                }
                else
                    ucKey_Repeat    = 0;

                ucNotify        = NOTIFY_CHDEC_KEY;                     // Post CHINC-key repeat message
            }
        }
        break;
   
    case ENTER_KEY_MASK :
        if ((ucP3_Prev ^ ucP3_Curr) & ENTER_KEY_MASK)
        {
            ucKey_Issued    = 0;
#if(IRPOLLING)
    	    usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	    usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
            ucNotify        = NOTIFY_ENTER_KEY;                         // Post enter-key pressed message
            ucKey_Repeat    = KEY_REPEAT_COUNT * 8;
        }
        else
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                if (ucOSD_Page_Index)
                {
                    usOSD_Timer = 0;
                    ucNotify    = NOTIFY_CLEAR_OSD;
                }
            }
        }
        break;
    
    case RIGHT_KEY_MASK :
#if(IRPOLLING)
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
            
        if ((ucP3_Prev ^ ucP3_Curr) & RIGHT_KEY_MASK)
        {
            ucKey_Issued    = 0;

            ucNotify        = NOTIFY_RIGHT_KEY;                         // Post right-key pressed message
            ucKey_Repeat    = KEY_REPEAT_COUNT;
        }
        else
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                if (KEY_TURBO_ENABLE > ucKey_Issued)
                {
                    ucKey_Issued    += 1;
                    ucKey_Repeat    = KEY_REPEAT_PERIOD;
                }
                else
                    ucKey_Repeat    = 0;

                ucNotify        = NOTIFY_RIGHT_KEY;                     // Post right-key repeat message
            }
        }
        break;
    
    case LEFT_KEY_MASK :
#if(IRPOLLING)
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
        if ((ucP3_Prev ^ ucP3_Curr) & LEFT_KEY_MASK)
        {
            ucKey_Issued    = 0;

            ucNotify        = NOTIFY_LEFT_KEY;                          // Post left-key pressed message
            ucKey_Repeat    = KEY_REPEAT_COUNT;
        }
        else
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                if (KEY_TURBO_ENABLE > ucKey_Issued)
                {
                    ucKey_Issued    += 1;
                    ucKey_Repeat    = KEY_REPEAT_PERIOD;
                }
                else
                    ucKey_Repeat    = 0;

                ucNotify        = NOTIFY_LEFT_KEY;                      // Post left-key repeat message
            }
        }
        break;

#if (IRPOLLING)
    case IR_KEY_MASK :
        usOSD_Timer         = (unsigned int)stGUD1.OSD_TIMEOUT * 51; 
        ucKey_Issued    = 0;
        if ((ucP3_Prev ^ ucP3_Curr) & IR_KEY_MASK)
        {
            ucNotify        = Data[0];                                      // Post IR-key pressed message
            ucKey_Repeat    = KEY_REPEAT_COUNT;
            if (NOTIFY_IR_VOLINC == Data[0] || NOTIFY_IR_VOLDEC == Data[0] || NOTIFY_IR_CHINC == Data[0] || NOTIFY_IR_CHDEC == Data[0] || NOTIFY_IR_RIGHT_KEY== Data[0] || NOTIFY_IR_LEFT_KEY== Data[0])
                ucIR_Cmd[1] = 1;
        }
        else if(NOTIFY_IR_VOLINC == Data[0] || NOTIFY_IR_VOLDEC == Data[0] || NOTIFY_IR_CHINC == Data[0] || NOTIFY_IR_CHDEC == Data[0] || NOTIFY_IR_RIGHT_KEY== Data[0] || NOTIFY_IR_LEFT_KEY== Data[0])
        {
            if (ucKey_Repeat)
                ucKey_Repeat    -= 1;
            else
            {
                ucNotify        = Data[0];
                ucKey_Repeat    = KEY_REPEAT_PERIOD;
            }
        }
        break;
#endif
    
    default :
        // No key or more than 1 key pressed. Post no message and reset key-repeat.
        ucKey_Repeat    = KEY_REPEAT_COUNT;
        ucKey_Issued    = 0;

#if (HIDDEN_PAGE)        
        // For triggering the hidden page
        if (0 == ucOSD_Page_Index && (RIGHT_KEY_MASK | LEFT_KEY_MASK) == ucP3_Curr)
        {    
            ucNotify    = NOTIFY_LR_KEY;
#if(IRPOLLING)
    	    usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 34;
#else
    	    usOSD_Timer	= (unsigned int)stGUD1.OSD_TIMEOUT * 51;
#endif
        }
#endif
        break;
    }

    return ucNotify;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品免费网站| 26uuu久久综合| 国产三级一区二区三区| 亚洲一区在线观看视频| 国产98色在线|日韩| 欧美一区中文字幕| 亚洲乱码国产乱码精品精的特点| 狠狠色丁香婷婷综合久久片| 欧美日韩国产乱码电影| 亚洲丝袜美腿综合| 成人国产亚洲欧美成人综合网 | 亚洲二区视频在线| 99re视频精品| 中文字幕不卡在线播放| 久久99国产精品成人| 欧美一区二区三区在线电影| 夜夜精品视频一区二区| aaa国产一区| 国产精品青草久久| 成人高清av在线| 国产日韩欧美制服另类| 国产高清久久久久| 欧美精品一区二| 青椒成人免费视频| 欧美一二三四在线| 秋霞电影网一区二区| 欧美三级资源在线| 午夜欧美2019年伦理| 欧美日韩精品三区| 天天色图综合网| 欧美精品18+| 日韩精品成人一区二区三区| 91精品国产91热久久久做人人| 日韩福利电影在线| 日韩精品一区二区在线观看| 久久精品国产久精国产| 欧美岛国在线观看| 国产一区欧美一区| 国产精品国产自产拍在线| 99久久99久久精品免费观看| 亚洲欧美日韩在线不卡| 在线观看视频欧美| 日本免费新一区视频| 精品国产乱码久久久久久久久| 国产一区日韩二区欧美三区| 欧美韩国日本综合| 一本色道久久综合亚洲91| 午夜视频一区二区三区| 欧美一卡二卡在线| 国产福利一区在线观看| 最新不卡av在线| 欧美日韩一区二区三区免费看| 免费久久99精品国产| 欧美精品一区二区三区高清aⅴ| 国产大片一区二区| 一区二区三区四区国产精品| 欧美高清你懂得| 国产精品1024| 亚洲一区电影777| 亚洲精品一区二区三区99| 成人av网站免费观看| 亚洲高清中文字幕| 久久久久99精品一区| 一本大道久久a久久综合| 秋霞午夜鲁丝一区二区老狼| 欧美高清在线精品一区| 欧美视频一区二| 国产精品99久久久久久久vr | 日本精品视频一区二区三区| 手机精品视频在线观看| 国产精品久久福利| 欧美一级久久久| 色婷婷久久久亚洲一区二区三区 | 久久综合精品国产一区二区三区| av成人老司机| 蜜臀久久久99精品久久久久久| 亚洲国产成人在线| 欧美一区二区三区喷汁尤物| 99在线精品视频| 久久99热国产| 日韩在线观看一区二区| 亚洲欧美日韩中文播放| 国产欧美综合在线观看第十页| 欧美人妖巨大在线| 色综合久久久久久久久| 丁香啪啪综合成人亚洲小说| 喷白浆一区二区| 亚洲成人在线免费| 亚洲另类春色国产| 中文字幕精品—区二区四季| 日韩一区二区三区观看| 欧美中文一区二区三区| 99久久99久久精品免费观看| 国产在线精品一区二区不卡了| 亚洲va天堂va国产va久| 亚洲人成网站影音先锋播放| 国产午夜精品在线观看| 欧美不卡在线视频| 51午夜精品国产| 欧美挠脚心视频网站| 色悠久久久久综合欧美99| 成人av高清在线| 成人的网站免费观看| 国产91清纯白嫩初高中在线观看| 蜜臀va亚洲va欧美va天堂| 亚洲福利一区二区| 亚洲一级电影视频| 亚洲小少妇裸体bbw| 亚洲精品少妇30p| 亚洲激情第一区| 亚洲精品国产高清久久伦理二区| 国产精品女主播av| 国产精品国产三级国产有无不卡| 国产精品视频麻豆| 国产精品久久久久久久浪潮网站 | 全国精品久久少妇| 日本美女一区二区| 美腿丝袜亚洲一区| 久久激情综合网| 激情综合色综合久久综合| 国产一区二区三区免费看| 国产91精品在线观看| 高清不卡一区二区| 99麻豆久久久国产精品免费优播| 风间由美一区二区三区在线观看| 夫妻av一区二区| 97国产精品videossex| 欧美系列在线观看| 制服丝袜中文字幕亚洲| 精品日韩av一区二区| 久久精品一区二区| 国产精品国产三级国产a | 国产精品一区二区男女羞羞无遮挡| 狠狠色丁香婷综合久久| 波多野结衣在线一区| 91色在线porny| 欧美久久久久久蜜桃| 精品国产91久久久久久久妲己| 久久青草国产手机看片福利盒子 | 中文字幕一区二区三区不卡在线 | 精品国产电影一区二区| 国产婷婷一区二区| 亚洲女与黑人做爰| 日本中文字幕不卡| 国产91精品精华液一区二区三区 | 成人app软件下载大全免费| 欧美综合久久久| 精品成人私密视频| 亚洲人成人一区二区在线观看| 丝袜亚洲另类欧美综合| 成人免费黄色在线| 欧美日韩小视频| 中文字幕第一页久久| 亚洲成人tv网| 成人动漫一区二区在线| 538prom精品视频线放| 中文字幕欧美三区| 亚洲v中文字幕| 成人午夜电影网站| 欧美日韩免费电影| 中文字幕亚洲区| 蜜臀va亚洲va欧美va天堂| av在线不卡免费看| 日韩一区二区三区高清免费看看| 中文字幕一区av| 国内精品免费在线观看| 欧美精品一级二级| 亚洲色图清纯唯美| 国产精品77777| 日韩一区二区三区四区| 一区二区三区久久久| 成人激情免费视频| 精品久久国产老人久久综合| 亚洲成人av在线电影| 91网站最新地址| 国产三级精品视频| 激情综合色播五月| 欧美一卡2卡3卡4卡| 亚洲一区二区偷拍精品| 不卡视频一二三| 国产亚洲人成网站| 免费视频最近日韩| 欧美片在线播放| 亚洲综合色在线| 在线观看视频一区二区| 亚洲精品欧美在线| 99精品久久久久久| 中文字幕一区三区| www.成人网.com| 国产精品久久久久久妇女6080 | 国产伦精品一区二区三区免费| 欧美日韩国产a| 亚洲第一av色| 欧美丰满一区二区免费视频| 亚洲午夜久久久久中文字幕久| 99久久国产免费看| 亚洲人成人一区二区在线观看| 99久久伊人精品| 亚洲精品久久久蜜桃| 91老师片黄在线观看|