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

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

?? tuner.c

?? 這是DVB tuner驅動部分和其它相關的源碼和一些技術資料文檔.
?? C
?? 第 1 頁 / 共 4 頁
字號:
        }        /* Process the next step based on the current scan status */        switch (Tuner_p->TunerInfo.Status)        {            /* "scanning" - we must process a new scan step */            case STTUNER_STATUS_SCANNING:                if (Tuner_p->ScanExact)                {                    Error = ProcessScanExact(Tuner_p, &Event);                    /* Since we are scanning for a single frequency,                     * unless we get the locked event we should treat                     * this as scan failed.                     */                    if (Event != STTUNER_EV_LOCKED)                        Event = STTUNER_EV_SCAN_FAILED;                }                else                {                    Error = ProcessNextScan(Tuner_p, &Event);                }                break;            /* In the "locked" case we have a frequency that we must attempt             * to maintain, or track.             */            case STTUNER_STATUS_LOCKED:                Error = ProcessTracking(Tuner_p, &Event);                /* Only process thresholds if the lock wasn't lost */                if (Event == STTUNER_EV_NO_OPERATION)                    Error = ProcessThresholds(Tuner_p, &Event);                break;            /* "not found" or "unlocked" cases require no further action.             * The scan task will have to wait for user intervention.             */            case STTUNER_STATUS_UNLOCKED:                /* Check the last status to ensure that the state hasn't                 * been changed externally e.g., scan aborted.                 */                if (Tuner_p->CurrentTunerInfo.Status == STTUNER_STATUS_SCANNING)                {                    Event = STTUNER_EV_SCAN_FAILED;                    break;                }                else if (Tuner_p->CurrentTunerInfo.Status == STTUNER_STATUS_LOCKED)                {                    Event = STTUNER_EV_UNLOCKED; /* Aborted scan */                    break;                }                /* Fall through */            case STTUNER_STATUS_NOT_FOUND:                /* Fall through */            default:                Event = STTUNER_EV_NO_OPERATION;                break;        }        /* If an error has occurred, then we must end the scan now -- we can't         * recover from this condition.         */        if (Error != TUNER_NO_ERROR)        {#ifdef STTUNER_DEBUG            Tuner_p->BusErrorCount++;            STTBX_Report((STTBX_REPORT_LEVEL_ERROR,                          "Bus error count = %u.\n",                          Tuner_p->BusErrorCount));#endif            /* In the event of a bus error -- we should tidy up the current             * task appropriately.             */            if (Tuner_p->TunerInfo.Status == STTUNER_STATUS_SCANNING)                Event = STTUNER_EV_SCAN_FAILED;            else if (Tuner_p->TunerInfo.Status == STTUNER_STATUS_LOCKED)                Event = STTUNER_EV_UNLOCKED;        }        /* Check the outcome of the last operation */        switch (Event)        {            case STTUNER_EV_LOCKED:     /* We are now locked */                Tuner_p->CurrentTunerInfo.Status = STTUNER_STATUS_LOCKED;                Tuner_p->ScanInfo.LockCount = NUMBER_LOST_BEFORE_UNLOCK;                /* Reset signal indicators */                Tuner_p->LastThreshold = ((U32)-1); /* Undefined threshold */                Tuner_p->LastSignal = ((U32)-1); /* Undefined signal */                break;            case STTUNER_EV_UNLOCKED:   /* We have lost lock */                Tuner_p->CurrentTunerInfo.Status = STTUNER_STATUS_UNLOCKED;                break;            case STTUNER_EV_SCAN_FAILED: /* The last scan failed */                /* The end of the scan list has been reached -- we drop                 * to the "not found" status.  A callback may be invoked                 * soon.                 */                Tuner_p->CurrentTunerInfo.Status = STTUNER_STATUS_NOT_FOUND;                LNBPowerDown(Tuner_p);  /* Power down the LNB */                break;            case STTUNER_EV_TIMEOUT:                /* If a timeout occurs, we do not allow the scan to continue.                 * this is effectively the same as reaching the end of the                 * scan list -- we reset our status to "not found".                 */                Tuner_p->CurrentTunerInfo.Status = STTUNER_STATUS_NOT_FOUND;                break;            case STTUNER_EV_SIGNAL_CHANGE:                /* No action required.  The event will be processed in the                 * call back below...                 */                break;            default:                /* We must now proceed to the next scan step, if there is                 * one -- if there isn't a next scan step then a callback                 * might be invoked.                 */                if (Tuner_p->TunerInfo.Status == STTUNER_STATUS_SCANNING &&                    Tuner_p->ScanInfo.ScanIndex < Tuner_p->ScanList.NumElements)                {                    /* Proceed to the next element.  In order to avoid a                     * spurious callback being invoked -- we reset the event                     * to a "no op".                     */                    Tuner_p->ScanInfo.Scan_p++;                    Tuner_p->ScanInfo.ScanIndex++;                    /* Avoid task delay */                    semaphore_signal(&Tuner_p->ScanTask.TimeoutSemaphore);                }                Tuner_p->CurrentTunerInfo.Status = Tuner_p->TunerInfo.Status;                break;        }        /* Commit new tuner information -- the API level can now see it */        Tuner_p->TunerInfo = Tuner_p->CurrentTunerInfo;        /* Critical section end */        semaphore_signal(&Tuner_p->ScanTask.GuardSemaphore);        /* We may have to generate an event if a notify function is setup */        if (Tuner_p->OpenParams.NotifyFunction != NULL &&            Event != STTUNER_EV_NO_OPERATION)        {            Tuner_p->OpenParams.NotifyFunction(Tuner_p->Handle, Event, Error);        }        else if (Event != STTUNER_EV_NO_OPERATION)        {            STTUNER_EvtParams_t EventInfo;            /* Use the event handler to notify */            EventInfo.Handle = Tuner_p->Handle;            EventInfo.Error = Error;            Error = STEVT_Notify(Tuner_p->EVTHandle,                                 Tuner_p->EvtId[EventToId(Event)],                                 &EventInfo);#ifdef STTUNER_DEBUG            if (Error != ST_NO_ERROR)            {                STTBX_Report((STTBX_REPORT_LEVEL_ERROR,                              "STEVT error = %u.\n",                              Error));            }#endif        }    }    return;} /* ScanTask() *//*****************************************************************************Name: ProcessNextScan()Description:    This routine encapsulates the tuning strategy.Parameters:    Tuner_p,    pointer to the TUNER device.    Event_p,    pointer to location to store returned event.  May be:                STTUNER_EV_NO_OPERATION,    we failed to achieve tuner lock.                STTUNER_EV_LOCKED,          the tuner is locked on a frequency.Return Value:    TUNER_NO_ERROR,     the operation completed without error.    I2C_xxxx,           there was a problem accessing a device.See Also:    Nothing.*****************************************************************************/static TUNER_ErrorCode_t ProcessNextScan(TUNER_ControlBlock_t *Tuner_p,                                         STTUNER_EventType_t *Event_p){    TUNER_ErrorCode_t Error = TUNER_NO_ERROR;    /* Check to see if we are at the end of the scan list */    if (Tuner_p->ScanInfo.ScanIndex >= Tuner_p->ScanList.NumElements)    {        U32 FrequencyEnd, FrequencyStart;        /* Calculate correct start and end frequencies */        if (Tuner_p->ScanInfo.ScanDirection < 0)        {            FrequencyEnd = Tuner_p->ScanInfo.FrequencyStart;            FrequencyStart = Tuner_p->ScanInfo.FrequencyEnd;        }        else        {            FrequencyEnd = Tuner_p->ScanInfo.FrequencyEnd;            FrequencyStart = Tuner_p->ScanInfo.FrequencyStart;        }        /* Apply next frequency step */        Tuner_p->ScanInfo.NextFrequency +=            (Tuner_p->ScanInfo.ScanDirection *               (S32)Tuner_p->ScanInfo.FrequencyStep);        /* Set frequency step to default - in case we just had a large step */        Tuner_p->ScanInfo.FrequencyStep = (Tuner_p->SymbolWidthMin / 2);        /* If we've reached the limit of our frequency range, then we should try         * and use the next polarization setting -- if there is one.         */        if (Tuner_p->ScanInfo.NextFrequency > FrequencyEnd ||            Tuner_p->ScanInfo.NextFrequency < FrequencyStart)        {            /* Shift the polarization mask along to the next valid             * polarization.             */            do            {                Tuner_p->ScanInfo.PlrMask <<= 1;            }            while (Tuner_p->ScanInfo.PlrMask != 0 &&               (Tuner_p->ScanInfo.PlrMask & Tuner_p->PolarizationMask) == 0);            /* Check there are still polarizations to check */            if (Tuner_p->ScanInfo.PlrMask != 0)            {                Tuner_p->ScanInfo.NextFrequency =                    Tuner_p->ScanInfo.FrequencyStart;            }            else            {                /* No more combinations to try -- scan has failed */                *Event_p = STTUNER_EV_SCAN_FAILED;                return Error;            }        }        /* Set scan list to beginning */        Tuner_p->ScanInfo.Scan_p = Tuner_p->ScanList.ScanList;        Tuner_p->ScanInfo.ScanIndex = 0;    }    /* Process the next frequency scan step */    Error = ProcessScanExact(Tuner_p, Event_p);    return Error;} /* ProcessNextScan() *//*****************************************************************************Name: ProcessScanExact()Description:    This routine scans for a single frequency based on the current    tuner scan parameters.Parameters:    Tuner_p,    pointer to the TUNER device.    Event_p,    pointer to location to store returned event.  May be:        STTUNER_EV_NO_OPERATION,    we failed to achieve tuner lock.        STTUNER_EV_LOCKED,          the tuner is locked on a frequency.Return Value:    TUNER_NO_ERROR,     the operation completed without error.    I2C_xxxx,           there was a problem accessing a device.See Also:    Nothing.*****************************************************************************/static TUNER_ErrorCode_t ProcessScanExact(TUNER_ControlBlock_t *Tuner_p,                                          STTUNER_EventType_t *Event_p){    TUNER_ErrorCode_t Error = TUNER_NO_ERROR;    /* Assume no lock is found */    *Event_p = STTUNER_EV_NO_OPERATION;    /* Setup the current element -- this represents a working copy we can     * modify of the current element in the scan list -- on completion it     * will be made visible to the ST TUNER API.     */    Tuner_p->CurrentTunerInfo.ScanInfo = *Tuner_p->ScanInfo.Scan_p;#if 0    /* Check that the symbol rate is supported */    if (Tuner_p->CurrentTunerInfo.ScanInfo.SymbolRate >=        Tuner_p->Capability.SymbolMin &&        Tuner_p->CurrentTunerInfo.ScanInfo.SymbolRate <=        Tuner_p->Capability.SymbolMax)#endif    {        /* Mask with the capabilties of the device */        Tuner_p->CurrentTunerInfo.ScanInfo.Modulation &=            Tuner_p->Capability.Modulation;        /* Mask with current polarization mask */        Tuner_p->CurrentTunerInfo.ScanInfo.Polarization &=            Tuner_p->ScanInfo.PlrMask;        /* Check the LNB polarization is the current */        if (Tuner_p->CurrentTunerInfo.ScanInfo.Polarization != 0)        {            /* Proceed only if it is a valid band */            if (Tuner_p->CurrentTunerInfo.ScanInfo.Band <                Tuner_p->BandList.NumElements)            {                SAT_Config_t SatConfig;                U32 ScanFrequency;                U32 NewFrequency;                BOOL ScanSuccess = FALSE;                STTUNER_Band_t *Band_p;                DEMOD_FECRate_t Fec;                /* Set requested band */                Band_p = &Tuner_p->BandList.BandList[                         Tuner_p->CurrentTunerInfo.ScanInfo.Band                         ];                /* Ensure current frequency falls inside selected band */                if (Tuner_p->ScanInfo.NextFrequency >= Band_p->BandStart &&                    Tuner_p->ScanInfo.NextFrequency <= Band_p->BandEnd)                {                    /* Set the Satellite Dish LNB power to ON */                    SatConfig.LNBStatus = SAT_LNB_ON;                    /* Setup the Satellite Dish LNB Polarization */                    SatConfig.Polarization =                                            Tuner_p->CurrentTunerInfo.ScanInfo.Polarization;                    /* Setup the require tone state */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产乱码久久蜜臀| 免费的成人av| 国产不卡免费视频| 欧美国产日本韩| 国产酒店精品激情| 亚洲日本一区二区三区| 91麻豆蜜桃一区二区三区| 亚洲综合999| 欧美r级在线观看| 懂色中文一区二区在线播放| 国产黄色91视频| 丝袜美腿一区二区三区| 2020国产精品自拍| 一本大道综合伊人精品热热| 午夜精品久久久久久久| 国产欧美一区二区三区在线老狼| 欧美色中文字幕| 成人久久18免费网站麻豆| 视频一区中文字幕| 激情成人综合网| 亚洲成人www| 亚洲五码中文字幕| 成人欧美一区二区三区1314 | 欧美bbbbb| 国产精品综合一区二区三区| 成人免费的视频| 欧美综合一区二区三区| 国产成人精品一区二区三区网站观看| 国产在线精品一区二区不卡了| 午夜久久久久久久久| 日本aⅴ精品一区二区三区| 国产精品一区二区在线播放 | 成人一区在线看| 欧美中文字幕一区| 日韩精品资源二区在线| 欧美日韩高清在线| 欧美在线影院一区二区| 精品国产欧美一区二区| 日韩欧美国产综合在线一区二区三区| 久久综合久久综合九色| 亚洲一区二区精品3399| 国产精品亚洲人在线观看| 欧美亚洲日本国产| 国产亚洲1区2区3区| 国产精品视频一二| 最近日韩中文字幕| 久久99蜜桃精品| 国产一区在线不卡| 欧美色图激情小说| 欧美亚洲丝袜传媒另类| 国产精品网友自拍| 久久99精品国产麻豆不卡| 裸体歌舞表演一区二区| 91搞黄在线观看| 欧美日韩电影一区| 亚洲天堂免费在线观看视频| 国产精品一卡二| 日韩免费在线观看| 视频一区在线视频| 欧美性xxxxx极品少妇| 国产精品久久久久久妇女6080 | 久久精品国产澳门| 在线视频你懂得一区二区三区| 久久综合狠狠综合久久综合88| 午夜欧美一区二区三区在线播放| 成人午夜短视频| 精品电影一区二区| 久久国产精品色| 精品国产人成亚洲区| 免费观看一级特黄欧美大片| 7777精品伊人久久久大香线蕉的| 在线观看三级视频欧美| 综合亚洲深深色噜噜狠狠网站| 国产成人精品1024| 国产三区在线成人av| 国产乱码一区二区三区| 久久久久久免费网| 亚洲va国产va欧美va观看| 欧美三片在线视频观看| 麻豆精品视频在线| 久草精品在线观看| 精品欧美乱码久久久久久1区2区| 日本成人在线网站| 99久久国产综合精品女不卡| 日韩一区二区三区视频| 综合av第一页| 91成人国产精品| 婷婷夜色潮精品综合在线| 日韩一级免费一区| 国产精品一品视频| 亚洲色欲色欲www| 欧美日韩亚洲不卡| 久久国产精品区| 日本一区二区成人在线| 91国产精品成人| 蜜臀va亚洲va欧美va天堂| 久久蜜桃一区二区| 97精品视频在线观看自产线路二| 亚洲高清免费视频| 欧美va亚洲va国产综合| 风间由美一区二区av101| 一区二区三区欧美日韩| 国产成人av一区二区三区在线观看| 国产精品毛片久久久久久| 欧美在线观看视频一区二区三区 | 久久嫩草精品久久久精品| 成人丝袜高跟foot| 伊人婷婷欧美激情| 成人动漫一区二区在线| 久久色中文字幕| 91亚洲精品久久久蜜桃| 日韩黄色片在线观看| 国产亚洲精品超碰| 欧美日韩中字一区| 成人精品高清在线| 另类人妖一区二区av| 一级做a爱片久久| 久久久久久影视| 欧美精品久久久久久久久老牛影院| 中文幕一区二区三区久久蜜桃| 精品视频全国免费看| 国产精品亚洲第一| 久国产精品韩国三级视频| 亚洲另类在线制服丝袜| 久久久精品天堂| 日韩精品一区二区三区老鸭窝 | 另类调教123区| 亚洲美女免费视频| 欧美日韩视频在线第一区| 国产成人精品亚洲777人妖 | 91天堂素人约啪| 极品美女销魂一区二区三区免费| 自拍偷拍国产精品| 国产亚洲欧美中文| 精品国产一区二区三区四区四| 在线视频一区二区三| 91偷拍与自偷拍精品| 风间由美一区二区三区在线观看 | 精东粉嫩av免费一区二区三区| 亚洲精品国产视频| 国产精品久久久久精k8 | 一级中文字幕一区二区| 亚洲免费在线视频| 国产精品麻豆99久久久久久| 国产人伦精品一区二区| 久久久久久毛片| 久久久久久久久久久久久夜| 精品国产乱码久久久久久1区2区| 欧美丰满少妇xxxxx高潮对白| 欧美综合亚洲图片综合区| 欧美伊人精品成人久久综合97| 99精品国产99久久久久久白柏| 成人h动漫精品| 成人激情av网| a4yy欧美一区二区三区| 亚洲电影视频在线| 天堂va蜜桃一区二区三区漫画版| 亚洲无线码一区二区三区| 石原莉奈一区二区三区在线观看| 亚洲成人综合视频| 免费人成网站在线观看欧美高清| 美女视频一区在线观看| 国内外成人在线| 成人综合在线观看| 色综合天天综合在线视频| 久久成人免费网| 国内久久婷婷综合| 99久久精品国产精品久久| 欧美曰成人黄网| 精品久久一区二区三区| 国产欧美精品日韩区二区麻豆天美| 欧美国产日本视频| 亚洲黄色性网站| 麻豆国产精品官网| 成人午夜伦理影院| 在线亚洲免费视频| 日韩精品最新网址| 综合分类小说区另类春色亚洲小说欧美| 亚洲欧洲精品一区二区精品久久久| 亚洲精品国产精品乱码不99| 日韩av电影免费观看高清完整版| 国产一区二区在线观看免费| av亚洲精华国产精华精| 8v天堂国产在线一区二区| 久久这里只精品最新地址| 亚洲欧美国产77777| 久久97超碰国产精品超碰| 91蜜桃视频在线| 精品久久久久99| 亚洲一区二区在线免费看| 国产精品自拍av| 欧美日韩国产一级| 国产精品女人毛片| 蜜桃久久av一区| 日韩免费在线观看| 亚洲欧洲日韩av| 激情五月婷婷综合网| 欧美三级中文字| 国产精品毛片久久久久久久| 久久成人麻豆午夜电影|