📄 mmimms_main.c
字号:
/****************************************************************************
** 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 + -