📄 mmimmsglobaldef.c
字号:
#ifdef _MMS_ENABLE_
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#if defined (NEW_FRAME)
#include "typedefs.h"
#include "vsi.h"
#include "pei.h"
#include "custom.h"
#include "gsm.h"
#else
#include "stddefs.h"
#include "custom.h"
#include "gsm.h"
#include "vsi.h"
#endif
#include "p_sim.h"
#include "mfw_mfw.h"
#include "mfw_win.h"
#include "mfw_kbd.h"
#include "mfw_edt.h"
#include "mfw_tim.h"
#include "mfw_phb.h"
#include "ksd.h"
#include "psa.h"
#include "mfw_sms.h"
#include "mfw_icn.h"
#include "mfw_mnu.h"
#include "mfw_lng.h"
#include "mfw_sat.h"
#include "mfw_kbd.h"
#include "mfw_nm.h"
#include "mfw_str.h"
#include "dspl.h"
#include "MmiMain.h"
#include "MmiDummy.h"
#include "MmiMmi.h"
#include "MmiDialogs.h"
#include "MmiLists.h"
#include "MmiMenu.h"
#include "MmiSoftKeys.h"
#include "MmiEditor.h"
#include "Mmitextinput.h"
#include "phb.h"
#include "mmiBookshared.h"
#include "mmiSmsMenu.h"
#include "mmismssend.h"
#include "mmismsidle.h"
//begin xie
#include "mmiMMSffs.h" //add by xie 04-07-08
#include "mmimms_cfg.h"
#include "ffs.h"
#include "mmseditor.h"
#include "mmscfg.h"
#include "manager.h"
#include "mmiMMSGlobalDef.h"
#include "mmimms_cfg.h" //#include "Mmiutilapi.h" //modified by xie 04-07-12
//end xie
#include "atbdata.h"
BOOL gIsMMSInitialized = FALSE;
BOOL gIsNewMMSIncoming = FALSE;
#if 1
static unsigned int gNewMMSNum; //the sum of new mms,add by xie 04-07-29
void MMS_Increase_NewMMS_Sum()
{
gNewMMSNum++;
return;
}
void MMS_Decrease_NewMMS_Sum()
{
gNewMMSNum--;
return;
}
void MMS_Set_NewMMS_Sum(unsigned int uiSum)
{
gNewMMSNum = uiSum;
return;
}
#endif
void MMS_Fresh_NewMMS_Sum(void)
{
MMS_FILE fp;
fp = MMS_fopen("/mms/rmfu.txt", "r+b");
if(fp)
{
MMS_fread(&gNewMMSNum,sizeof(gNewMMSNum),1,fp);
MMS_fclose(fp);
}
}
unsigned int MMS_Get_NewMMS_Sum()
{
#if 0
unsigned int uiNewMMSNum;
MMS_FILE fp;
fp = MMS_fopen("/mms/rmfu.txt", "r+b");
if(fp)
{
MMS_fread(&uiNewMMSNum,sizeof(uiNewMMSNum),1,fp);
MMS_fclose(fp);
}
return uiNewMMSNum;
#endif
return gNewMMSNum;
}
void MMS_Initialize_In_Idle()
{
#if 0
P_MMS mms = getMMS();
if(!(mms->manager))
{
mms->manager = (pManager)manager_on_initialize();
MMS_Codec_Init(APP_PATH);
}
#else
MI_manager_on_initialize(MANAGER_MASK_MMSMNU);
#endif
}
void MMS_Destroy_In_Idle()
{
#if 0
P_MMS mms = getMMS();
if(mms->manager)
{
MMS_Codec_Destory();
manager_on_destroy();
}
#else
MI_manager_on_destroy(MANAGER_MASK_MMSMNU);
#endif
}
MMS_PLAYER_STATE mmsPlayerState = STOP;
MMS_FOLDER_TYPE gCurMMSPos = MMS_NEW;//MMS_Floders_ID is renamed with gCurMMSPos
static T_MFW_HND gMMSNewHnd = NULL;
static T_MFW_HND gMMSMsgListHnd = NULL;
static T_MFW_HND gRecvListHnd = NULL;
void MMS_Set_MMSNew_WHnd(T_MFW_HND win)
{
gMMSNewHnd = win;
}
T_MFW_HND MMS_Get_MMSNew_WHnd(void )
{
return gMMSNewHnd;
}
void MMS_Set_MsgList_WHnd(T_MFW_HND win)
{
gMMSMsgListHnd = win;
}
T_MFW_HND MMS_Get_MsgList_WHnd(void )
{
return gMMSMsgListHnd;
}
void MMS_Set_RecvList_WHnd(T_MFW_HND win)
{
gRecvListHnd = win;
}
T_MFW_HND MMS_Get_RecvList_WHnd(void )
{
return gRecvListHnd;
}
//MMS编辑窗口
T_MFW_HND gMMSImageMusicHnd;
void MMS_Set_MMSImageMusic_WHnd(T_MFW_HND win)
{
gMMSImageMusicHnd = win;
}
T_MFW_HND MMS_Get_MMSImageMusic_WHnd(void )
{
return gMMSImageMusicHnd;
}
static MMS gMms ={NULL,NULL,NULL};
P_MMS getMMS()
{
return &gMms;
}
static char *MMS_to_Lowercase(const char *strIn,char *strOut)
{
int i=0;
if(strIn == NULL || strOut == NULL)
return NULL;
strcpy(strOut, strIn);
while(strOut[i])
{
if( strOut[i] >= 'A' && strOut[i]<='Z')
strOut[i] = strOut[i] +'a' - 'A';
i++;
}
return strOut;
}
BOOL MMS_File_Type(const char *filename, int fileType)
{
char lowerCaseFileName[128];
char *ret=NULL;
if(filename == NULL)
return 0;
MMS_to_Lowercase(filename, lowerCaseFileName);
switch(fileType)
{
case MMS_TYPE_GIF:
ret = strstr(lowerCaseFileName, ".gif");
if(ret)
return 1;
break;
case MMS_TYPE_JPEG:
ret = strstr(lowerCaseFileName, ".jpg");
if(ret)
return 1;
ret = strstr(lowerCaseFileName, ".jpeg");
if(ret)
return 1;
break;
case MMS_TYPE_WBMP:
ret = strstr(lowerCaseFileName, ".wbmp");
if(ret)
return 1;
break;
case MMS_TYPE_MMF:
ret = strstr(lowerCaseFileName, ".mmf");
if(ret)
return 1;
break;
case MMS_TYPE_MIDI:
ret = strstr(lowerCaseFileName, ".midi");
if(ret)
return 1;
break;
case MMS_TYPE_TEXT:
case MMS_TYPE_WAV:
case MMS_TYPE_AMR:
case MMS_TYPE_MP3:
case MMS_TYPE_BMP:
case MMS_TYPE_IMY:
case MMS_TYPE_PNG:
default:
return 0;
}
return 0;
}
UINT8 mmi_mms_chkDir(const char* dir)
{
T_FFS_RET error;
T_FFS_STAT stat;
if((error = ffs_stat(dir, &stat)) != EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkDir(): directory %s not exist!!!", dir));
if((error = ffs_mkdir(dir)) == EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkDir(): create directory %s ok!!!", dir));
return 1;
}
else
{
MMS_TRACE_EVENT(("mmi_mms_chkDir(): create directory %s error = %d!!!", dir, error));
return 0;
}
}
return 1;
}
/* check if a FFS file exists, if not, make it */
UINT8 mmi_mms_chkFile(const char* name, void* data, int size)
{
T_FFS_RET error;
T_FFS_STAT stat;
if((error = ffs_stat(name, &stat)) != EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkFile(): file %s not exist!!!", name));
/* write a default file */
error = ffs_fwrite(name, data, size);
if(error == EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkFile(): write default %s ok!!!", name));
return 1;
}
else
{
MMS_TRACE_EVENT(("mmi_mms_chkFile(): write default %s error = %d!!!", name, error));
return 0;
}
}
return 1;
}
UINT8 mmi_mms_chkSettingsFile(void)
{
T_FFS_RET error;
T_FFS_STAT stat;
if((error = ffs_stat(FFSFILE_MMSSETTINGS_PATH, &stat)) != EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkSettingsFile(): file %s not exist!!!", FFSFILE_MMSSETTINGS_PATH));
/* write a default file */
flash_MMSSettingsInitialise();
error = ffs_fwrite(FFSFILE_MMSSETTINGS_PATH, &mmsSettings, sizeof(mmsSettings));
if(error == EFFS_OK)
{
MMS_TRACE_EVENT(("mmi_mms_chkSettingsFile(): write default %s ok!!!", FFSFILE_MMSSETTINGS_PATH));
return 1;
}
else
{
MMS_TRACE_EVENT((""));
MMS_TRACE_EVENT(("XIE"));
MMS_TRACE_EVENT(("mmi_mms_chkSettingsFile(): write default %s error = %d!!!", FFSFILE_MMSSETTINGS_PATH, error));
return 0;
}
}
else
{
flash_MMSSettingsread();
return 1;
}
}
#if 1
enum
{
MSG_HDR_TYPE_UNKNOWN = 0,
MSG_HDR_TYPE_BCC,
MSG_HDR_TYPE_CC,
MSG_HDR_TYPE_FILENAME,
MSG_HDR_TYPE_RECEIVER,
MSG_HDR_TYPE_SENDER,
MSG_HDR_TYPE_TITLE,
MSG_HDR_TYPE_DATE,
MSG_HDR_TYPE_STATE,
MSG_HDR_TYPE_MSGSIZE
};
MMS_S32 MMS_GetFolder_MsgSum(char *pTxtPath,unsigned char folderType)
{
MMS_S32 msgSum = 0 ;
MMS_FILE fp;
MMS_S8 pathname[64];
MMS_S8 *file_content_buffer = NULL;
MMS_S32 file_len = 0;
MMS_S32 file_pos = 0;
MMS_S8 flag_continue = 1;
MMS_S8 *ptr_buf = NULL;
MMS_S32 count = 0;
if(pTxtPath == NULL)
{
return -1;
}
MMS_memset(pathname, 0, 64);
MMS_strcpy(pathname, pTxtPath);
switch (folderType)
{
case MMS_FOLDER_TYPE_RECV:
MMS_strcat(pathname, "rmf.txt");
break;
case MMS_FOLDER_TYPE_SEND:
MMS_strcat(pathname, "smf.txt");
break;
case MMS_FOLDER_TYPE_DRAFT:
MMS_strcat(pathname, "dmf.txt");
break;
case MMS_FOLDER_TYPE_UNSEND:
MMS_strcat(pathname, "usmf.txt");
break;
default:
return -1;
}
fp = MMS_fopen(pathname, "r");
file_len = MMS_fstat(pathname);
if(file_len <= 0)
{
MMS_fclose(fp);
return -1;
}
file_content_buffer = (MMS_S8*)ALLOC_MEMORY(sizeof(MMS_S8)*(file_len + 256));
MMS_fread(file_content_buffer, file_len,1, fp);
MMS_fclose(fp);
file_pos = 0;
while(1)
{
if(file_pos >= file_len)
{
break;
}
flag_continue = 1;
while(flag_continue)
{
MMS_S8 msg_hdr_type = MSG_HDR_TYPE_UNKNOWN;
MMS_U8 msg_hdr_type_len = 0;
if(file_pos >= file_len)
{
MMS_TRACE_EVENT(("file_pos error!"));
FREE_MEMORY((U8*)file_content_buffer,(U16)(sizeof(MMS_S8)*(file_len + 256)));
return FALSE;
}
msg_hdr_type = (MMS_S8)*(file_content_buffer + file_pos);
msg_hdr_type_len = (MMS_U8)*(file_content_buffer + file_pos + 1);
ptr_buf = file_content_buffer + file_pos + 2;
file_pos += (msg_hdr_type_len + 2);
if(file_pos > file_len)
{
MMS_TRACE_EVENT(("file_len error , data may be corrupted!"));
FREE_MEMORY((U8*)file_content_buffer,(U16)(sizeof(MMS_S8)*(file_len + 256)));
return -1;
}
switch(msg_hdr_type)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -