📄 mxd_sdk_data.h
字号:
/*!
*
* \file mxd_sdk_data.h
*
* \brief Contain the basic data design for SDK.
*
* \par Include files
* - mxd_sdk_porting.h
*
* \par Copyright (c) 2007 Maxscend Technologies Inc. All rights reserved
*
* PROPRIETARY RIGHTS of Maxscend Technologies Inc. are involved in
* the subject matter of this material. All manufacturing, reproduction,
* use, and sales rights pertaining to this subject matter are governed
* by the license agreement. The recipient of this software implicitly
* accepts the terms of the license.
*
* \version
* Revision of last commit: $Rev:: 315 $
* Author of last commit : $Author:: MAXSCEND\peng.chen $
* Date of last commit : $Date:: 2007-11-23 15:39:54 +0800#$
*
*/
#ifndef __MXD_SDK_DATA_H__
#define __MXD_SDK_DATA_H__
#ifdef __cplusplus
extern "C"{
#endif
/**********************************************************************************
*
* Platform Configuration Parameters
*
**********************************************************************************
*/
#define __I2C_TS_USED__ /*!< It should be enabled generally */
/*---------------------------------------------------------------------------*/
/*! define the host processor type */
#define __USE_32BIT_PROCESSOR__
/* #define __USE_16BIT_PROCESSOR__ */
/*---------------------------------------------------------------------------*/
/*! __TUNER_EXT_CTRL__ is used for those system, who control tuner itself. */
/* #define __TUNER_EXT_CTRL__ */
/*---------------------------------------------------------------------------*/
/*! __EEPROM_USED__ is used for those system with EEPROM for MTX Data. */
/* #define __EEPROM_USED__ */
/**********************************************************************************
*
* Type Definitions
*
**********************************************************************************
*/
#ifndef __USE_32BIT_PROCESSOR__
#define __USE_16BIT_PROCESSOR__
#endif
#ifdef __USE_16BIT_PROCESSOR__
typedef unsigned char MXD_U8, *PMXD_U8;
typedef unsigned int MXD_U16, *PMXD_U16;
typedef unsigned long MXD_U32, *PMXD_U32;
typedef signed char MXD_S8, *PMXD_S8;
typedef signed int MXD_S16, *PMXD_S16;
typedef signed long MXD_S32, *PMXD_S32;
typedef signed char MXD_BOOL;
typedef char MXD_CHAR;
#endif /* __USE_16BIT_PROCESSOR__ */
#ifdef __USE_32BIT_PROCESSOR__
typedef unsigned char MXD_U8, *PMXD_U8;
typedef unsigned short MXD_U16, *PMXD_U16;
typedef unsigned int MXD_U32, *PMXD_U32;
typedef signed char MXD_S8, *PMXD_S8;
typedef signed short MXD_S16, *PMXD_S16;
typedef signed int MXD_S32, *PMXD_S32;
typedef signed char MXD_BOOL;
typedef char MXD_CHAR;
#endif /* __USE_32BIT_PROCESSOR__ */
/**********************************************************************************
*
* Enum Definitions
*
**********************************************************************************
*/
/*!
* Maxscend SDK return code enumeration
*/
typedef enum
{
MXD_RTN_OK, /*!< OK */
MXD_RTN_FAIL, /*!< Failed */
MXD_RTN_INVALID_ARG, /*!< Invalid arguments */
MXD_RTN_NOT_IMPLEMENTED, /*!< Not implemented in the function */
MXD_RTN_NOT_SUPPORTED, /*!< Not supported in the function */
MXD_RTN_UNDEFINED_ERR, /*!< Undefined Error */
MXD_RTN_SERVICE_OUT_OF_CAPACITY, /*!<out of service capacity */
MXD_RTN_SERVICE_ALREADY_STARTED, /*!<service already started */
MXD_RTN_SERVICE_NOT_STARTED, /*!<service not started*/
MXD_RTN_NOT_CHANGED /*!<mode not changed*/
}MXD_RTN_CODE_E;
/*!
* Maxscend Device work mode
*/
typedef enum
{
DEV_MODE_TDMB, /*!<Device work in TDMB mode*/
DEV_MODE_DTMB_AUTO, /*!<Device work in DTMB mode, auto detect MC or SC.*/
DEV_MODE_DTMB_MC, /*!<Device work in DTMB mode, in multi-carrier mode*/
DEV_MODE_DTMB_SC, /*!<Device work in DTMB mode , in single-carrier mode*/
DEV_MODE_DEFAULT
} DEVICE_WORK_MODE_E;
/*!
*User service type
*/
typedef enum
{
DAB_IN_DMB = 0x00, /*!<DAB( musicam ) stream in T-DMB mode*/
DMB_IN_DMB = 0x01, /*!<DMB (video stream) in T-DMB mode*/
FIDC_IN_DMB = 0x02, /*!<FIDC data in T-DMB mode*/
DATA_PACKET_IN_DMB = 0x03, /*!<Data packet in T-DMB mode*/
DAB_PLUS_IN_DMB = 0x04, /*!<DAB+ stream in T-DMB mode*/
STREAM_IN_DTMB = 0x05 /*!<Video stream in DMB-T mode*/
} USER_SERVICE_TYPE_E;
/*!
*System PER type
*/
typedef enum
{
PER_POST_VITERBI, /*!<PER post viterbi ( for DMB )*/
PER_POST_RS, /*!<PER post RS ( for DMB )*/
PER_POST_LDPC /*!<PER psot LDPC ( for DTMB)*/
} SYSTEM_PER_TYPE_E;
/*!
* Maxscend Devcie Interface Enumeration
*/
typedef enum
{
MXD_I2C_IF, /*!< I2C Slave Interface */
MXD_SPI_IF, /*!< SPI Slave Interface */
MXD_SDIO_IF, /*!< SDIO Slave Interface */
MXD_MP2TS_IF, /*!< MP2TS Slave Interface */
MXD_NO_IF
} MXD_IF_TYPE_E;
/*!
* SPI work mode enumeration
*/
typedef enum
{
SPI_CPOL0_CPHA0,/*!<moto mode 0; */
SPI_CPOL0_CPHA1,/*!<moto mode 1; */
SPI_CPOL1_CPHA0,/*!<moto mode 2; */
SPI_CPOL1_CPHA1,/*!<moto mode 3; */
SPI_TI_MODE /*!<TI mode ; */
} SPI_WORK_MODE_E;
/*!
* Register Page/Function enumeration
*/
typedef enum
{
REG_PAGE_FUNC0 = 0x00, /*!< SDIO protocal register, SPI MAC protocal register */
REG_PAGE_FUNC1 = 0x01 /*!< mxd0120 register */
} REG_PAGE_FUNC_E;
/*!
* read/write register Indicator
*/
typedef enum
{
CTRL_PATH_READREG, /*!< read register via spi */
CTRL_PATH_WRITEREG /*!< write register via spi*/
}CTRL_PATH_READWRITE_FLAG_E;
/*!
* block data read type
*/
typedef enum
{
SPI_MULTIBYTE_READ = 0,/*!< multi byte read*/
SPI_BLOCK_READ /*!< block read*/
}SPI_TRANSFER_MODE_E;
/*!
*Address access type
*/
typedef enum
{
SPI_FIXED_ADDRESS = 0, /*!<spi fixed address*/
SPI_INC_ADDRESS /*!<spi inc address*/
}SPI_FIXED_INC_MODE_E;
/*!
*Maxscend MP2TS interface transmission type
*/
typedef enum
{
MP2TS_PARALLEL_TYPE = 0, /*!<Parallel MP2TS*/
MP2TS_SERIAL_TYPE = 1 /*!<Serial MP2TS*/
} MP2TS_TRANSFER_TYPE_E;
/*!
* \ Trigger Edge of MP2TS Clock
*/
typedef enum
{
MP2TS_POSITIVE_EDGE, /*!<Rising edge*/
MP2TS_NEGETIVE_EDGE /*!<Falling edge*/
}MP2TS_TRIGGER_EDGE_E;
/*!
* \Transfer MOde of MP2TS Msb/Lsb
*/
typedef enum
{
MP2TS_MSB_MODE, /*!<MSB mode*/
MP2TS_LSB_MODE /*!<LSB mode*/
}MP2TS_TRANSFER_MODE_E;
/*!
* Callback return code enumeration
*/
typedef enum
{
CB_RC_OK, /*!<Return ok.*/
CB_RC_FAIL /*!<Return failed.*/
} CALLBACK_RC_E;
/*!
* Callback type enumeration
*/
typedef enum
{
CB_FIC_DATA, /*!<FIC DATA*/
CB_DMB_MSC0_DATA, /*!<MSC0 DATA.*/
CB_DMB_MSC1_DATA, /*!<MSC1 DATA.*/
CB_DTMB_DATA, /*!<DTMB DATA.*/
CB_SYNC_ERR , /*!<Sync err */
CB_DTMB_FTT_ERR, /*!<FTT err interrupt */
CB_DTMB_BUFFER_OVERFLOW, /*!<Buffer overflow interrupt */
CB_DTMB_BUFFER_UNDERFLOW, /*!<Buffer underflow interrupt */
CB_DTMB_FEC_DISCARD, /*!<FEC discard interrupt */
CB_SIGNAL_UNLOCKED_STATUS/*!<signal unlocked status */
} CALLBACK_TYPE_E;
/*!
* Callback status enumeration
*/
typedef enum
{
CB_GET_DTMB_DATA_OK,/*!<succeed to burst read dtmb data */
CB_STATUS_DEFAULT /*!<Default.*/
} CALLBACK_STATUS_E;
/**********************************************************************************
*
* Definitions
*
**********************************************************************************
*/
/*!
* API function calling convention
* __stdcall, __cdecl or __fastcall
*/
#ifdef WIN32
#define MXD_API __stdcall
#else
#define MXD_API
#endif
/*!
* NULL definition
*/
#ifndef NULL
#define NULL (void *)0
#endif
/*!
* VOID definition
*/
#ifndef VOID
#define VOID void
#endif
/*!
* TRUE definition
*/
#ifndef TRUE
#define TRUE 1
#endif
/*!
* FALSE definition
*/
#ifndef FALSE
#define FALSE 0
#endif
/*!
* flase definition
*/
#ifndef false
#define false FALSE
#endif
/*!
* true definition
*/
#ifndef true
#define true TRUE
#endif
/*!
* const definition
*/
#ifndef CONST
#define CONST const
#endif
/*!
* judge the funtion return value and print the err info
*/
#ifndef MXD_SUCCESS
#define MXD_SUCCESS( _x_ ) ( ( MXD_RTN_OK == _x_) ? true : false )
#endif
/*!
* IN used as the input parameter descriptor
*/
#define IN
/*!
* OUT used as the output parameter descriptor
*/
#define OUT
/*!
* INOUT used as the i/o parameter descriptor
*/
#define INOUT
/*!
* MAX_MXD_U32 / MAX_MXD_U16 / MAX_MXD_U8
*/
#define MAX_MXD_U32 ((MXD_U32)0xFFFFFFFF)
#define MAX_MXD_U16 ((MXD_U16)0xFFFF)
#define MAX_MXD_U8 ((MXD_U8)0xFF)
/*the mxd support i2c speed and slave address*/
#define STANDARD_I2C_BIT_RATE_IN_KHZ 100
#define FAST_I2C_BIT_RATE_IN_KHZ 400
#define MXD_I2C_SLAVE_ADDR68 0x68
#define MXD_I2C_SLAVE_ADDR69 0x69
/*!
* Device handle
*/
typedef void * HMXDDEV;
/*!
* I2C Register API Typedef
*/
typedef MXD_RTN_CODE_E (MXD_API *PIL_I2CREAD) (
IN HMXDDEV i2cHandle,
IN MXD_U16 slaveAddr,
IN MXD_U8 dataAddr,
IN MXD_U16 byteLen,
OUT MXD_U8 *pValue,
OUT MXD_U16 *pRtnLen);
typedef MXD_RTN_CODE_E (MXD_API *PIL_I2CWRITE) (
IN HMXDDEV i2cHandle,
IN MXD_U16 slaveAddr,
IN MXD_U8 dataAddr,
IN MXD_U16 byteLen,
IN MXD_U8 *pValue,
OUT MXD_U16 *pRtnLen);
/*!
* SPI Register API Typedef
*/
typedef MXD_RTN_CODE_E (MXD_API *PIL_SPITRX) (
IN HMXDDEV spiHandle,
IN MXD_U8 csIdx,
IN MXD_U32 trxLen,
IN MXD_U8 *pDataOut,
OUT MXD_U8 *pDataIn);
/*!
* SDIO Register API Typedef
*/
/*RESETVED!*/
/*!
* Callback Typedef
*/
typedef CALLBACK_RC_E (MXD_API *CALLBACKFUNC)(
IN CONST VOID *dataBuffer,
IN MXD_U32 dataSize,
IN CALLBACK_TYPE_E eCbType,
IN CALLBACK_STATUS_E eCbStatus);
typedef CALLBACKFUNC PIL_DATAINTCALLBACK;
typedef CALLBACKFUNC PIL_SYNCINTCALLBACK;
typedef CALLBACKFUNC PIL_UNLOCKCALLBACK;
typedef CALLBACKFUNC PIL_CHNSCANCALLBACK;
/*!
* Tuner Register API Typedef
*/
typedef MXD_RTN_CODE_E (MXD_API *PIL_INITTUNER)(
IN HMXDDEV hDevice);
typedef MXD_RTN_CODE_E (MXD_API *PIL_SETFREQ)(
IN HMXDDEV hDevice,
IN MXD_U32 freqHz);
typedef MXD_RTN_CODE_E (MXD_API *PIL_GETTUNERSTATUS)(
IN HMXDDEV hDevice);
/**********************************************************************************
*
* Struct Definitions
*
**********************************************************************************
*/
#ifdef WIN32
#pragma pack(push,4)
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -