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

📄 cxpolarisdiag.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 _CXPOLARIS_DIAG_INTERFACE_H_
#define _CXPOLARIS_DIAG_INTERFACE_H_
#include "sidewinderprivate.h"

// {0218F181-0635-466a-BFBB-44B844760DA6}
static const GUID PROPSETID_CXPOLARIS_DIAG_PROP = 
{ 0x218f181, 0x635, 0x466a, { 0xbf, 0xbb, 0x44, 0xb8, 0x44, 0x76, 0xd, 0xa6 } };

#define CXPOLARIS_MAX_SUBADDRESS_BYTES  2  
#define CXPOLARIS_MAX_I2C_BYTES         6
#define CXPOLARIS_MAX_READ_I2C_BYTES    4
#define CXPOLARIS_MAX_WRITE_I2C_BYTES   4
#define CXPOLARIS_MAX_REGISTER_BYTES    4
#define CXPOLARIS_MAX_RW_I2C_BYTES      (CXPOLARIS_MAX_READ_I2C_BYTES>CXPOLARIS_MAX_WRITE_I2C_BYTES ? \
                                            CXPOLARIS_MAX_READ_I2C_BYTES : CXPOLARIS_MAX_WRITE_I2C_BYTES)


typedef struct _CXPOLARIS_I2C_STRUCT
{
    BYTE channel;
    BYTE chip_address;
    BYTE sub_size;
    BYTE sub_buf[CXPOLARIS_MAX_SUBADDRESS_BYTES];
    BYTE buffer_size;
    BYTE bytes[CXPOLARIS_MAX_RW_I2C_BYTES];
}CXPOLARIS_I2C_STRUCT, *PCXPOLARIS_I2C_STRUCT;

typedef struct _CXPOLARIS_I2C_WRITE_THEN_READ_STRUCT
{
    BYTE channel;
    BYTE chip_address;
    BYTE num_write_bytes;
    BYTE write_bytes[CXPOLARIS_MAX_SUBADDRESS_BYTES];
    BYTE num_read_bytes;
    BYTE read_bytes[CXPOLARIS_MAX_RW_I2C_BYTES];    
}CXPOLARIS_I2C_WRITE_THEN_READ_STRUCT, *PCXPOLARIS_I2C_WRITE_THEN_READ_STRUCT;

typedef struct _CXPOLARIS_GET_REGISTER_STRUCT
{
    BYTE len;
    BYTE address[2];
    BYTE buffer[CXPOLARIS_MAX_REGISTER_BYTES];
}CXPOLARIS_GET_REGISTER_STRUCT, *PCXPOLARIS_GET_REGISTER_STRUCT;

typedef struct _CXPOLARIS_SET_REGISTER_STRUCT
{
    BYTE len;
    BYTE address[2];
    BYTE buffer[CXPOLARIS_MAX_REGISTER_BYTES];
}CXPOLARIS_SET_REGISTER_STRUCT, *PCXPOLARIS_SET_REGISTER_STRUCT;

typedef struct _CXPOLARIS_I2C_PERIOD_STRUCT
{
    BYTE value;
}CXPOLARIS_I2C_PERIOD_STRUCT, *PCXPOLARIS_I2C_PERIOD_STRUCT;

typedef struct _CXPOLARIS_GPIO_STRUCT
{
    BYTE gpio_bit[4];		//direction of 32 GPIO pins, input(0) or output(1) 
	BYTE gpio_value[4];		//value of 32 GPIO pins, Logic high(1) or low(0)
	BYTE len;
	BYTE request;
}CXPOLARIS_GPIO_STRUCT, *PCXPOLARIS_GPIO_STRUCT;


/* The next 3 structures are added for call back functions from Fulcrum
   Any changes have to be conveyed back to Fulcrum team */

typedef void (*DEMOD_CALLBACK_ROUTINE)(void *p_context,DWORD if_freq, BOOL spectral_invert, ULONG mode );
typedef void (*GEN_SI_TUNERCALLBACK_ROUTINE)(void *p_DIF, DWORD command, void* callback_context);
typedef struct _SW_PRIVATE_STRUCT
{
    DEMOD_CALLBACK_ROUTINE          p_callback;
    GEN_SI_TUNERCALLBACK_ROUTINE    p_gen_si_tuner_callback;
    void*                           p_context;
    DWORD                           xtal_freq;
    DWORD                           saw_freq;
    DWORD                           saw_type;  // One of SIDEWINDER_SAW_TYPE
}SW_PRIVATE_STRUCT, *PSW_PRIVATE_STRUCT;

typedef struct _SW_PRIVATE_CALLBACK
{
	void *p_context;
	DWORD if_freq;
	BOOL spectral_invert;
	ULONG mode;
}SW_PRIVATE_CALLBACK, *PSW_PRIVATE_CALLBACK;

typedef struct _SW_PRIVATE_GEN_SI_TUNER_CALLBACK
{
	void *p_DIF;
	DWORD command;
	DWORD callback_context;
}SW_PRIVATE_GEN_SI_TUNER_CALLBACK, *PSW_PRIVATE_GEN_SI_TUNER_CALLBACK;


typedef enum {
    CXPOLARIS_DIAG_PROP_I2C_WRITE                   = 0,
    CXPOLARIS_DIAG_PROP_I2C_READ                    = 1,
    CXPOLARIS_DIAG_PROP_I2C_WRITE_THEN_READ         = 2,
    CXPOLARIS_GET_REGISTER                          = 3,
    CXPOLARIS_SET_REGISTER                          = 4,
    CXPOLARIS_GET_I2C_PERIOD                        = 5,
    CXPOLARIS_SET_I2C_PERIOD                        = 6,
    CXPOLARIS_DIAG_PROP_RELOAD_MERLIN_FIRMWARE      = 7,
    CXPOLARIS_DIAG_PROP_I2C_DIGITAL_WRITE           = 8,
    CXPOLARIS_DIAG_PROP_I2C_DIGITAL_WRITE_THEN_READ = 9,
    CXPOLARIS_DIAG_PROP_SW_PRV_GET              = 10, 
	CXPOLARIS_DIAG_PROP_SW_PRV_CB               = 11,
	CXPOLARIS_DIAG_PROP_SW_PRV_GEN_SI_TUNER_CB  = 12,
	CXPOLARIS_GET_GPIO							= 13,
	CXPOLARIS_SET_GPIO							= 14

} CXPOLARIS_DIAGNOSTIC_PROPERTIES;

#endif

⌨️ 快捷键说明

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