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

📄 mmimms_main.c

📁 彩信的源代码,包括彩信的打包,发送,接收,解包,对做彩信软件的朋友有帮助.
💻 C
📖 第 1 页 / 共 5 页
字号:
	}
	mmsf_GetConstFileData(content->filename,(char **)&Video->VidBuf,(int *)&Video->size );
	
	if(Video->VidBuf == NULL)
	{
		SCI_TRACE_LOW("malloc failed:size = %d",len);
		return -1;
	}
	
#endif	
	SCI_TRACE_LOW("MMIMMS_GetCurSlideVideo out");
	return 0;

}

/* ----------------------------------------------------------------------------
* Function Name: MMIMMS_GetCurSlideImage
* Purpose:得到当前页的图像信息
* Input:  T_Composer_Image:	图片结构
		  pMMS_EDocument: 编辑文档
* Returns:T_WORD
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
T_WORD MMIMMS_GetCurSlideImage(T_Composer_Image*Image,pMMS_EDocument p_edoc)
{
	uint32 		    len = 0,size=0;
	pMMS_Content 	content = NULL;
	pMMS_EDocument p_curedoc;
	SCI_TRACE_LOW("MMIMMS_GetCurSlideImage in");
	p_curedoc = p_edoc;
	content = p_curedoc->slide_cur->content_root;
	if(p_curedoc->slide_cur->image_flag != 1)
	{
		SCI_TRACE_LOW("there is not any image in the slide");
		return -1;
	}
	for(;content;content = content->next)
	{
       if(CmsIsSupportType(content->type))
		   break;
	}
	if(content == NULL)
	{
		SCI_TRACE_LOW("there is not any image in the slide,image flag error");
		return -1;
	}
	if(content->type == MMS_TYPE_GIF)
	{
		size=content->contentsize;
		len = content->contentsize+8;
		Image->Type="image/gif";					
	}
	else if(content->type == MMS_TYPE_WBMP)
	{
		Image->Type="image/vnd.wap.wbmp";
		size = content->contentsize;
		len = content->contentsize;					
	}
	else if(content->type == MMS_TYPE_JPEG)
	{
		Image->Type="image/jpeg";
		size = content->contentsize;
		len = content->contentsize;					
	}
	else if (content->type == MMS_TYPE_BMP1)
	{
		Image->Type = "image/bmp";
		size = content->contentsize;
		len = content->contentsize;
	}
	else if(content->type == MMS_TYPE_PNG)
	{
		Image->Type="image/png";
		size = content->contentsize;
		len = content->contentsize;					
	}
	else 
	{
		SCI_TRACE_LOW("unknown image type:%d",content->type);
	}
	mmsf_GetConstFileData(content->filename,(char **)&Image->ImgBuf,(int *)&Image->size);
	if(Image->ImgBuf == NULL)
	{
		SCI_TRACE_LOW("malloc failed:size = %d",len);
		return -1;
	}
	SCI_TRACE_LOW("MMIMMS_GetCurSlideImage out");
	return 0;
}
/* ----------------------------------------------------------------------------
* Function Name: MMIMMS_GetCurText
* Purpose:得到当前页的文本信息
* Input:  pMMS_EDocument:编辑文档
		  T_Composer_Text:文本结构
* Returns:T_WORD
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
T_WORD MMIMMS_GetCurText(T_Composer_Text*Text,pMMS_EDocument p_cur_doc)
{
	uint32 		    len = 0;
	uint8* 		    str = NULL;
	pMMS_Content 	content = NULL;
	SCI_TRACE_LOW("MMIMMS_GetCurText in");
	if(p_cur_doc->slide_cur->text_flag != 1)
	{
		SCI_TRACE_LOW("error:there is not any text in the slide");
		return -1;
	}
	content = p_cur_doc->slide_cur->content_root;
	for(;content;content = content->next)
	{
		if(content->type == MMS_TYPE_TEXT)
			break;
	}
	if(content == NULL)
	{
		SCI_TRACE_LOW("error:there is not any text in the slide,text flag error");
		return -1;
	}
	mmsf_GetConstFileData(content->filename,(char **)&str,(int *)&len);
	SCI_TRACE_BUF("FNH GET TEXT str = %x",str,10);
	Text->size = CmsGetUnicodeLen((unsigned char *)str);
	SCI_TRACE_LOW("FNH GET TEXT LEN= %d",Text->size);
	Text->TxtBuf = (T_UBYTE* )str+2;
	SCI_TRACE_LOW("MMIMMS_GetCurText out");
	return 0;
}

/* ----------------------------------------------------------------------------
* Function Name: MMIMMS_GetCurSlideAudio
* Purpose:得到当前页的音乐信息
* Input:  T_Composer_Audio:	音乐结构
		  pMMS_EDocument: 编辑文档
* Returns:T_WORD
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
T_WORD MMIMMS_GetCurSlideAudio(T_Composer_Audio *audio,pMMS_EDocument pedoc)
{
	pMMS_EDocument  pedoctemp;
	pedoctemp = pedoc;
	SCI_TRACE_LOW("FNH in GetCurAudio pedoctemp->slide_cur->audiofile = %s",pedoctemp->slide_cur->audiofile);
	mmsf_GetConstFileData(pedoctemp->slide_cur->audiofile,(char **)&audio->AudBuf,(int *)&audio->size);
	switch(pedoctemp->slide_cur->audio_type)
	{
		case MMS_TYPE_WAV:
			audio->Type = "audio/wav";
			SCI_TRACE_LOW("FNH type is audio/wav");
			break;
#ifdef HAVE_AMR		
		case MMS_TYPE_AMR:	
			audio->Type = "audio/amr";
			SCI_TRACE_LOW("FNH type is audio/amr");
			break;
#endif
		case MMS_TYPE_MIDI:
			audio->Type="audio/midi";
			SCI_TRACE_LOW("FNH type is audio/midi");
			break;
#ifdef HAVE_MP3
		case MMS_TYPE_MP3:
			audio->Type = "audio/mp3";
			SCI_TRACE_LOW("FNH type is audio/mp3");
			break;
#endif
		default:
			SCI_TRACE_LOW("unknown type:%d",pedoctemp->slide_cur->audio_type);
			break;
	}
	return 0;
}

/******************************************************************************
 * 函数定义:	MMIMMS_Get_Cur_Second
 * 函数说明:	得到当前的秒数
 * 参数说明:	无
 * 返回值:		当前的秒数
********************************************************************************/
long MMIMMS_Get_Cur_Second()
{
	long cursecond = 0;
	SCI_DATE_T curdate;
	SCI_TIME_T curtime ;
	TM_GetSysDate(&curdate);
	SCI_TRACE_LOW("FNH %d,%d,%d",curdate.year,curdate.mon,curdate.mday);
	TM_GetSysTime(&curtime);
	SCI_TRACE_LOW("FNH %d,%d,%d",curtime.hour,curtime.min,curtime.sec);
	cursecond = MMI_Tm2Second(curtime.sec,curtime.min,curtime.hour,curdate.mday,curdate.mon,curdate.year );
	SCI_TRACE_LOW("FNH cursecond = %ld",cursecond);
	cursecond = cursecond + (365*23 +366*7)*24*3600;
	SCI_TRACE_LOW("FNH cursecond = %ld",cursecond);
	return cursecond;
}

/* ----------------------------------------------------------------------------
* Function Name: MMIMMS_Receive_MMS
* Purpose:彩信网络回调函数
* Input:  status:	网络返回状态
          prompt: 返回参数
		  status_value:当前网络状态
* Returns: void
* Author:nihongf@mobilesoft.com.cn
* ----------------------------------------------------------------------------*/ 
int mms_lib_callback(int status,void *prompt,int status_value)
{
	SCI_TRACE_LOW("mms_lib_callback COME IN");
	SCI_TRACE_LOW("mms_lib_callback wap_mms_init is %d",wap_mms_init);
	if(wap_mms_init == MMICMSWAP_BROWSER)
	{
		SCI_TRACE_LOW("it is not my status");
		return 0;
	}//xuelianb add [2006-01-11]
	switch(status)
	{
	case LIB_STATUS_NORMAL_STATUS:
		//可以在此处在状态栏上显示当前状况,如正在连接网关,正在发送数据,正在接收数据等
		//是正常处理过程中的状态显示。
		{
			switch(status_value)
			{
			case MMSNETLINKING:
				//g_netusing = MMS_MSG_NETUSING_STEP2;
				SCI_TRACE_LOW("mms_lib_callback the g_netusing is %d",g_netusing);
				if(g_issendingreadrpt == FALSE)
				{
					//g_progresscurrentsize = 3*(g_progressneedsize/20);
					// MMIMMS_DisplaySendRecvProgress(g_progresscurrentsize,g_progressneedsize);
				}
				SCI_TRACE_LOW("mms_lib_callback:%s\n","connecting");
				break;
				
			case  MMSNETLINK_SUCCESS:
				if(g_issendingreadrpt == FALSE)
				{
					g_progresscurrentsize = 3*(g_progressneedsize/10);
					SCI_TRACE_LOW("fnh MMSNETLINK_SUCCESS iFClose = %d",iFClose);
					if (iFClose == 0)		//fnh add 0324 for MS00041490
					{
						SCI_TRACE_LOW("fnh before display progress");
						MMIMMS_DisplaySendRecvProgress(g_progresscurrentsize,g_progressneedsize);
					}
				}
				SCI_TRACE_LOW("mms_lib_callback:%s\n","mms connect success");
				break;
				
			case  WAPCONNECT_SUCCESS:
				SCI_TRACE_LOW("mms_lib_callback:%s\n","wap connect success");
				break;
				
			case  MMS_RECEIVING:
				if(g_issendingreadrpt == FALSE)
				{
					g_progresscurrentsize = (g_progressneedsize/2);
					SCI_TRACE_LOW("fnh MSG_RECEIVING iFClose = %d",iFClose);
					if (iFClose == 0)
					{
						SCI_TRACE_LOW("fnh before display progress");
						MMIMMS_DisplaySendRecvProgress(g_progresscurrentsize,g_progressneedsize);
					}
				}
				SCI_TRACE_LOW("mms_lib_callback:%s\n","recving mms");
				break;
				
			case  MMS_SENDING:
				if(g_issendingreadrpt == FALSE)
				{
					g_progresscurrentsize = (g_progressneedsize/2);
					SCI_TRACE_LOW("fnh MMS_SENDING iFClose = %d",iFClose);
					if (iFClose == 0)
					{
						SCI_TRACE_LOW("fnh before display progress");
						MMIMMS_DisplaySendRecvProgress(g_progresscurrentsize,g_progressneedsize);
					}
				}
				SCI_TRACE_LOW("mms_lib_callback:%s\n","sending mms");
				break;
				
			default:
				SCI_TRACE_LOW("mms_lib_callback:%s\n","LIB_STATUS_NORMAL_STATUS default.");
				break;
			}
		}
		break;
		
	case  LIB_STATUS_SENDRETURN:
		{
			switch(status_value)
			{
			case MMS_RESPONSE_STATUS_VALUE_OK:
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				SCI_TRACE_LOW("mms_lib_callback:send success!");//除此条外,下列各种情况均属发送失败
				if(g_issendingreadrpt == FALSE)
				{
					SCI_TRACE_LOW("fnh MMS_RESPONSE_STATUS_VALUE_OK iFClose = %d",iFClose);
					if (iFClose == 0)
					{
						SCI_TRACE_LOW("fnh before display progress");
						MMIMMS_DisplaySendRecvProgress(g_progressneedsize,g_progressneedsize);
					}
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SEND_OK, PNULL, 0);
				}else
				{ 
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SEND_OK, PNULL, 0); 
				}
				break;
				
			case MMS_RESPONSE_STATUS_VALUE_E_UNSPECIFIED:
				SCI_TRACE_LOW("mms_lib_callback:unknown error");
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_SERVICE_DENIED:
				SCI_TRACE_LOW("mms_lib_callback:service denied");
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_FORMAT_CORRUPT:
				SCI_TRACE_LOW("mms_lib_callback:message format corrupt!");
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
				
			case MMS_RESPONSE_STATUS_VALUE_E_ADDRESS_UNRESOLVED:
				SCI_TRACE_LOW("mms_lib_callback:address error");//这条比较管用,当用户输错了地址时,会收到这个消息 
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_MESSAGE_NOT_FOUND:
				SCI_TRACE_LOW("mms_lib_callback:message not found");
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_NETWORK_PROBLEM:
				SCI_TRACE_LOW("mms_lib_callback:server busy");//虽字面是网络问题,但这个是在服务器过忙的情况下的状态
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_NOT_ACCEPTED:
				SCI_TRACE_LOW("mms_lib_callback:message not accepted");//由于消息的大小,媒体类型,或考贝权等原因
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_UNSUPORTED_MESSAGE:
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				SCI_TRACE_LOW("mms_lib_callback:unsuported message");
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else
				{
					g_issendingreadrpt = FALSE;
					MMK_PostMsg(MMIMMS_SEND_MMSREADRPT_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}
				break;
			case MMS_RESPONSE_STATUS_VALUE_E_UNKNOW_ERROR:
				g_netusing = MMS_MSG_NETUSING_STEP2;//modify 2006-1-3
				SCI_TRACE_LOW("mms_lib_callback:send failed,unknow error");
				if(g_issendingreadrpt== FALSE)
				{
					MMK_PostMsg(MMIMMS_SEND_MMS_WAITING_WIN_ID, MSG_MMS_SENDED_FAILED, PNULL, 0);
				}else

⌨️ 快捷键说明

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