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