www.pudn.com > wap2.0.rar > mmiwap.h


/***************************************************************************** 
** File Name:      mmiwap.h                                              * 
** Author:         figo.feng                                                 * 
** Date:           24/05/2004                                                * 
** Copyright:      2003 Spreatrum, Incoporated. All Rights Reserved.         * 
** Description:    This file is used to describe wap browser                 * 
****************************************************************************** 
**                         Important Edit History                            * 
** --------------------------------------------------------------------------* 
** DATE           NAME             DESCRIPTION                               * 
** 05/2004        figo.feng	       Create 
******************************************************************************/ 
 
#ifndef _MMI_WAP_H_ 
#define _MMI_WAP_H_  
 
/**--------------------------------------------------------------------------* 
 **                         Include Files                                    * 
 **--------------------------------------------------------------------------*/ 
#include    "sci_types.h" 
#include    "mmimultim.h" 
 
/**--------------------------------------------------------------------------* 
 **                         Compiler Flag                                    * 
 **--------------------------------------------------------------------------*/ 
#ifdef __cplusplus 
    extern   "C" 
    { 
#endif 
/**--------------------------------------------------------------------------* 
 **                         MACRO DEFINITION                                 * 
 **--------------------------------------------------------------------------*/ 
//#define	MMIWAP_WAP_MEMORY_SIZE			400*1024	//WAP所需MEMORY的大小(400K) 
#define     MMIWAP_CONNECT_TIMER_OUT        400			//socket reconnect timer  
#define		MMIWAP_QUERY_TIMER_OUT			50			//轮询定时器时间值 
#define		MMIWAP_PROTECT_TIMER_OUT		15000		//保护定时器时间值 
//#define	MMIWAP_MAX_TASK_NUM				10			//WBXML文档中能包含的最大图片数 
//#define	MMIWAP_IS_DOWNLOADING_FLAG		-10			//正在下载的标志 
//#define	MMIWAP_PORT_NUM_9201			9201		//9201端口号 
//#define	MMIWAP_PORT_NUM_9203			9203		//9203端口号 
//#define	MMIWAP_GATEWAY_RESULT_SUCCESS	0			//成功 
//#define	MMIWAP_GATEWAY_RESULT_FAILURE	1001		//失败 
//#define	MMIWAP_GATEWAY_RESULT_TIMEOUT	1006		//超时 
//#define	MMIWAP_HEADER_LENGTH			24			//wap_header的长度 
 
 
/**--------------------------------------------------------------------------* 
 **                         TYPE AND CONSTANT                                * 
 **--------------------------------------------------------------------------*/ 
//CMS 
typedef long time_t;        /* time value */ 
typedef long clock_t; 
 
/* 
typedef enum 
{ 
    MMIWAP_RESULT_SUCCESS,			//连接成功 
	MMIWAP_RESULT_GPRS_FAILURE,		//GPRS连接失败 
	MMIWAP_RESULT_GATEWAY_FAILURE,	//网关连接失败 
	MMIWAP_RESULT_NET_FAILURE,		//向网络发请求失败 
	MMIWAP_RESULT_PEEKDATA_FAILURE	//轮询结果失败 
}MMIWAP_CONNECT_RESULT_E;//连接网络的结果 
*/ 
/* 
typedef enum 
{ 
	MMIWAP_TYPE_NULL,		//非法值	 
	MMIWAP_TYPE_TEXT,		//网页 
	MMIWAP_TYPE_PICTURE,	//图象 
	MMIWAP_TYPE_MMS			//彩信 
}MMIWAP_DOWNLOAD_TYPE_E;//资源类型 
*/ 
/* 
typedef struct  
{ 
	uint32			length;		//BUFFER的长度 
	uint8*			buffer_ptr;	//BUFFER的指针 
}MMIWAP_BUFFER_T;//WAP BUFFER的结构 
*/ 
/* 
typedef struct  
{ 
	uint8						image_index;		//图象索引 browser需要此参数 
	MMIWAP_DOWNLOAD_TYPE_E		type;				//资源类型:1 网页,2 图象,3彩信 
	MMIWAP_CONNECT_RESULT_E		result;				//连接网络的结果 
	int32						received_data_len;	//received data len 
}MMIWAP_OUT_PARAM_T;//调用WAP STACK时传出的参数结构 
 
typedef void (*MMIWAP_CALLBACK_FUNC)(MMIWAP_OUT_PARAM_T* out_param_ptr); 
 
typedef struct  
{ 
	BOOLEAN						is_send;			//TRUE:向网络发数据,FALSE:向网络收数据 
	uint8						image_index;		//图象索引 browser需要 此参数 
	int8*						url_ptr;			//url地址 
	MMIWAP_DOWNLOAD_TYPE_E		type;				//资源类型:1 网页,2 图象,3彩信 
	MMIWAP_BUFFER_T				get_buffer;			//WAP BUFFER 
	MMIWAP_BUFFER_T				post_buffer;		//需要POST的指针 
	MMIWAP_CALLBACK_FUNC		callback_func_ptr;	//回调函数指针	 
}MMIWAP_IN_PARAM_T;//调用WAP STACK时传入的参数结构 
*/ 
		 
		#define UNIT_USED	1	/* 使用标记 */ 
#define UNIT_FREE	0	/* 未使用标记 */ 
 
#define IS_ZERO(  X  )		( 0 == X )					/* 是否为零 */ 
#define IS_USED_LEFTBIT(  X  )	( X & 0x80000000 )		/* 测试最左位是否使用? */ 
#define MOVE_LEFTBIT(  X  )	( ( X << 1 ) & 0xfffffffe )	/* 左移一位 */ 
#define IS_USED_RIGHTBIT(  X  )	( X & 0x00000001 )		/* 测试最右位是否使用? */ 
#define MOVE_RIGHTBIT(  X  )	( ( X >> 1 ) & 0x7fffffff )	/* 左移一位 */ 
#define LEFT_FIND	1	/* 从左向右查找 */ 
#define RIGHT_FIND	0	/* 从右向左查找 */ 
 
#define MAX_BITMAP_NUM 6 
 
/* 枚举cache类型 */ 
typedef enum 
{ 
	cache_not_find = -1,	/* 没有存储空间 */ 
 
	cache_dynamic_t,		/* 动态内存分配的类型 */ 
 
	cache_totle_num 		/* cache totle num */ 
}e_cache; 
 
 
 
/*定义cache数据结构 */ 
typedef struct _cache_t 
{ 
	e_cache	 cache_type;		/*cache 类型 */ 
	unsigned short	unit_len;	/* 单元长度 */ 
	unsigned char   bitmap_num;	/* bitmap数目 */ 
	unsigned int	bitmap[MAX_BITMAP_NUM];	/* 内存bitmap */ 
	short		    free_num;	/* 空闲单元数目 */ 
	unsigned int base_pointer;	/* 基指针地址 */ 
	unsigned int end_pointer;	/* 尾指针地址 */ 
}cache_t; 
 
typedef enum 
{ 
    MMICMSWAP_GPRS_DEACTIVE_OK,	//DEACTIVE完成 
	MMICMSWAP_GPRS_ACTIVE_OK,		//ACTIVE完成 
	MMICMSWAP_GPRS_ACEIVE_FAILED, 
	MMICMSWAP_GPRS_ACTIVING, 
	MMICMSWAP_GPRS_DEACTIVEING		//DEACTIVE进行中 
}MMICMSWAP_GPRS_STATE_E;//GPRS的状态 
 
typedef enum 
{ 
	MMICMSWAP_UNKOWN, 
	MMICMSWAP_MMS, 
	MMICMSWAP_BROWSER 
}MMICMSWAP_INITTYPE; 
typedef struct 
{ 
	BOOLEAN					is_wapcore_init;		//浏览器内核是否已初始化 
	BOOLEAN					is_gateway_connected;	//网关是否连接成功 
	MMICMSWAP_GPRS_STATE_E	gprs_state;				//GPRS的状态 
}MMIWAP_CURRENT_CONTEXT_T;//WAP当前的环境信息 
typedef enum 
{ 
	MMICMSWAP_UNKOWN_IMAGE, 
	MMICMSWAP_BMP, 
	MMICMSWAP_GIF, 
	MMICMSWAP_JPG, 
	MMICMSWAP_WBMP 
}MMICMSWAP_IMAGE_TYPE; 
 
/* 
typedef struct  
{ 
	BOOLEAN						state;			//下载状态:FALSE:未下载	TRUE:已下载 
	uint8						id;				//下载任务号 
	uint8						image_index;	//图象索引 
	MMIWAP_DOWNLOAD_TYPE_E		type;			//资源类型:1 网页		2 图象 
}MMIWAP_DOWNLOAD_TASK_T;//每个下载任务的结构 
*/ 
 
//CMS 
//typedef int32 SOCKET;	//3.1 类型定义 
//#define DNR_ERROR			7 
//#define DNR_NEEDNOT			8 
//#define SOCKET_ERROR		-1 
//#define INVALID_SOCKET		(SOCKET) -1 
//#define SOCKETRECDATABUFLEN 1999 
 
#define     ENOBUFS        1 
#define     ETIMEDOUT      2 
#define     EISCONN        3 
#define     EOPNOTSUPP     4 
#define     ECONNABORTED   5 
#define     EWOULDBLOCK    6 
#define     ECONNREFUSED   7 
#define     ECONNRESET     8 
#define     ENOTCONN       9 
#define     EALREADY       10 
#define     EINVAL         11 
#define     EMSGSIZE       12 
#define     EPIPE          13 
#define     EDESTADDRREQ   14 
#define     ESHUTDOWN      15 
#define     ENOPROTOOPT    16 
#define     EHAVEOOB       17 
#define     ENOMEM         18 
#define     EADDRNOTAVAIL  19 
#define     EADDRINUSE     20 
#define     EAFNOSUPPORT   21 
#define     EINPROGRESS    22 
#define     ELOWER         23    /* lower layer (IP) error */ 
#define     ENOTSOCK	   24    /* Includes sockets which closed while blocked */ 
#define     EIEIO		   27 /* bad input/output on Old Macdonald's farm :-) */ 
 
//CMS 
//#define UDP_BUFFER_LEN 1500  //we suppose udp length less 1500 
 
#define RECONNECT_TIME_WHEN_EINPROGRESS	  20 
 
//  [4/12/2006 Hongkui.Kang] 
//#define MMS_TYPE_TEXT	0x01 
//#define MMS_TYPE_WBMP	0x02 
//#define MMS_TYPE_GIF	0x03 
//#define MMS_TYPE_JPEG	0x04 
#define BRW_TYPE_WAV	0x05 
#define BRW_TYPE_AMR	0x06		/*Adpatative Multi Rate*/ 
#define BRW_TYPE_MIDI	0x07 
#define BRW_TYPE_MP3	0x08 
#define BRW_TYPE_IMY	0x09 
#define BRW_TYPE_MMF	0x0A 
#define BRW_TYPE_BMP1	0x0B 
#define BRW_TYPE_MP4	0x0C 
//#define MMS_TYPE_PNG	0x0D 
#define BRW_TYPE_3GP    0x0E   // xuelianb add[2005-09-21] 
/**--------------------------------------------------------------------------* 
 **                         FUNCTION DEFINITION                              * 
 **--------------------------------------------------------------------------*/ 
/*****************************************************************************/ 
// 	Description : init wap stack 
//	Global resource dependence : s_cmswap_context,g_browser_setting_info 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_InitWapStack(void); 
*/ 
/*****************************************************************************/ 
// 	Description : dial number to connect gprs 
//	Global resource dependence : s_cmswap_context 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_ConnectNetwork( 
						   MMIWAP_IN_PARAM_T *in_param_ptr 
						   ); 
*/ 
/*****************************************************************************/ 
// 	Description : disconnect the gateway 
//	Global resource dependence : g_browser_context 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_DisconnectGateway(void); 
*/ 
/*****************************************************************************/ 
// 	Description : exit wap browser 
//	Global resource dependence : s_cmswap_context 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_ExitWapStack(void); 
*/ 
/*****************************************************************************/ 
// 	Description : open connect net window of browser 
//	Global resource dependence : none 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_OpenConnectNetWin(void); 
*/ 
/*****************************************************************************/ 
// 	Description : load the content of web  
//	Global resource dependence : s_cmswap_context,s_wap_buffer_ptr 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*BOOLEAN MMIWAP_LoadByWapStack( 
					   MMIWAP_IN_PARAM_T *in_param_ptr 
					   ); 
*/ 
/*****************************************************************************/ 
// 	Description : initialize wap memory needed in Delta WAP library 
//	Global resource dependence : s_wap_memory_arr 
//  Author: figo.feng 
//	Note: 
/*****************************************************************************/ 
/*void MMIWAP_InitWapLibMemory(void); 
*/ 
/*****************************************************************************/ 
// 	Description : query the wap stack 
//	Global resource dependence : s_download_task_arr,g_browser_context 
//  Author: 
//	Note: 
/*****************************************************************************/ 
PUBLIC void MMICMSWAP_QueryReceivedData(void); 
 
int mms_udp_callback(char* data_ptr, int data_len, void* data,uint16 srcport); 
 
 
 
 
int MMICMSBRW_UDP_callback(char* data_ptr, int data_len, void* data,uint16 srcport); 
 
/*****************************************************************************/ 
// 	Description : query the wap stack 
//	Global resource dependence : s_download_task_arr,g_browser_context 
//  Author: 
//	Note: 
/*****************************************************************************/ 
/*PUBLIC void QueryGatewayState(void); 
*/ 
void *mms_Malloc (unsigned int size);  
 
/****************************************************************************** 
 * 函数定义:	13.2 mms_Free 
 
 * 函数说明:	释放内存 
 
 * 参数说明:	ptr 内存大小 
 
 * 返回值:		Void 
********************************************************************************/ 
void mms_Free (void *ptr); 
 
 
/*****************************************************************************/ 
//  Description : get type from stream 
//  Global resource dependence : none 
//  Author: 
//  Note: 
/*****************************************************************************/ 
PUBLIC MMIMULTIM_MUSIC_TYPE_E MMIMULTI_GetStreamType(uint8* buffer_ptr, uint32 buffer_len); 
PUBLIC FILE_DEV_E_T MMICMS_GetCurrentFFS( void ); 
 
 
 
/*****************************************************************************/ 
// 	Description: Malloc global buffer for browser 
//	Global resource dependence: 
//  Author: haiyanghu 
//	Note: 
/*****************************************************************************/ 
PUBLIC void* MMICMSBRW_MallocGlobalBuffer(   //return buffer pointer malloced. if malloc fail, return null. 
										 uint32* buffer_size_ptr  //[out] return global buffer size malloced 
										 ); 
 
 
/*****************************************************************************/ 
// 	Description: free global buffer for browser 
//	Global resource dependence: 
//  Author: haiyanghu 
//	Note: 
/*****************************************************************************/ 
PUBLIC void MMICMSBRW_FreeGlobalBuffer(void); 
 
 
/*****************************************************************************/ 
// 	Description: get global buffer status which is in use or not in use 
//	Global resource dependence: 
//  Author: haiyanghu 
//	Note: 
/*****************************************************************************/ 
PUBLIC BOOLEAN MMICMSBRW_GetGlobalBufferStatus(  //return TRUE: blobal buffer is in use. False: not in use. 
											   void 
											   ); 
 
// 6. 时间、定时器接口 
/****************************************************************************** 
 * 函数定义:	6.1 CmsGetCurrentTime 
 
 * 函数说明:	返回 1970年1月1日零点以来经过的秒数, 参考 time_t time( time_t* )。 
 
 * 参数说明:	void 
 
 * 返回值:		时间值 
********************************************************************************/ 
PUBLIC time_t CmsGetCurrentTime(void); 
 
/****************************************************************************** 
 * 函数定义:	MMICMS_UDP_init 
 
 * 函数说明:	UDP协议栈初始化 
 
 * 参数说明:brw 
 
 * 返回值: 
********************************************************************************/ 
PUBLIC void  MMICMS_UDP_init(unsigned char* host, unsigned short port); 
 
/*****************************************************************************/ 
// 	Description : save data call back func 
//	Global resource dependence : none 
//  Author: 
//	Note: 
/*****************************************************************************/ 
PUBLIC void MMICMSBRW_save_data_callback(uint8* data_ptr, DPARAM param); 
 
/*****************************************************************************/ 
// 	Description: get wap gprs state 
//	Global resource dependence: 
//  Author: aoke 
//	Note: 
/*****************************************************************************/ 
PUBLIC MMICMSWAP_GPRS_STATE_E MMIBRW_GetGprsState(void); 
/**--------------------------------------------------------------------------* 
 **                         Compiler Flag                                    * 
 **--------------------------------------------------------------------------*/ 
#ifdef   __cplusplus 
    } 
#endif 
 
#endif