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

📄 colibri.h

📁 完整的基于Conxant平台的USB电视棒的WIN驱动程序。
💻 H
字号:
/*+++ *******************************************************************\ 
* 
*  Copyright and Disclaimer: 
*  
*     --------------------------------------------------------------- 
*     This software is provided "AS IS" without warranty of any kind, 
*     either expressed or implied, including but not limited to the 
*     implied warranties of noninfringement, merchantability and/or 
*     fitness for a particular purpose.
*     --------------------------------------------------------------- 
*   
*     Copyright (c) 2008 Conexant Systems, Inc. 
*     All rights reserved. 
*
\******************************************************************* ---*/ 



#ifndef COLIBRI_H
#define COLIBRI_H

extern "C"
{
    #include <wdm.h>
}

#include <windef.h>
#include <unknown.h>
#include <ks.h>
#include <ksmedia.h>
#include "DriverI2c.h"
#include "DirectIF.h"
#include "Colibri_reg.h"

#define Colibri_DEVICE_ADDRESS  0x60

class Colibri
{
    public:
        Colibri(DriverI2C* p_i2c, void* p_DIF);
        ~Colibri();
		enum AFE_MODE
		{
			AFE_MODE_LOW_IF,
			AFE_MODE_BASEBAND,
			AFE_MODE_HI_IF
		};

        static void static_setColibriForLowIF(void *p_Colibri,DWORD if_freq, BOOL spectral_invert, ULONG mode);
        VOID            lock();
        VOID            unlock();
        VOID            initialize();
        NTSTATUS        writeByte(WORD address, BYTE value);
        NTSTATUS        readByte(WORD address, PBYTE p_value);

        NTSTATUS        writeDword(WORD address, DWORD value);
        NTSTATUS        readDword(WORD address, PDWORD p_value);
        VOID            setInputMux(DWORD input_mux);
        VOID            SetupAFEforLowIF();
		VOID            SetupAFEforBaseband();
		VOID            SetupAFEforHiIF();
		VOID			SetMode(AFE_MODE mode);
        VOID            initializeAudioInputTunerTv();
		VOID			powerUp();
		VOID			powerDown();

        DirectIF *      getDIF(){return _p_DIF;}
    private:
        NTSTATUS        writeByteNoLock(WORD address, BYTE value);
        NTSTATUS        readByteNoLock(WORD address, PBYTE p_value);
        NTSTATUS        RegMaskWrite(BYTE size, WORD register_address,BYTE bit_start,BYTE bit_end, DWORD value);
        DWORD           GetColibriCarrierOffset(ULONG mode);
        VOID            initSuperBlock();
        VOID            initChannels();
        DriverI2C *     _p_i2c;
        DirectIF *      _p_DIF;
        KMUTEX          _mutex;
       
} ;

#endif 

⌨️ 快捷键说明

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