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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tirthomson.c.svn-base

?? 最新火熱的CX32 源代碼
?? SVN-BASE
字號(hào):
 /**
 *  This code and information is part of Trident DPTV API (TDAPI)
 *
 *  Copyright (C) Trident Multimedia Technologies (Shanghai) Co., Ltd.
 *         2002 - 2003  All rights reserved.
 *
 *  This file provides functions for TV or demoboard remote controller.
 *
 *  Revision:
 *  03/04/2004     Modify RC5 part(decode & repeat) by Max and Joy
 *  04/18/2003     Added repeat key support by Archie
 *  08/01/2002     Created by Rick, York, Joy and Archie
 *
 */
#include "tdefs.h"
#include "tio.h"
#include "tutils.h"
#include "tvkey.h"
#include "tRemote.h"

#include "thilevel.h"
#include "ttimer.h"

/*remote flag*/
static Byte s_ucRemoteFlag = 0;
static Void tdRemoteCodeDetect(Byte ucRemoteCode);

/*the following two global variables are used by remote routines*/

static Gdata struct tagRemoteData
{
    Byte ucRemoteTemp;
   	Byte ucRemoteShift;
   	Byte ucToggelBit;   
    Byte ucPreviousCountVal;     /*timer count value of last time*/
    Byte ucSystemCode;
    Byte ucRemoteCode;
    Byte ucOffset;
    Byte ucKeyNum;
} s_RemoteData;

static Void tdIRThomson1msTimer(Void)
{
    if (t_RemoteData.wCount == t_RemoteData.wFirstDelay)
    {
        tdAddVirtualKey(s_RemoteData.ucRemoteCode);
        t_RemoteData.wCount--;
    } else if (t_RemoteData.wCount) 
    {
        t_RemoteData.wCount--;
        if (tdTestValBitTrue(s_ucRemoteFlag, _RF_TM_LEADERCODE_))
        {  
            if (t_RemoteData.wCount == 0)
            {
                tdAddVirtualKey(s_RemoteData.ucRemoteCode /*| _VK_STATUS_DOWN_*/);
                tdClearValBit(s_ucRemoteFlag, _RF_TM_LEADERCODE_);
                t_RemoteData.wCount = t_RemoteData.wRepeatDelay - 1;
            }
        } 
    }
}

static Byte tdGetTimeInterval(Byte ucCurrentCountVal)
{
    /* when the INT0 interrupt the timer interrupt service */
    if (!ucCurrentCountVal)
        ucCurrentCountVal = tdLoadInitTimerCount();
        
#ifdef _TIMERCOUNT_DOWN_        
    if (ucCurrentCountVal < s_RemoteData.ucPreviousCountVal)
        ucCurrentCountVal =  s_RemoteData.ucPreviousCountVal - ucCurrentCountVal;
    else
    	ucCurrentCountVal = s_RemoteData.ucPreviousCountVal + tdGetTimerBInterval() - ucCurrentCountVal;
#else
    if (ucCurrentCountVal >= s_RemoteData.ucPreviousCountVal)
        ucCurrentCountVal =  ucCurrentCountVal - s_RemoteData.ucPreviousCountVal;
    else
        ucCurrentCountVal =  ucCurrentCountVal + tdGetTimerBInterval() - s_RemoteData.ucPreviousCountVal;
#endif  
    return ucCurrentCountVal;
}

static Void tdIRThomsonService(Void)
{                      
    IByte ucRemoteCode;
    IByte ucCurrentCountVal;
    
    ucCurrentCountVal =  tdGetTimerBCurrentCount();
    
#ifdef _TIMERCOUNT_DOWN_        
    if(ucCurrentCountVal > tdLoadInitTimerCount()) 
#else
    if(ucCurrentCountVal < tdLoadInitTimerCount()) 
#endif
        ucCurrentCountVal = tdLoadInitTimerCount();
    tdClearInterruptPend();
    ucRemoteCode = tdGetTimeInterval(ucCurrentCountVal);
    s_RemoteData.ucPreviousCountVal = ucCurrentCountVal;    
    tdRemoteCodeDetect(ucRemoteCode);    /* Analyse remote key */ 
}

static Void tdRemoteCodeDetect(Byte ucRemoteCode)
{
    IByte ucIndex;
    IByte ucToggel;
    static IByte ucRemoteToggle = 3;
    if(tdTestValBitTrue(s_ucRemoteFlag, _RF_TM_STARTED_))
    {
        if((pThomsonRemote->Remote_Code_0_Min <= ucRemoteCode) && (ucRemoteCode <= pThomsonRemote->Remote_Code_0_Max)) 
        {
            //Check if code "0".
            tdLeftShift1(s_RemoteData.ucRemoteShift);
            tdLeftShift1(s_RemoteData.ucRemoteTemp);        
        }else
        {
            if((pThomsonRemote->Remote_Code_1_Min <= ucRemoteCode) && ( ucRemoteCode <= pThomsonRemote->Remote_Code_1_Max))   /*code 1*/
            {
                //Check if code "1".
                tdLeftShift1(s_RemoteData.ucRemoteTemp);
                s_RemoteData.ucRemoteTemp += 1;
                tdLeftShift1(s_RemoteData.ucRemoteShift);        
            }else
            {
                //if error remote code,do not translate, and recheck the sync head pulse.
                tdClearValBit(s_ucRemoteFlag, (_RF_TM_STARTED_|_RF_TM_SYSTEMCODE_|_RF_TM_DATABITS_ | _RF_TM_TOGGELBITS_));
                goto detect_head;
            }
        }
        if(tdTestValBitTrue(s_ucRemoteFlag, _RF_TM_SYSTEMCODE_))
        {
            if(s_RemoteData.ucRemoteShift == 1 << pThomsonRemote->System_Bit_Num)
            {
                if(s_RemoteData.ucRemoteTemp != pThomsonRemote->RemoteKeySet[0].ucSystemCode)
                {
                    tdClearValBit(s_ucRemoteFlag, _RF_TM_STARTED_|_RF_TM_SYSTEMCODE_);
                    goto detect_head;
                }
                tdClearValBit(s_ucRemoteFlag, _RF_TM_SYSTEMCODE_);
                tdSetValBit(s_ucRemoteFlag, _RF_TM_TOGGELBITS_);
                s_RemoteData.ucRemoteTemp = 0;
                s_RemoteData.ucRemoteShift =REMOTE_SHIFT_START;
            }
            return;
        }
 
        //Process toggelbits.
        if(tdTestValBitTrue(s_ucRemoteFlag, _RF_TM_TOGGELBITS_))
        {
            if(ucRemoteToggle == s_RemoteData.ucRemoteTemp)
            {
                ucToggel = 0;
            }else
            {
                ucToggel = 1;			
                ucRemoteToggle = s_RemoteData.ucRemoteTemp;
            }
            s_RemoteData.ucRemoteTemp = 0;
            s_RemoteData.ucRemoteShift = REMOTE_SHIFT_START;
            tdClearValBit(s_ucRemoteFlag, _RF_TM_TOGGELBITS_);
            tdSetValBit(s_ucRemoteFlag, _RF_TM_DATABITS_);
             return;
        }
        
        //Process databits.
        if(tdTestValBitTrue(s_ucRemoteFlag, _RF_TM_DATABITS_))
        {
            if(s_RemoteData.ucRemoteShift == 0x80)
            {				 		
                ucIndex = 0;
                while ((*((RPByte)pThomsonRemote + pThomsonRemote->RemoteKeySet[0].ucKeySetOffset + ucIndex) != (s_RemoteData.ucRemoteTemp & 0x7F)) && (ucIndex < 2 * pThomsonRemote->RemoteKeySet[0].ucKeyNum))
                {
                    ucIndex += 2;
                }
                if(ucIndex < pThomsonRemote->RemoteKeySet[0].ucKeyNum)
                {
                     s_RemoteData.ucRemoteTemp = *((RPByte)pThomsonRemote + pThomsonRemote->RemoteKeySet[0].ucKeySetOffset + ucIndex + 1);      /*set repeat data*/
              	     if(ucToggel == 1 ||(ucToggel == 0 && s_RemoteData.ucRemoteTemp != s_RemoteData.ucRemoteCode)/*&& s_RemoteData.ucRemoteTemp != s_RemoteData.ucRemoteCode*/ )
              	     {
                         t_RemoteData.wCount = t_RemoteData.wFirstDelay;
																        s_RemoteData.ucRemoteCode = s_RemoteData.ucRemoteTemp;		
              	     }else if(ucToggel == 0 && s_RemoteData.ucRemoteTemp == s_RemoteData.ucRemoteCode)
              	     {
                         tdSetValBit(s_ucRemoteFlag, _RF_TM_LEADERCODE_);
                         if(t_RemoteData.wCount == 0)
                         {
                             t_RemoteData.wCount = 1;
                         }
              	     }      
                }
                tdClearValBit(s_ucRemoteFlag, _RF_TM_DATABITS_ |_RF_TM_STARTED_ |_RF_TM_SYSTEMCODE_);
            }
            return;
        }
    }
detect_head:
    if(100 <= ucRemoteCode)
    {
        s_RemoteData.ucRemoteTemp = 0;
        s_RemoteData.ucRemoteShift = REMOTE_SHIFT_START;
        tdSetValBit(s_ucRemoteFlag, (_RF_TM_STARTED_|_RF_TM_SYSTEMCODE_));
    }		
}

Code RemoteControllerDriver f_IRThomsonDriver = 
{
    tdIRThomson1msTimer, tdIRThomsonService
};

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91成人看片片| 精品国产一区二区三区忘忧草| 蜜桃一区二区三区在线观看| 久久综合狠狠综合久久综合88| 一区二区在线电影| 欧美高清视频一二三区 | 国产亚洲一二三区| 欧美探花视频资源| 国产美女视频一区| 免费美女久久99| 亚洲一二三区不卡| 国产精品久久久久久福利一牛影视| 成人禁用看黄a在线| 免费人成黄页网站在线一区二区| 日韩视频免费观看高清在线视频| 麻豆91精品91久久久的内涵| 玉米视频成人免费看| 日本一区二区三区在线不卡| 日韩免费观看高清完整版在线观看| 毛片av一区二区| 亚洲综合网站在线观看| 中文字幕欧美日韩一区| 久久亚洲欧美国产精品乐播| 欧美一卡二卡三卡四卡| 欧美乱妇一区二区三区不卡视频| 男女男精品视频网| 婷婷六月综合亚洲| 亚洲影视资源网| 亚洲黄色录像片| 亚洲摸摸操操av| 亚洲女人****多毛耸耸8| 欧美激情一区二区三区| 国产日韩欧美综合一区| 久久无码av三级| 久久综合狠狠综合久久激情| 精品久久国产老人久久综合| 这里是久久伊人| 91精品国产欧美日韩| 欧美一区二区性放荡片| 欧美一区二区三区系列电影| 91精品久久久久久久91蜜桃| 欧美日韩国产高清一区| 欧美乱妇20p| 欧美一区二区三区四区在线观看| jizz一区二区| 成人激情动漫在线观看| av午夜精品一区二区三区| 99精品偷自拍| 在线看日本不卡| 欧美日韩国产电影| 精品国产伦一区二区三区免费| 91视频xxxx| 欧美亚洲日本国产| 91麻豆精品国产91久久久资源速度 | 欧美日韩大陆在线| 91精品免费在线观看| 欧美r级电影在线观看| 2021中文字幕一区亚洲| 26uuu色噜噜精品一区二区| 国产亚洲成年网址在线观看| 亚洲欧美中日韩| 亚洲夂夂婷婷色拍ww47| 日韩成人免费看| 国产一区二区看久久| aa级大片欧美| 欧美午夜理伦三级在线观看| 欧美一区二区二区| 国产婷婷色一区二区三区四区| 911国产精品| 久久精品夜色噜噜亚洲aⅴ| 亚洲天堂2014| 美女mm1313爽爽久久久蜜臀| 国产成人综合自拍| av一二三不卡影片| 欧美日本在线视频| 久久精品亚洲精品国产欧美kt∨| 欧美乱熟臀69xxxxxx| 精品国产自在久精品国产| 欧美国产一区在线| 亚洲一区二区三区四区在线| 另类的小说在线视频另类成人小视频在线| 亚洲欧美另类小说视频| 午夜影院在线观看欧美| 国产精品一品视频| 欧美网站一区二区| 国产欧美日韩精品一区| 亚洲一区二区三区四区五区中文| 亚洲欧美另类小说视频| 老司机精品视频线观看86| 99国产精品久久| 精品国产一二三| 亚洲精品久久久蜜桃| 国内不卡的二区三区中文字幕 | 精品视频一区二区不卡| 欧美成人伊人久久综合网| 亚洲欧美日韩久久| 国产在线一区二区综合免费视频| 激情伊人五月天久久综合| 91色视频在线| 久久综合色8888| 一区二区三区 在线观看视频| 亚洲va中文字幕| 不卡视频一二三四| 精品国产乱码久久久久久夜甘婷婷| 日韩一区二区免费视频| 亚洲色图.com| 成人免费福利片| 精品国产乱码久久久久久夜甘婷婷 | 综合激情成人伊人| 国产在线一区二区| 欧美精品黑人性xxxx| 伊人开心综合网| 不卡视频在线看| 国产欧美精品一区二区色综合 | 国产天堂亚洲国产碰碰| 日本视频一区二区三区| 欧日韩精品视频| 亚洲国产精品99久久久久久久久| 亚洲久本草在线中文字幕| 国产一二三精品| 欧美白人最猛性xxxxx69交| 午夜欧美2019年伦理| 色综合久久精品| 亚洲三级小视频| 99国产精品久久久久久久久久 | 国产日产欧美一区二区视频| 美女视频第一区二区三区免费观看网站| 日韩av一区二| 在线电影一区二区三区| 亚洲美女区一区| 91啦中文在线观看| 国产精品黄色在线观看| 成人午夜电影久久影院| 久久综合九色综合久久久精品综合| 亚洲色图丝袜美腿| 91免费视频网| 一区二区三区久久久| 91在线你懂得| 久久99精品久久久久久动态图| 99久精品国产| 亚洲日本在线天堂| 91丝袜美腿高跟国产极品老师| 91.成人天堂一区| 美女mm1313爽爽久久久蜜臀| 日韩欧美中文一区| 精品一区二区在线看| 久久综合色之久久综合| 国产高清精品久久久久| 国产精品国产三级国产普通话蜜臀| 国产91精品露脸国语对白| 久久男人中文字幕资源站| 国产综合色在线视频区| 国产免费久久精品| 日本韩国欧美一区二区三区| 亚洲综合激情另类小说区| 欧美日韩免费在线视频| 久久激五月天综合精品| 国产婷婷精品av在线| 91蜜桃网址入口| 亚洲成人动漫一区| 日韩一区二区精品葵司在线| 国产盗摄视频一区二区三区| 亚洲欧洲无码一区二区三区| 欧美专区亚洲专区| 美女精品一区二区| 中文字幕中文字幕中文字幕亚洲无线| 久久超碰97中文字幕| wwwwww.欧美系列| 91麻豆精品在线观看| 午夜精品aaa| 国产日韩欧美不卡| 91丨国产丨九色丨pron| 爽爽淫人综合网网站| 久久久久久久久久久久久女国产乱 | 蜜臀av亚洲一区中文字幕| 日韩精品中午字幕| av色综合久久天堂av综合| 天堂成人免费av电影一区| 久久九九久精品国产免费直播| 国内精品写真在线观看| 亚洲美女电影在线| 精品免费国产二区三区| 91丨porny丨户外露出| 免费在线看成人av| 综合自拍亚洲综合图不卡区| 精品日韩欧美一区二区| 色综合网站在线| 狠狠色丁香九九婷婷综合五月| 日韩欧美色综合| 91色视频在线| 国产在线一区观看| 日日摸夜夜添夜夜添亚洲女人| 欧美性色黄大片| 国产激情视频一区二区三区欧美| 欧美成人性战久久| 欧美亚洲国产bt| 成人福利视频网站| 麻豆成人久久精品二区三区红| 日韩欧美国产1| 91电影在线观看|