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

📄 mmimmsglobaldef.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#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 + -