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