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

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

?? sttuner.c

?? 這是DVB tuner驅(qū)動(dòng)部分和其它相關(guān)的源碼和一些技術(shù)資料文檔.
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/*****************************************************************************File Name   : sttuner.cDescription : STTUNER device driver.Copyright (C) 1999 STMicroelectronicsHistory     :    23/09/99    New threshold API calls added                Timeout parameter added to API calls                Added new 'tune to exact frequency' API call.    21/01/00    API modifications to scan, band and threshold lists.                Major changes to tuner initialization params.                New API call for direct control over tuner LNB.                Events now exported to the Event Handler.    23/06/00    Event handler close problem solved.Reference   :ST API Definition "TUNER Driver API" DVD-API-06*****************************************************************************//* Includes --------------------------------------------------------------- */#include <string.h>                     /* C libs */#include <stdio.h>#include "stlite.h"                     /* Standard includes */#include "sttuner.h"                    /* STAPI includes */#include "sti2c.h"#include "sttbx.h"#include "stevt.h"#include "demod.h"                      /* DEMOD Device API */#include "tnr.h"                        /* TNR Device API */#include "sat.h"                        /* SAT Device API */#include "tuner.h"                      /* Core Tuner API *//* Private types/constants ------------------------------------------------ */#define DEFAULT_FREQUENCY_SCAN_STEP     10000/* Private variables ------------------------------------------------------ *//* Driver revision */static const ST_Revision_t Revision = "STTUNER-REL_3.0.0";/* Queue management */typedef struct Node_s{    TUNER_ControlBlock_t ControlBlock;    void            *This_p;    struct Node_s   *Next_p;} Node_t;static Node_t *DeviceQueue_p = NULL;/* Private macros --------------------------------------------------------- */#define GetControlBlockFromHandle(h) \                                     (TUNER_ControlBlock_t *) \                                     (FindNode(DeviceQueue_p, \                                               IsHandle, \                                               &h, \                                               NULL))#define GetControlBlockFromName(n) \                                     (TUNER_ControlBlock_t *) \                                     (FindNode(DeviceQueue_p, \                                               IsDeviceName, \                                               n, \                                               NULL))#define IsInit(n)                    (GetControlBlockFromName(n) != NULL)/* Private function prototypes -------------------------------------------- */static void InsertNode(Node_t *Start_p, Node_t *New_p, void *Data_p);static void AppendNode(Node_t *Start_p, Node_t *New_p, void *Data_p);static void RemoveNode(Node_t *Before_p, Node_t *Old_p);static Node_t *FindNode(const Node_t *Start_p,                        BOOL (*CompareFunction)(const void *Arg1, const void *Arg2),                        const void *Compare_p,                        Node_t **Predecessor_p);static Node_t *NextNode(const Node_t *Start_p);static Node_t *LastNode(const Node_t *Start_p);static BOOL IsDeviceName(const void *Tuner_p, const void *DeviceName_p);static BOOL IsHandle(const void *Tuner_p, const void *Handle_p);/* STUART API routines (alphabetical order) ------------------------------- *//*****************************************************************************Name: STTUNER_Close()Description:    Closes the tuner device - no further activity can take place on    the handle, until re-opened.Parameters:    Handle, the handle of the tuner device.Return Value:    ST_NO_ERROR,                the operation was carried out without error.    ST_ERROR_INVALID_HANDLE,    the handle was invalid.    ST_ERROR_BAD_PARAMETER      Handle NULLSee Also:    STTUNER_Open()*****************************************************************************/ST_ErrorCode_t STTUNER_Close(STTUNER_Handle_t Handle){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if(Handle == 0)    {        return ST_ERROR_BAD_PARAMETER;    }    /* Obtain the control block from the handle */    Tuner_p = GetControlBlockFromHandle(Handle);    /* Ensure the handle is valid */    if (Tuner_p != NULL)    {        /* Nullify the device handle to ensure no further calls         * can be made.         */        Tuner_p->Handle = 0;        /* We must ensure that all activity on the tuner is idle         * before we return to the caller.  Note that this call will not         * return until the current scan step has completed.         */        TUNER_AbortScan(Tuner_p);       /* This call can not fail */        /* Close the event handler if being used */        if (Tuner_p->InitParams.EVTDeviceName[0] != 0)        {            /* No more events until driver is opened again */            STEVT_Close(Tuner_p->EVTHandle); /* Close handle to EVT */        }    }    else    {        /* The handle is invalid */        Error = ST_ERROR_INVALID_HANDLE;    }    /* Common exit point */    return Error;} /* STTUNER_Close() *//*****************************************************************************Name: STTUNER_GetBandList()Description:    Obtains the current frequency bands and associated local oscillator    frequencies.Parameters:    Handle, the handle of the tuner device.Return Value:    ST_NO_ERROR,                the operation was carried out without error    ST_ERROR_INVALID_HANDLE,    the handle was invalid    ST_ERROR_BAD_PARAMETER      Handle or BandList_p NULLSee Also:    STTUNER_SetBandList()*****************************************************************************/ST_ErrorCode_t STTUNER_GetBandList(STTUNER_Handle_t Handle,                                   STTUNER_BandList_t *BandList_p){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if((Handle == 0) || (BandList_p == NULL))    {        return ST_ERROR_BAD_PARAMETER;    }    /* Obtain the control block from the handle */    Tuner_p = GetControlBlockFromHandle(Handle);    /* Ensure the handle is valid */    if (Tuner_p != NULL)    {        /* Copy the band/lo frequency list to the caller supplied area */        BandList_p->NumElements = Tuner_p->BandList.NumElements;        memcpy(BandList_p->BandList, Tuner_p->BandList.BandList,               (Tuner_p->BandList.NumElements * sizeof(STTUNER_Band_t)));    }    else    {        /* The handle is invalid */        Error = ST_ERROR_INVALID_HANDLE;    }    /* Common exit point */    return Error;} /* STTUNER_GetBandList() *//*****************************************************************************Name: STTUNER_GetCapability()Description:    Obtain the capabilities of the tuner, including version and name.Parameters:    DeviceName,     the device name of the initialized tuner device.    Capability_p,   caller supplied area to copy device capabilties.Return Value:    ST_NO_ERROR,                the operation was carried out without error.    ST_ERROR_UNKNOWN_DEVICE,    the device is not known to the driver.    ST_ERROR_BAD_PARAMETER      Capability_p NULLSee Also:    Nothing.*****************************************************************************/ST_ErrorCode_t STTUNER_GetCapability(const ST_DeviceName_t DeviceName,                                     STTUNER_Capability_t *Capability_p){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if(Capability_p == NULL)    {        return ST_ERROR_BAD_PARAMETER;    }    /* Obtain the control block from the handle */    Tuner_p = GetControlBlockFromName(DeviceName);    /* Ensure the handle is valid */    if (Tuner_p != NULL)    {        /* It is safe to simply copy across the capabilty parameters as         * we must be initialized at this point.         */        *Capability_p = Tuner_p->Capability;    }    else    {        /* The device name is invalid */        Error = ST_ERROR_UNKNOWN_DEVICE;    }    /* Common exit point */    return Error;} /* STTUNER_GetCapability() *//*****************************************************************************Name: STTUNER_GetRevision()Description:    Obtains the revision number of the tuner device driver.Parameters:    None.Return Value:    Global driver revision number.See Also:    Revision (top of module).*****************************************************************************/ST_Revision_t STTUNER_GetRevision(void){    return Revision;} /* STTUNER_GetRevision() *//*****************************************************************************Name: STTUNER_GetScanList()Description:    Obtains the ordered scan list that dictates the criteria during a    tuner scan at each frequency step.Parameters:    Handle, the handle of the tuner device.Return Value:    ST_NO_ERROR,                the operation was carried out without error    ST_ERROR_INVALID_HANDLE,    the handle was invalid    ST_ERROR_BAD_PARAMETER      Handle or ScanList_p NULLSee Also:    STTUNER_SetScanList()*****************************************************************************/ST_ErrorCode_t STTUNER_GetScanList(STTUNER_Handle_t Handle,                                   STTUNER_ScanList_t *ScanList_p){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if((Handle == 0) || (ScanList_p == NULL) )    {        return ST_ERROR_BAD_PARAMETER;    }    /* Obtain the control block from the handle */    Tuner_p = GetControlBlockFromHandle(Handle);    /* Ensure the handle is valid */    if (Tuner_p != NULL)    {        /* Copy the scan list for the caller */        ScanList_p->NumElements = Tuner_p->ScanList.NumElements;        memcpy(ScanList_p->ScanList, Tuner_p->ScanList.ScanList,               (Tuner_p->ScanList.NumElements * sizeof(STTUNER_Scan_t)));    }    else    {        /* The handle is invalid */        Error = ST_ERROR_INVALID_HANDLE;    }    /* Common exit point */    return Error;} /* STTUNER_GetScanList() *//*****************************************************************************Name: STTUNER_GetStatus()Description:    Obtains the current status of driver i.e., whether the tuner is locked,    unlocked, scanning or failed.Parameters:    Handle, the handle of the tuner device.Return Value:    ST_NO_ERROR,                the operation was carried out without error    ST_ERROR_INVALID_HANDLE,    the handle was invalid    ST_ERROR_BAD_PARAMETER      Handle or Status_p NULLSee Also:    Nothing.*****************************************************************************/ST_ErrorCode_t STTUNER_GetStatus(STTUNER_Handle_t Handle,                                 STTUNER_Status_t *Status_p){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if((Handle == 0) || (Status_p == NULL) )    {        return ST_ERROR_BAD_PARAMETER;    }    /* Obtain the control block from the handle */    Tuner_p = GetControlBlockFromHandle(Handle);    /* Ensure the handle is valid */    if (Tuner_p != NULL)    {        /* Set the status for the caller */        *Status_p = Tuner_p->TunerInfo.Status;    }    else    {        /* The handle is invalid */        Error = ST_ERROR_INVALID_HANDLE;    }    /* Common exit point */    return Error;} /* STTUNER_GetStatus() *//*****************************************************************************Name: STTUNER_GetTunerInfo()Description:    Obtains the current scanning status, even during a scan.Parameters:    Handle, the handle of the tuner device.Return Value:    ST_NO_ERROR,                the operation was carried out without error    ST_ERROR_INVALID_HANDLE,    the handle was invalid    ST_ERROR_BAD_PARAMETER      Handle or TunerInfo_p NULLSee Also:    Nothing.*****************************************************************************/ST_ErrorCode_t STTUNER_GetTunerInfo(STTUNER_Handle_t Handle,                                    STTUNER_TunerInfo_t *TunerInfo_p){    ST_ErrorCode_t Error = ST_NO_ERROR;    TUNER_ControlBlock_t *Tuner_p;    /* Check the parameters */    if((Handle == 0) || (TunerInfo_p == NULL) )    {        return ST_ERROR_BAD_PARAMETER;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久噜噜噜久久中文字幕色伊伊 | 久久精品视频免费| 久久免费的精品国产v∧| 国产精品三级av在线播放| 亚洲伦理在线精品| 日韩国产欧美在线视频| 国产jizzjizz一区二区| 色偷偷久久一区二区三区| 欧美精品乱人伦久久久久久| 精品电影一区二区| 一级日本不卡的影视| 蜜桃视频在线观看一区| 99久久99久久精品国产片果冻| 欧美精品在线视频| 中文字幕不卡一区| 日本不卡在线视频| 色综合天天综合网国产成人综合天 | 久久久蜜桃精品| 一区二区三区在线视频免费观看| 免费在线观看精品| 成人av网站在线观看| 91精品欧美综合在线观看最新| 国产欧美一区二区精品秋霞影院 | 欧美日韩国产一区| 久久久精品国产99久久精品芒果| 亚洲狼人国产精品| 国产精品一区一区| 欧美日韩视频在线一区二区| 中文字幕av免费专区久久| 日本欧美在线看| 91偷拍与自偷拍精品| 精品国产伦一区二区三区观看方式| 亚洲色图在线看| 国产精品一区二区在线看| 欧美日韩一区二区三区视频| 中文在线资源观看网站视频免费不卡| 亚洲chinese男男1069| av爱爱亚洲一区| 久久丝袜美腿综合| 亚洲123区在线观看| 91蜜桃网址入口| wwwwww.欧美系列| 日韩综合在线视频| 91麻豆国产福利在线观看| 久久久久88色偷偷免费| 免费国产亚洲视频| 欧美群妇大交群的观看方式| 亚洲人吸女人奶水| 成人精品国产免费网站| 精品国产123| 青娱乐精品视频| 欧美精品视频www在线观看| 亚洲一区二区免费视频| 91美女片黄在线| 中文字幕视频一区二区三区久| 国产在线看一区| 亚洲精品一区二区三区福利| 日本在线观看不卡视频| 欧美精品aⅴ在线视频| 亚洲一区二区三区四区的| 日本韩国精品一区二区在线观看| 中日韩av电影| 波多野结衣在线aⅴ中文字幕不卡| 久久久久久麻豆| 国内成+人亚洲+欧美+综合在线| 91精品国产综合久久久久久久久久 | www.性欧美| 国产精品国产精品国产专区不蜜| 国产中文字幕精品| 久久无码av三级| 亚洲男人的天堂网| 国产成+人+日韩+欧美+亚洲| 在线看不卡av| 欧美主播一区二区三区| 精品久久99ma| 国产在线精品免费| 久久综合精品国产一区二区三区| 激情综合一区二区三区| 精品久久国产97色综合| 国产一区欧美一区| 国产亚洲综合av| 丁香啪啪综合成人亚洲小说 | 国产成人在线观看| 久久婷婷成人综合色| 高清不卡一区二区在线| 国产精品进线69影院| 99亚偷拍自图区亚洲| 亚洲黄色尤物视频| 欧美日韩国产经典色站一区二区三区| 亚洲午夜久久久久中文字幕久| 欧美视频一二三区| 蜜臀国产一区二区三区在线播放 | 国产一区激情在线| 国产精品久久久久久户外露出| 91丨porny丨国产| 亚洲成av人片| 精品日韩在线一区| 国产91精品露脸国语对白| 亚洲特黄一级片| 欧美三级日韩三级| 九九九精品视频| 国产精品色哟哟网站| 欧美亚洲愉拍一区二区| 免费黄网站欧美| 国产欧美精品区一区二区三区| 91浏览器打开| 日韩精品成人一区二区在线| 26uuu欧美| 91麻豆国产福利精品| 青娱乐精品视频| 国产精品超碰97尤物18| 欧美肥妇free| 风间由美中文字幕在线看视频国产欧美| 亚洲欧洲一区二区在线播放| 欧美日韩一区视频| 国产高清精品网站| 亚洲一区免费在线观看| 精品久久久久99| 在线观看国产91| 国产一区二区在线观看免费| 一区二区三区小说| 精品国产99国产精品| 色婷婷av一区二区三区之一色屋| 另类小说视频一区二区| 亚洲男人的天堂一区二区| 精品卡一卡二卡三卡四在线| 色94色欧美sute亚洲线路二 | 国产精品理伦片| 91麻豆精品国产自产在线观看一区| 成人综合在线网站| 亚洲影视在线观看| 色婷婷精品久久二区二区蜜臀av| 蓝色福利精品导航| 国产91在线|亚洲| 91香蕉国产在线观看软件| 国产精品国产三级国产aⅴ入口 | 欧美日本一区二区| 成人午夜视频在线观看| 日本成人在线一区| 一区二区日韩av| 国产精品国产三级国产aⅴ入口| 欧美电影免费观看高清完整版 | 三级欧美韩日大片在线看| 国产精品蜜臀在线观看| 欧美成人a在线| 欧美日韩一区二区三区在线| 99riav一区二区三区| 国产在线视频不卡二| 日韩精品亚洲专区| 亚洲美女偷拍久久| 亚洲国产成人一区二区三区| 日韩午夜小视频| 欧美精品99久久久**| 欧美亚洲国产怡红院影院| 不卡一区在线观看| 国产福利电影一区二区三区| 奇米影视在线99精品| 天天综合色天天综合| 亚洲最快最全在线视频| 亚洲欧美电影一区二区| 中文字幕欧美国产| 国产欧美精品一区aⅴ影院 | 成人激情动漫在线观看| 国产乱淫av一区二区三区 | 国产丝袜在线精品| 精品国产91洋老外米糕| 日韩欧美一区二区三区在线| 欧美日韩国产成人在线91| 欧美性大战久久久久久久| 日本韩国一区二区| 在线日韩国产精品| 色婷婷一区二区三区四区| 99久久免费精品高清特色大片| 岛国av在线一区| 国产suv一区二区三区88区| 国产99久久久国产精品免费看 | 国产精品视频麻豆| 国产偷国产偷精品高清尤物| 久久亚洲影视婷婷| 久久伊99综合婷婷久久伊| 26uuu精品一区二区在线观看| 日韩精品一区二区三区在线 | 国产99久久久精品| 成人免费视频国产在线观看| 懂色av一区二区三区免费观看| 国产suv精品一区二区883| jvid福利写真一区二区三区| 97精品国产露脸对白| 91精品1区2区| 欧美日韩你懂的| 欧美福利一区二区| 日韩视频123| 久久免费视频色| 国产精品久久久久久福利一牛影视| 《视频一区视频二区| 一二三区精品福利视频| 午夜欧美视频在线观看| 看国产成人h片视频| 国产精品2024| 91浏览器入口在线观看|