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

📄 mmimms_main.c

📁 彩信的源代码,包括彩信的打包,发送,接收,解包,对做彩信软件的朋友有帮助.
💻 C
📖 第 1 页 / 共 5 页
字号:
/****************************************************************************
** File Name:      mmimms_main.c                                           *
** Author:                                                                 *
** Date:           2004.8.23                                              *
** Copyright:      2004 Spreatrum, Incoporated. All Rights Reserved.       *
** Description:    This file is used to describe the MMS                   *
****************************************************************************
**                         Important Edit History                          *
** ------------------------------------------------------------------------*
** DATE           NAME             DESCRIPTION                             *
** 2004.8        Bruce.Chi         Create
** 
****************************************************************************/

/**--------------------------------------------------------------------------*
**                         Include Files                                    *
**--------------------------------------------------------------------------*/
#include "window_parse.h"
#include "guitextbox.h"
#include "mmi_pubwin.h"
#include "mmi_text.h"
#include "mms_text.h"
#include "mmi_image.h"
#include "mmk_timer.h"
#include "mainapp.h"
#include "mmipb.h"
#include "ccapp.h"

#include "mmimms_internal.h"

#include "tb_dal.h"
#include "mmi_menutable.h"

#include "mmidisplay_data.h"
#include "mmi_default.h"
#include "mmiudisk.h"
#include "mmiwap.h"
#include "mmimms.h"
#include "mmimultim.h"
#ifdef MMI_APP_6800_PRJ
#else
#include "mmidv.h"
#endif
//#include "mmibrowser.h"
#include "mmibrowser_internal.h"
#include "Cms_MMSDoc.h"

#include "Cms_MMSProvide.h"
#include "Cms_WAPMain.h"

#include "mmi_appmsg.h"

#include "Cms_MMSFilefunc.h"

#include "mmiset.h"//add liangliu@palmsource.com
#include "mmimpeg4.h"
#include "mmiaudio.h"
#include  "mn_type.h"

/**--------------------------------------------------------------------------*
**                         MACRO DEFINITION                                 *
**--------------------------------------------------------------------------*/
#define ONE_HOUR_IN_SECONDS (3600)
#define UCS2_NAME_MAX_LEN 32
#define FILE_DEVICE FS_UDISK
#define PATH_ROOT "/"
#define CURR_DIRECTORY				"\\"
#define MANAGERINBOXFILE			"cmsinbox.cnf"
#define MANAGEROUTBOXFILE			"cmsoutbox.cnf"
#define MANAGERSENTBOXFILE			"cmssentbox.cnf"
#define MANAGERDRAFTBOXFILE			"cmsdraftbox.cnf"
#define MANAGER_FLASH_DIR			"MANAGER"
#define MMS_FLASH_CONFIGFILE        "cmsmmsconfig.ini"
#define MANAGER_FLASH_INBOXNAME		"inbox.ini"
#define MANAGER_FLASH_OUTBOXNAME	"outbox.ini"
#define MANAGER_FLASH_SENTBOXNAME   "sentbox.ini"
#define MANAGER_FLASH_DRAFTBOXNAME  "draftbox.ini"
#define MMSCONFIGFILE               "mmsconfigfile.cnf"
#define MMSAUTOSIGNFILE				"mmsautosign.ini"
#define MMS_FILE_NAME_LENGTH	128

#define MMIMMS_VIBRA_TIMEROUT		3000

#define LEAVE_SPACE					(200*1024)

#ifndef FILE_HANDLE
#define FILE_HANDLE int
#endif
#ifndef ALERT_TIMEOUT  
#define ALERT_TIMEOUT   3000
#endif

/*---------------------------------------------------------------------------*/
/*                          TYPE AND CONSTANT                                */
/*---------------------------------------------------------------------------*/
typedef enum 
{
	MMS_DELIVERY_REPORT_VALUE_NONE,
	MMS_DELIVERY_REPORT_VALUE_RETRIVED,
	MMS_DELIVERY_REPORT_VALUE_REJECTED,
	MMS_DELIVERY_REPORT_VALUE_DEFERRED,
	MMS_DELIVERY_REPORT_VALUE_EXPIRED,
	MMS_DELIVERY_REPORT_VALUE_UNRECOGNESED
}MMS_DELIVERY_REPORT_VALUE;

/**-------------------------------------------------------------------------*

**                         GLOBAL DEFINITION                                *

**--------------------------------------------------------------------------*/ 

MMIMMS_MEM_STORE_T	g_mms_save_in_mem;		//used between edit and save in ram modules
MMIMMS_NV_SETTING	g_nv_setting_mirror;	//mirror of NV mms setting

//liangl added 2005-10-8 for spread new managerdocument.
P_ManagerDocument		g_pManager				= NULL;
pAutoDownloadMMSList	g_pautoDownloadMMSRoot	= PNULL;//cr liangliu 2006-4-27
uint16					g_num_autodw			= 0;
pMMS_EDocument			g_pcur_signdoc			= NULL;

char					*g_filename				= PNULL;

uint32      g_progressneedsize  = 0;
uint32      g_progresscurrentsize = 0;

BOOLEAN g_backautodownload = FALSE;//add liangliu 2006-4-28 for back to idle autodownload.
BOOLEAN g_inboxneedsave = FALSE;//全局变量增加判断是否退回到idle状态需要保存inboxfile 
BOOLEAN g_issendingreadrpt  =  FALSE;//modify 2005-12-28 for send readrpt 
BOOLEAN g_donewmms = FALSE;  //modify 2006-2-15 for change saving.
BOOLEAN g_ismmsinit = FALSE;

uint8	g_videoname_arr[MMIMMS_MAX_FILE_NAME_LEN+1] = {0};
uint8   g_mp3name_arr[MMIMMS_MAX_FILE_NAME_LEN+1]={0};
static uint8			s_play_mms_vibrator_timer_id = 0;  //play mms vibrator timer id

HFS inboxfile_openstatus = FFS_INVALID_HANDLE;
MMS_DELIVERY_REPORT_VALUE g_delivery_value;

/**--------------------------------------------------------------------------*
 **                         EXTERNAL DECLARE                                 *
 **--------------------------------------------------------------------------*/
extern BOOLEAN			g_mmi_exist_sd;
extern FILE_DEV_E_T		g_filetype;

/**--------------------------------------------------------------------------*
 **  	Description : function in Delta MMS lib
**--------------------------------------------------------------------------*/







extern void *MYMalloc(uint32 size);
extern pMMS_EDocument g_peditdoc ;  // 编辑文档,编辑器内部使用,生存期为编辑器主窗口开关时间 */
extern int PeekGetData (unsigned short tid,unsigned char * buf,int length);
extern void fnDB_MYMemInit(void *starting_address, unsigned long size, unsigned long page_size);
extern void ConvertHttp(unsigned char * href );
extern uint8 g_mmimms_preview_timer_id;

extern p_MMS_RECEPIENT g_p_mms_to;
extern p_MMS_RECEPIENT g_p_mms_cc;
extern p_MMS_RECEPIENT g_p_mms_bcc;
extern p_MMS_GROUP g_p_mms_to_group;
extern p_MMS_GROUP g_p_mms_cc_group;
extern p_MMS_GROUP g_p_mms_bcc_group;

extern MMS_SEND_ONTIME_TIME g_set_date;
extern char* g_p_mms_subject;  //主题字符串,生存期为编辑窗口开关时间

extern MMIMMS_SAVEMANAGERFILE_STATE g_savestate;
extern MMIMMS_SAVEMAMMS_STATE     g_savemmsstate;
extern MMIMMS_NETUSING_STATE    g_netusing;

extern pMessageList g_pCurrentList ;

extern wap_mms_init;
extern uint8 g_mailbox_status;
extern uint16 iFClose;
extern FILE_DEV_E_T MMICMS_GetCurrentFFS( void );
extern BOOLEAN GPIO_CheckHeadsetStatus(void);
/*---------------------------------------------------------------------------*/

/*                          LOCAL FUNCTION DECLARE                           */

/*---------------------------------------------------------------------------*/

/* ----------------------------------------------------------------------------
* Function Name: MMICMSMMS_CallBackReadAutoSignFile
* Purpose: 读取自动签名页的回调函数
* Input:  FFS_ERROR_E a, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void MMICMSMMS_CallBackReadAutoSignFile(
										FFS_ERROR_E a, 
										FFS_RESULT result, 
										FFS_PARAM param
										);

/*****************************************************************************/

// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL FFS_ERROR_E FILE_CdRootPath(void);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/

LOCAL FFS_ERROR_E FILE_CD(const char *path);


/*****************************************************************************/

// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL FFS_ERROR_E FILE_CdMMSPath(void);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL FFS_ERROR_E FILE_CdMP3Path(void);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL FFS_ERROR_E FILE_CreateDir (const char *path);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL BOOLEAN FILE_CheckExist (const char *file);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL HFS FILE_Create ( const char *name, uint16 mode);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL void FILE_Close (HFS handle);

/*****************************************************************************/
// 	Description : adapter for FILE SYSTEM
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	it's FFS now
///*****************************************************************************/
LOCAL FFS_ERROR_E FILE_Write ( HFS handle, uint8 *buf,  uint32 len, uint32 *transmitted, FFS_OVERLAPPED_T *overlapped_ptr);
/* ----------------------------------------------------------------------------
* Function Name: CmsMmsAddNewAddr
* Purpose: 将新地址加入到地址链表中
* Input:  head:	地址链表指针
		  addr:	新地址指针
		  bAddNode:增加的结点
* Returns: 地址链表指针
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL p_MMS_RECEPIENT	CmsMmsAddNewAddr( p_MMS_RECEPIENT head , char* addr , int bAddNode );

/*****************************************************************************/
// 	Description : judge whether this year is leap year
//	Global resource dependence : 
//  Author: Bruce.Chi
//	Note:	
///*****************************************************************************/
LOCAL BOOLEAN Edit_IsLeapYear(uint16  year);

/******************************************************************************
 * 函数定义:	MMIMMS_ReadManagerInboxFile
 * 函数说明:	读取收件箱文件的回调处理
 * 参数说明:	空
 * 返回值:		空
 * 代码编写者:		liangliu
 * 代码编写日期:	10/17/2005
********************************************************************************/
LOCAL void MMIVC_CallBackReadManagerInboxFile(
										FFS_ERROR_E a, 
										FFS_RESULT result, 
										FFS_PARAM param
										);

/******************************************************************************
 * 函数定义:	MMIMMS_ReadManagerInboxFile
 * 函数说明:	读取发件箱文件的回调处理
 * 参数说明:	空
 * 返回值:		空
 * 代码编写者:		liangliu
 * 代码编写日期:	10/17/2005
********************************************************************************/
LOCAL void MMIVC_CallBackReadManagerOutboxFile(
										 FFS_ERROR_E a, 
										 FFS_RESULT result, 
										 FFS_PARAM param
										 );

/* ----------------------------------------------------------------------------
* Function Name: MMIVC_CallBackReadManagerSentboxFile
* Purpose: 读取已发信箱的回调函数
* Input:  FFS_ERROR_E a, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void MMIVC_CallBackReadManagerSentboxFile(
										  FFS_ERROR_E a, 
										  FFS_RESULT result, 
										  FFS_PARAM param
										  );



/* ----------------------------------------------------------------------------
* Function Name: MMIVC_CallBackReadManagerDraftboxFile
* Purpose: 读取草稿信箱的回调函数
* Input:  FFS_ERROR_E a, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void MMIVC_CallBackReadManagerDraftboxFile(
										   FFS_ERROR_E a, 
										   FFS_RESULT result, 
										   FFS_PARAM param
										   );





/* ----------------------------------------------------------------------------
* Function Name: SaveFS_SaveInboxFile_CallBack
* Purpose: 处理保存收件箱文件的回调函数
* Input:  FFS_ERROR_E efs_error, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void SaveFS_SaveInboxFile_CallBack(FFS_ERROR_E efs_error, FFS_RESULT result, FFS_PARAM param);

/* ----------------------------------------------------------------------------
* Function Name: SaveFS_SaveInboxPUSHFile_CallBack
* Purpose: 处理保存收件箱中PUSH文件的回调函数
* Input:  FFS_ERROR_E efs_error, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void SaveFS_SaveInboxPUSHFile_CallBack(FFS_ERROR_E efs_error, FFS_RESULT result, FFS_PARAM param);

/* ----------------------------------------------------------------------------
* Function Name: SaveFS_SaveOutboxFile_CallBack
* Purpose: 处理保存彩信到发件箱回调函数
* Input:  FFS_ERROR_E efs_error, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void SaveFS_SaveOutboxFile_CallBack(FFS_ERROR_E efs_error, FFS_RESULT result, FFS_PARAM param);

/* ----------------------------------------------------------------------------
* Function Name: SaveFS_SaveSentboxFile_CallBack
* Purpose: 处理保存彩信到已发箱回调函数
* Input:  FFS_ERROR_E efs_error, 
		  FFS_RESULT result, 
		  FFS_PARAM param
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
LOCAL void SaveFS_SaveSentboxFile_CallBack(FFS_ERROR_E efs_error, FFS_RESULT result, FFS_PARAM param);

/* ----------------------------------------------------------------------------
* Function Name: SaveFS_SaveDraftboxFile_CallBack
* Purpose: 处理保存彩信到草稿箱回调函数
* Input:  FFS_ERROR_E efs_error, 
		  FFS_RESULT result, 

⌨️ 快捷键说明

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