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

📄 mmimms_internal.h

📁 费了好大劲找着的MMS彩信代码
💻 H
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************
** File Name:      mmimms_internal.h                                                   *
** Author:                                                                   *
** Date:           24/03/2004                                                *
** Copyright:      2003 Spreatrum, Incoporated. All Rights Reserved.         *
** Description:													               *
*****************************************************************************
**                         Important Edit History                            *
** --------------------------------------------------------------------------*
** DATE           NAME				DESCRIPTION                               *
** 08/2004        Bruce.Chi			Create
******************************************************************************/

#ifndef _MMI_MMS_INTERNAL_H_
#define _MMI_MMS_INTERNAL_H_ 

/**--------------------------------------------------------------------------*
 **                         Include Files                                    *
 **--------------------------------------------------------------------------*/
#include "mmimms.h"
#include "guianimate.h"
#include "mmiwap.h"
#include "mmisms_api.h"
#include "guilistbox.h"
#include "ffs.h"


#include "Cms_MMSDoc.h"
#include "Cms_MMSProvide.h"
#include "Cms_WAPMain.h"
#include "Mmi_appmsg.h"
#include "Cms_MMSFilefunc.h"
#include "mmimpeg4.h"
#include "cms_sysfun.h" //added liangliu 2006-2-22
#include "mmiaudio.h"		//fnh add 0320 for play audio
#include "mms_id.h"
#include "mms_image.h"
#include "mms_menutable.h"

 /**--------------------------------------------------------------------------*
 **                         Compiler Flag                                    *
 **--------------------------------------------------------------------------*/
#ifdef __cplusplus
    extern   "C"
    {
#endif

#define HAVE_MP3	//版本包含MP3
//#define HAVE_AMR	//版本支持AMR
#define HAVE_MPEG4	//版本包含MPEG4
/**--------------------------------------------------------------------------*
 **                         MACRO DEFINITION                                 *
 **--------------------------------------------------------------------------*/
#define	ONE_KILO							1000
#define ONE_K_LEN							1024
#define MMIMMS_MAX_ONE_MMS_SIZE				(100 * ONE_K_LEN)	//单条MMS最大size
#define MMIMMS_MAX_TOTAL_MMS_SIZE			(MMIMMS_MAX_MMS_NUM * MMIMMS_MAX_ONE_MMS_SIZE)//(2000 * ONE_KILO)	//2000K

#define MMIMMS_ADDRESS_TYPE_NUM				3	//地址类型个数
#define MMIMMS_MAX_SLIDE					20	//每一条MMS最大的帧数
#define MMIMMS_MAX_ADDRESS_NUM				60	//每一类目标地址的最大个数
#define MMIMMS_MAX_ADDRESS_LEN				40	//每一条地址的最大长度
#define MMIMMS_MAX_SUBJECTS_LEN				64	//每一条MMS主题的最大长度
#define MMIMMS_MAX_TEXT_LEN					1000//160	//每一条MMS文字内容的最大长度,不要超过MAX_TXT_BUF_SIZE (t9.c)
#define MMIMMS_MAX_FS_NAME_LEN				32	//每一条MMS文件名的最大长度暂定
#define MMIMMS_ADDRESS_BTN_WIDTH			44	//添加地址按钮的宽度

#define MMIMMS_SLIDE_DUARATION_MAX			600 //99	//最大slide duaration
#define MMIMMS_SLIDE_DUARATION_MIN			1	//最小slide duaration
#define MMIMMS_SLIDE_DUARATION_DEFAULT		15	//5 s

#define MMIMMS_MAX_TRANSACTIONID_LEN		32	//transaction ID最大长度。
#define MMIMMS_MAX_NOTIFICATION_URL_LEN		512	//彩信通知URL地址的长度。//暂定吧。这个挺关键的,一旦截断了,就没法下载了。
#define MMIMMS_MAX_RECEIVE_MSG_ID_LEN		64	//这个是干什么的?


#define MMS_SIZE_OF_MESSAGE					(100*1024)		 //定义一条MMS的大小
#define MMS_SINGLE_SLIDE_SIZE				100
#define EDITMMS_ADDITIONAL_SIZE (3 * 1024)


//FNH ADD
#define MMIMMS_PBNUM_MAX_LEN					( PHONEBOOK_MAX_DN_NUMBER_LEN << 1 )
#define MMIMMS_NUMBER_MAX_BCD_LEN	10
#define MMIMMS_NUMBER_MAX_LEN 	20

#define MMIMMS_DEST_ADDR_MAX_NUM	10
//FNH ADD
//liangliu added 
#define MMIMMS_SETTING_WHETHER_NUM    2
		
#define MMIMMS_MMSC_MAX_LEN					MMS_MAX_CENTRE_ADDR_LENGTH/2
#define MMIMMS_GATEWAY_MAX_LEN				MMS_MAX_GATEWAY_LENGTH/2	
#define MMIMMS_PORT_MAX_LEN					MMS_MAX_PORT_LENGTH/2
#define MMIMMS_USERNAME_MAX_LEN				MMS_MAX_USERNAME_LENGTH/2
#define MMIMMS_PASSWORD_MAX_LEN				MMS_MAX_PASSWORD_LENGTH/2
#define MMIMMS_APN_MAX_LEN					MMS_MAX_APN_LENGTH/2

#define LISTMAXLENGTH                                   40        //added liangliu 2005-12-14
#define MMS_MAX_NUM                                     100      //the max num of mms in total  added 2005-12-14

//#define     MMIMMS_PROGRESS_BAR_LEFT        12//5
//#define     MMIMMS_PROGRESS_BAR_TOP         180//144//40//121
#define     MMIMMS_SCROLL_BAR_LEFT          12//5//6
#define     MMIMMS_SCROLL_BAR_TOP           159//MMIMMS_PROGRESS_BAR_TOP
#define     MMIMMS_SCROLL_BAR_RIGHT         (MMIMMS_SCROLL_BAR_LEFT+100)
#define     MMIMMS_SCROLL_BAR_BOTTOM        (MMIMMS_SCROLL_BAR_TOP+20)		//fnh modify 0323 
#define     MMIMMS_SCROLL_BAR_COLOR         0x523900//0xFCC0

#define MMIMMS_MAX_FILE_NAME_LEN   32  //from the wintable.c to 
#define MMS_MAX_SIZE_OF_MULTIM				(100*1024)		//编辑彩信时限制的多媒体的大小

#define MMIMMS_UNKNOWN_SENDER	"<Unknown>"         //无收件人时彩信列表的显示内容
#define MMIMMS_MMSC_DEFAULT_URL				"http://mmsc.monternet.com/"
#define MMIMMS_FS_ROOT_DIR	"/MMS/"				//mms directory in file system

#define MMIMMS_FS_ROOT		    "/"
#define MMIMMS_MMS_DIR		    "MMS"
#define MMIMMS_MP3_DIR			"MP3"
#define MMIMMS_VIDEO_DIR               "VIDEO"//added by liangliu for save video 2005-11-29
#define MMIMMS_DEFAULT_DIR_LEN  5
//#define MMIMMS_FILE_NAME_PREFIX	"mms_"		//file name prefix
											//file name is from 1 to 100
#define MMIMMS_FILE_NAME_SUBFIX ".mms"
#define MMIMMS_FILE_WILDCARD	"*.mms"

#define MMIMMS_FILE_HEAD "MMS/mms_*"

#define MMIMMS_FILE_ID_INVALID	0xFFFFL
#define MMIMMS_NV_ID_INVALID	0xFFFFL


#define FLAG_MMS_IS_MMS				0x80
#define FLAG_MMS_NOTIFICATION		0x40
#define FLAG_MMS_HAVE_DOWNLOADED	0x20


#define FLAG_MMS_INBOX_NOT_READ		0x00
#define FLAG_MMS_INBOX_HAVE_READ	0x02
#define FLAG_MMS_OUTBOX				0x04
#define FLAG_MMS_DRAFTBOX			0x05
#define FLAG_MMS_SENTBOX			0x06
#define FLAG_MMS_MOMT_STATE			0x07
		

#define FLAG_MMS_CONTENT_IS_UCS2	0x08



#define MMIMMS_INVALID_MMS_CONTENT_PDU_SIZE 3	//0x84A300

#define MMS_LOCAL_TIME_ZONE		8	//时区
#define MMS_100_YEARS			100
//liangliu added
#define MMS_MAX_INPUT_TEXT_SIZE					256 /* 彩信文本编辑输入最大长度 */
#define MMS_MAX_TEXT_SIZE						MMS_MAX_INPUT_TEXT_SIZE * 3 + 2	/* 彩信文本UNICODE数组(全局)最大长度 */
#define MMS_MAX_INPUT_SUBJECT_SIZE				20	/* 彩信主题编辑输入最大长度 */
#define MMS_MAX_UTF_SUBJECT_SIZE                MMS_MAX_INPUT_SUBJECT_SIZE*3+1  /* UNICODE(汉字)转为UTF8所需最大长度 */
#define MMS_MAX_SUBJECT_SIZE					MMS_MAX_INPUT_SUBJECT_SIZE*3+2 /* 彩信主题UNICODE数组(全局)最大长度 */
#define MMS_MAX_INPUT_SEND_TO_SIZE				36		/* 编辑收件人输入的最大长度 */
#define MMS_MAX_SEND_TO_SIZE					MMS_MAX_INPUT_SEND_TO_SIZE * 2 + 2 /* 收件人UNICODE数组(全局)最大长度 */

#define MMS_MAX_FILE_NAME_LENGTH				128		/* 彩信文件名最大长度 */

#define MMS_MAX_ADDRESS_LENGTH					64		/* 收(发)件人地址(即号码)在文件管理摘要结构中最大长度 */
#define MMS_MAX_DATE_LEN						32		/* 文件管理器信息日期最大长度 */
#define MMS_MAX_DETAILS_LENGTH					5 * 128	/* 信息详情string长度 */
#define MMS_MAX_MSGID_LENGTH					40	/* 信息详情string长度 */



		/*  image content type macros   */
#define COMPOSER_IMAGE_GIF	"image/gif"
#define COMPOSER_IMAGE_JPEG	"image/jpeg"
#define COMPOSER_IMAGE_PNG	"image/png"
#define COMPOSER_IMAGE_WBMP	"image/vnd.wap.wbmp"
#define COMPOSER_IMAGE_BMP	"image/bmp"

/* audio content type macros  */

#define COMPOSER_AUDIO_WAV		"audio/wav"
#define COMPOSER_AUDIO_IMELODY	"audio/imelody"
#define COMPOSER_AUDIO_MIDI		"audio/midi"
#define COMPOSER_AUDIO_AMR		"audio/amr"
#define COMPOSER_AUDIO_MP3		"audio/mp3"

/*  video content type macros */
#define COMPOSER_VIDEO_MPEG		"video/mpeg"

/**--------------------------------------------------------------------------*
 **                         TYPE AND CONSTANT                                *
 **--------------------------------------------------------------------------*/
#ifndef FILE_HANDLE
#define FILE_HANDLE int
#endif
typedef enum
{
	SEND_MMS_NORMAL,
	SEND_MMS_FROM_CAIKE,
	SEND_MMS_INVALID
}MMIMMS_MMS_OR_CAIKE;

//FNH ADD 发送当前彩信(新彩信OR发件箱中的彩信)
typedef enum
{
	INBOX,
	SENTBOX,
	OUTBOX,
	DRAFTBOX,
	ALL_BOX
}MMIMMS_OPTION_BOX;

//FNH ADD 发送当前彩信(新彩信OR发件箱中的彩信)
typedef enum
{
	SEND_NEW_MMS,
	SEND_OUTBOX_MMS
}MMIMMS_SEND_MMS_STATUS;
typedef enum
{
	DOWNLOAD_RESULT_SUCCEED,
	DOWNLOAD_RESULT_FAIL,
	DOWNLOAD_RESULT_MMS_TOO_BIG
}MMIMMS_DOWNLOAD_RESULT;


/* 显示矩形区域结构  */   /*record display position */
typedef struct T_Composer_Rectangle_tag{
	T_WORD x; /*x start coordinate of screen*/
	T_WORD y;   /*y start coordinate of screen*/
	T_WORD width;	/*width of display position*/
	T_WORD height;	/*height of display postion*/
}T_Composer_Rectangle;


/*插入图片的资源信息*/
typedef struct T_Composer_Image{
	T_UBYTE* ImgBuf;	/*image data*/
	T_CHAR*  Type;		/*image type*/
	T_WORD	begin;		/*begin time of image display*/
	T_WORD	end;		/*end time of image display*/
	T_WORD size;		/*size of image data*/
	T_Composer_Rectangle region;  /* image's region   */
}T_Composer_Image;


/*插入文本的资源信息*/
typedef struct T_Composer_Text{
	T_UBYTE* TxtBuf; 	/*text data*/
	T_WORD	begin;		/*begin time of text show*/
	T_WORD	end;		/*end time of text show*/
	T_WORD size;		/* the size of the text content */
	T_Composer_Rectangle region;  /* text's region  */
}T_Composer_Text;


/*插入声音资源信息*/
typedef struct T_Composer_Audio{
	T_UBYTE* AudBuf;	/*audio data buffer*/
	T_CHAR *Type;		/* audio type  */
	T_WORD	begin;		/*begin time of audio play*/
	T_WORD	end;		/*end time of audio play*/
	T_WORD size;		/*size of audio data*/
}T_Composer_Audio;

/*插入声音资源信息*/
typedef struct T_Composer_Video{
	T_UBYTE* VidBuf;	/*video data buffer*/
	MMIMPEG4_TYPE_E Type;		/* video type  */
	T_WORD	begin;		/*begin time of video play*/
	T_WORD	end;		/*end time of video play*/
	T_WORD size;		/*size of video data*/
	T_Composer_Rectangle region;  /* video's region  */
}T_Composer_Video;

typedef enum
{
	MMSRE,
	MMSFW,
	MMSEDIT,
	MMSREAD
}MMSSTATE;

typedef enum
{
    MMIMMS_RESULT_SUCCESS,	//函数调用成功
	MMIMMS_RESULT_ERROR		//函数调用错误
}MMIMMS_RESULT_E;			//函数的返回结果


typedef enum	//give specific number to differ MMIMMS_TYPE and MMIMMS_MAILBOX_TYPE
{
	MMIMMS_MO		= 8,		//发送
	MMIMMS_MT		= 9,		//接收
	MMIMMS_MNOTI	= 10,	//彩信通知
	MMIMMS_TOTAL	= 11
}MMIMMS_TYPE;


typedef struct
{
	uint32		type;						//MMIMMS_TYPE
	uint32		head_size;					//sizeof(STRUCTURE)
	uint32		body_size;					//body size
	BOOLEAN		Delivery_Report;			// 是否需要传送报告标志 
	BOOLEAN		Read_Reply;					//是否需要阅读报告标志 
	BOOLEAN		Sender_Visibility;			// 是否匿名发送标志 
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];	//事务ID,由本地产生的随机序列 
	int8		To[MMIMMS_MAX_ADDRESS_NUM * MMIMMS_MAX_ADDRESS_LEN + 1];	//TO接收者,多个用‘;’隔开 
	//int8 Cc[MMIMMS_MAX_ADDRESS_LEN];		//抄送者,多个用‘;’隔开
	//int8 Bcc[MMIMMS_MAX_ADDRESS_LEN];		//密送者,多个用‘;’隔开
	int8		Subject[MMIMMS_MAX_SUBJECTS_LEN + 1];		//主题
	T_WORD		MMS_Priority;
	T_WORD		MMS_Expiry; 				//expiry time,default use Relative-token value 
	T_WORD		MMS_Delivery_Time;			//Delivery time,default use Relative-token value  
	T_WORD		ContentTypeAndBody_Len;		//彩信数据长度  
	uint8		*ContentTypeAndBody;		//彩信数据 
}MMIMMS_FS_Send_T;


typedef struct{
	uint32		type;					//MMIMMS_TYPE
	uint32		head_size;				//sizeof(STRUCTRUE)
	uint32		body_size;
	BOOLEAN		Delivery_Report;		//是否需要传送报告标志 
	BOOLEAN		Read_Reply;				//是否需要阅读报告标志 
	uint8		Message_Class;			//消息类型 
	uint8		MMS_Prioity;			//优先级 
	//uint8 Boundary[2];   				//字节对齐 补充位 //先不考虑对齐。
//	uint8		flag;					//标志已读未读
	T_WORD		Date;					//彩信的发送时间  
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];	//事务id 
	int8		Message_Id[MMIMMS_MAX_RECEIVE_MSG_ID_LEN + 1];		//消息ID 
	int8		From[MMIMMS_MAX_ADDRESS_NUM *MMIMMS_MAX_ADDRESS_LEN + 1];					//发送者 
	int8		To[MMIMMS_MAX_ADDRESS_LEN * MMIMMS_MAX_ADDRESS_NUM + 1];						//接收者 
	int8		Cc[MMIMMS_MAX_ADDRESS_LEN * MMIMMS_MAX_ADDRESS_NUM + 1];						//抄送者  
	int8		Subject[MMIMMS_MAX_SUBJECTS_LEN + 1];				//主题 
	T_WORD		Content_Size;			//彩信数据大小 
	uint8		*ContentTypeAndBody;	//彩信数据指针 
}MMIMMS_FS_Receive_T;

typedef struct{
	uint32		type;						//MMIMMS_TYPE
	uint32		head_size;					//sizeof(STRUCTURE)
	uint32		body_size;
	uint8		Message_Class;				//消息类型 
	uint8		MMS_Expiry_TimeType;		//过期时间类型,相对,绝对 
	T_WORD		Message_Size;				//彩信大小  
	T_WORD		MMS_Expiry;					//过期时间 
	int8		Transaction_Id[MMIMMS_MAX_TRANSACTIONID_LEN + 1];		//事务ID 

⌨️ 快捷键说明

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