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

📄 mxd_sdk_data.h

📁 MXD_SDK_Ax.x.xxx :MXD1320 软件开发包源码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*!
 *
 * \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 + -