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

📄 plxmmsmessage.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
}

/***************************************************************************
* Function	mmsmsg_IsEmptyMessage
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsEmptyMessage(MmsMessage* msg)
{
    int          i;
    PMMSECONTENT content;

#ifdef MMS_DEBUG
    PlxTrace("mmsmsg_IsEmptyMessage\r\n");
#endif

    if(!msg || !msg->mmse || !msg->msg)
        return TRUE;

    i = 1;
    content = MMSE_GetContent(msg->mmse, msg->msg, i);
    while(content)
    {
#ifdef MMS_DEBUG
    PlxTrace("in will, type=%s\r\n", content->type);
#endif
        if(MMS_Strstr(content->type, "/smil"))
        {
            i++;
            content = MMSE_GetContent(msg->mmse, msg->msg, i);
            continue;
        }
        i++;
        if(i > 1)
		{
#ifdef MMS_DEBUG
    PlxTrace("no empty\r\n");
#endif
            return FALSE;
		}
        content = MMSE_GetContent(msg->mmse, msg->msg, i);
    }
#ifdef MMS_DEBUG
    PlxTrace("empty\r\n");
#endif
    return TRUE;
}

/***************************************************************************
* Function	mmsmsg_IsContentEmpty
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsContentEmpty(MmsMessage* msg)
{
    int          i;
    PMMSECONTENT content;
    
    if(!msg || !msg->mmse || !msg->msg)
        return TRUE;
    
    i = 1;
    content = MMSE_GetContent(msg->mmse, msg->msg, i);
    while(content)
    {
		if(MMS_Strstr(content->type, "/smil"))
		{
			i++;
			content = MMSE_GetContent(msg->mmse, msg->msg, i);
			continue;
		}
        if(!content->bAttachment)
            return FALSE;
        i++;
        content = MMSE_GetContent(msg->mmse, msg->msg, i);
    }

    return TRUE;
}

/***************************************************************************
* Function	mmsmsg_IsTooBig
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsTooBig(MmsMessage* msg, long size)
{
    long msg_len;
    long max_len;

    if(!msg)
        return TRUE;

    msg_len = mmsmsg_GetMessageSize(msg);
    max_len = mmsmsg_GetMaxMessageSize(msg);

    return (msg_len+size) > max_len;
}

/***************************************************************************
* Function	mmsmsg_IsMessageModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsMessageModified(MmsMessage* msg)
{
    if(!msg)
        return FALSE;
    return msg->message_modified;
}

/***************************************************************************
* Function	mmsmsg_IsImageModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsImageModified(MmsMessage* msg)
{
    if(!msg)
        return FALSE;
    return msg->image_modified;
}

/***************************************************************************
* Function	mmsmsg_IsSoundModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsSoundModified(MmsMessage* msg)
{
    if(!msg)
        return FALSE;
    return msg->sound_modified;
}

/***************************************************************************
* Function	mmsmsg_IsTextModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
BOOL mmsmsg_IsTextModified(MmsMessage* msg)
{
    if(!msg)
        return  FALSE;
    return msg->text_modified;
}

/***************************************************************************
* Function	mmsmsg_SetMessageModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetMessageModified(MmsMessage* msg, BOOL modified)
{
    if(!msg)
        return;
    msg->message_modified = modified;
}

/***************************************************************************
* Function	mmsmsg_SetImageModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetImageModified(MmsMessage* msg, BOOL modified)
{
    if(!msg)
        return;
    msg->image_modified = modified;
}

/***************************************************************************
* Function	mmsmsg_SetSoundModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetSoundModified(MmsMessage* msg, BOOL modified)
{
    if(!msg)
        return;
    msg->sound_modified = modified;
}

/***************************************************************************
* Function	mmsmsg_SetTextModified
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetTextModified(MmsMessage* msg, BOOL modified)
{
    if(!msg)
        return;
    msg->text_modified = modified;
}

/***************************************************************************
* Function	mmsmsg_SetPhoneNum
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetPhoneNum(MmsMessage* msg, const char* phonenums, 
                        int len, int type)
{
    char* p;

    if(!msg)
        return;

    switch(type)
    {
    case 0: //to
        p = msg->to;
        break;
    case 1://cc
        p = msg->cc;
        break;
    case 2: //bcc
        p = msg->bcc;
        break;
    default:
        return;
    }

    if(!phonenums)
    {
        //msg->to[0] = 0;
        p[0] = 0;
        return;
    }

    if(len >= MAX_TO_LEN)
    {
        MMS_Memcpy((void*)/*msg->to*/p, phonenums, MAX_TO_LEN-1);
        //msg->to[MAX_TO_LEN-1] = 0;
        p[MAX_TO_LEN-1] = 0;
    }
    else
    {
        MMS_Memcpy((void*)/*msg->to*/p, phonenums, len);
        //msg->to[len] = 0;
        p[len] = 0;
    }
}

/***************************************************************************
* Function	mmsmsg_GetPhoneNum
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
char* mmsmsg_GetPhoneNum(MmsMessage* msg, int type)
{
    if(!msg)
        return NULL;

    switch(type)
    {
    case 0:
        return msg->to;
    case 1:
        return msg->cc;
    case 2:
        return msg->bcc;
    }

    return NULL;
}

//for subject
/***************************************************************************
* Function	mmsmsg_GetSub
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
char* mmsmsg_GetSub(MmsMessage* msg)
{
    if(!msg || !msg->sub)
    {
        return NULL;
    }

    return msg->sub;
}

/***************************************************************************
* Function	mmsmsg_SetSub
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void mmsmsg_SetSub(MmsMessage* msg, char* sub, int len)
{
    if(!msg || !sub)
        return;

    if(msg->sub)
    {
        MMS_Free((void*)msg->sub);
        msg->sub = NULL;
    }
    msg->sub_len = 0;
/*
    if(len >= MAX_SUB_LEN)
    {
        MMS_Memcpy((void*)msg->sub, (void*)sub, MAX_SUB_LEN-1);
        msg->sub[MAX_SUB_LEN - 1] = 0;
    }
    else
    {
        if(len == 0)
        {
            msg->sub[0] = 0;
        }
        else
        {
            MMS_Memcpy((void*)msg->sub, (void*)sub, len);
            msg->sub[len] = 0;
        }
    }
*/
    msg->sub = (char*)MMS_Malloc(len+MMS_Strlen(SUB_CHARSET)+1);
    if(!msg->sub)
        return;
    MMS_Strcpy(msg->sub, sub);

    msg->sub_len = len;
}

/***************************************************************************
* Function	mmsmsg_SaveMmsMessage
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
int mmsmsg_SaveMmsMessage(MmsMessage* msg, enum SaveType save_type)
{
    int        nReturn = 0;
    MMSEOPTION option;
#ifdef MMS_DEBUG
    PlxTrace("mmsmsg_SaveMmsMessage\r\n");
#endif
    if(!msg || !msg->mmse || !msg->msg)
    {
        nReturn = SAVE_ERR_FAILED;
        goto SaveMsgError;
    }

    //no phone number
    if(msg->to[0] == 0 &&
       msg->cc[0] == 0 &&
       msg->bcc[0] == 0 &&
       save_type == SendSave)
    {
        nReturn = SAVE_ERR_NONUM;
        goto SaveMsgError;
    }

    //set phone number
    if(!mmsmsg_SavePhoneNum(msg))
    {
        nReturn = SAVE_ERR_FAILED;
        goto SaveMsgError;
    }

    if(!mmsmsg_IsSubValide(msg))
    {
        nReturn = SAVE_ERR_INVALIDSUB;
        goto SaveMsgError;
    }

    if(!mmsmsg_SaveSub(msg))
    {
        nReturn = SAVE_ERR_FAILED;
        goto SaveMsgError;
    }

    MMSE_GetOption(msg->mmse, &option);
    if(mmsmsg_GetMessageSize(msg) > option.MaxSendSize*1024)
    {
        nReturn = SAVE_ERR_TOOBIG;
        goto SaveMsgError;
    }

    //save message
    if(save_type == DraftSave || save_type == SendSave)
    {
        MMSE_SelectFolder(msg->mmse, MMSE_FOLDER_DRAFT);
        MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_WRITE);

#ifdef MMS_DEBUG
    PlxTrace("will MMSE_Save\r\n");
#endif
        msg->id = MMSE_Save(msg->mmse, msg->msg, 0);
#ifdef MMS_DEBUG
    PlxTrace("MMSE_Save end\r\n");
#endif
        MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);

        if(msg->id < 0)
        {
#ifdef MMS_DEBUG
    PlxTrace("save err\r\n");
#endif
            if(msg->id == MMSE_NO_SPACE)
            {
                nReturn = SAVE_ERR_NOSPACE;
                goto SaveMsgError;
            }

            nReturn = SAVE_ERR_FAILED;
            goto SaveMsgError;
        }
#ifdef MMS_DEBUG
    PlxTrace("save ok\r\n");
#endif
        //smil_SetModified(msg->m_smil, FALSE);
    }
    else if(save_type == TempSave) //for other box
    {
        MMSE_SelectFolder(msg->mmse, MMSE_FOLDER_TEMPLATE);
        MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_WRITE);

        msg->id = MMSE_Save(msg->mmse, msg->msg, 1);
        
        MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);

        if(msg->id < 0)
        {
            nReturn = SAVE_ERR_FAILED;
            goto SaveMsgError;
        }

        //smil_SetModified(msg->m_smil, FALSE);
    }

    msg->message_modified = FALSE;
    msg->image_modified = FALSE;
    msg->text_modified = FALSE;
    msg->sound_modified = FALSE;

    return SAVE_ERR_OK;

SaveMsgError:
    MMSE_ChangeMode(msg->mmse, MMSE_ACCESS_READ);

    return nReturn;
}

/***************************************************************************
* Function	mmsmsg_GetMmse
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void* mmsmsg_GetMmse(MmsMessage* msg)
{
    if(!msg)
        return NULL;
    return msg->mmse;
}

/***************************************************************************
* Function	mmsmsg_GetMsg
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void* mmsmsg_GetMsg(MmsMessage* msg)
{
    if(!msg)
        return NULL;
    return msg->msg;
}

/***************************************************************************
* Function	mmsmsg_GetMsgId
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
long mmsmsg_GetMsgId(MmsMessage* msg)
{
    if(!msg)
        return -1;
    return msg->id;
}

⌨️ 快捷键说明

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