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

📄 plxmms_obj.c

📁 mtk wap和mms代码。。适应mtk 25。26平台
💻 C
📖 第 1 页 / 共 5 页
字号:
/*
    if(g_obj_data.bSoundPlaying)
    {
        switch(g_obj_data.type)
        {
        case MMS_OBJ_MID:
            StopAudioMidiStream();
            break;
        case MMS_OBJ_AMR:
        case MMS_OBJ_IMY:
            StopAudioStream();
            break;
    //        case MMS_SND_MMF:
    //            break;
        case MMS_OBJ_WAV:
            StopAudioWavStream();
            break;
        }
    }
*/
    StopPlayingSound();
    ClearList();
    if(g_obj_data.data)
        MMS_Free((void*)g_obj_data.data);
    if(g_obj_data.hMenu)
        PlxDestroyDMenu(g_obj_data.hMenu);
}

/***************************************************************************
* Function	MmsObjListHiliteHandler
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void MmsObjListHiliteHandler(S32 index)
{
    g_obj_data.cur_item_index = index;

    if(!g_obj_data.bLeavListByMenu)
    {
        StopPlayingSound();
        if(g_obj_data.data)
        {
            MMS_Free((void*)g_obj_data.data);
            g_obj_data.data = NULL;
        }
    }
}

/***************************************************************************
* Function	MmsObjListGetItemText
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
pBOOL MmsObjListGetItemText(S32 item_index, UI_string_type str_buff, 
                         UI_image_type* img_buff_p, U8 str_img_mask)
{
    MmsObjItem* p;

    p = GetListNode(item_index);
    if(!p)
    {
        //pfnUnicodeStrcpy((S8*)str_buff, (S8*)L"");
        str_buff[0] = 0;
        str_buff[1] = 0;
    }
    else
    {
        pfnUnicodeStrcpy((S8*)str_buff, (S8*)p->name);
    }
//    *img_buff_p = (UI_image_type)GetImage((U16)(IMG_GLOBAL_L1 + item_index));
    if(!p)
        *img_buff_p = NULL;
    else
    {
        switch(p->type)
        {
        case MMS_OBJ_TEXT:
            *img_buff_p = (UI_image_type)GetImage(IMG_ID_PLX_MMS_OBJTEXT);
            break;
        case MMS_OBJ_BMP:
        case MMS_OBJ_WBMP:
        case MMS_OBJ_GIF:
        case MMS_OBJ_JPG:
        case MMS_OBJ_PNG:
            *img_buff_p = (UI_image_type)GetImage(IMG_ID_PLX_MMS_OBJIMG);
            break;
        case MMS_OBJ_MID:
        case MMS_OBJ_MP3:
        case MMS_OBJ_AMR:
        case MMS_OBJ_WAV:
        case MMS_OBJ_MMF:
        case MMS_OBJ_IMY:
            *img_buff_p = (UI_image_type)GetImage(IMG_ID_PLX_MMS_NEW_SNDICON);
            break;
        default:
            *img_buff_p = (UI_image_type)GetImage(IMG_ID_PLX_MMS_OBJUNKNOWN);
        }
    }

    return TRUE;
}

/***************************************************************************
* Function	EnterObjListMenu
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
void EnterObjListMenu(void)
{
    U16 icon = IMG_GLOBAL_L1;

    if(!g_obj_data.hMenu)
        return;
    if(g_obj_data.obj_head == 0 && !g_obj_data.bAttList)
        return;
    
    if(g_obj_data.cur_item_index < 0)
        g_obj_data.cur_item_index = 0;

    //no selected item, choose one
/*    if(!g_obj_data.cur_item)
    {
        g_obj_data.cur_item = GetListNode(g_obj_data.cur_item_index);
    }
*/
    g_obj_data.cur_item = GetListNode(g_obj_data.cur_item_index);
    if(!g_obj_data.cur_item) //no selected item, disable items
    {
        //view
        PlxModifyDMenuItem(g_obj_data.hMenu, 
            0, MF_BYPOSITION | MF_DISABLED,
            g_obj_entry_table[MMS_OBJ_VIEW].id, 
            (const char *)GetString(g_obj_entry_table[MMS_OBJ_VIEW].string), 
            icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
        icon++;
        //delete stop
        PlxDeleteDMenuItem(g_obj_data.hMenu, 
            g_obj_entry_table[MMS_OBJ_STOP].id, MF_BYCOMMAND);
        if(g_obj_data.bAttList)
        {
            //ins
            PlxModifyDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_INS].id, MF_BYCOMMAND | MF_ENABLED,
                g_obj_entry_table[MMS_OBJ_INS].id, 
                (const char *)GetString(g_obj_entry_table[MMS_OBJ_INS].string), 
                icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            icon++;
            //del
            PlxModifyDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_DEL].id, MF_BYCOMMAND | MF_DISABLED,
                g_obj_entry_table[MMS_OBJ_DEL].id, 
                (const char *)GetString(g_obj_entry_table[MMS_OBJ_DEL].string), 
                icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            icon++;
            //delall
            PlxModifyDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_DELALL].id, MF_BYCOMMAND | MF_DISABLED,
                g_obj_entry_table[MMS_OBJ_DELALL].id, 
                (const char *)GetString(g_obj_entry_table[MMS_OBJ_DELALL].string), 
                icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
        }
        else
        {
            //save
            PlxModifyDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_SAVE].id, MF_BYCOMMAND | MF_DISABLED,
                g_obj_entry_table[MMS_OBJ_SAVE].id, 
                (const char *)GetString(g_obj_entry_table[MMS_OBJ_SAVE].string), 
                icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
        }
    }

    //view or play
    if(g_obj_data.cur_item)
    {
        switch(g_obj_data.cur_item->type)
        {
        case MMS_OBJ_TEXT:
        case MMS_OBJ_BMP:
        case MMS_OBJ_WBMP:
        case MMS_OBJ_GIF:
        case MMS_OBJ_JPG:
        case MMS_OBJ_PNG:
            //enable view
            if(g_obj_data.cur_item->type == MMS_OBJ_TEXT &&
               g_obj_data.cur_item->content->bAttachment == TRUE)
            {
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    0, MF_BYPOSITION | MF_DISABLED,
                    g_obj_entry_table[MMS_OBJ_VIEW].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_VIEW].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            else
            {
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    0, MF_BYPOSITION | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_VIEW].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_VIEW].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            icon++;
            
            //delete stop
            PlxDeleteDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_STOP].id, MF_BYCOMMAND);

            if(g_obj_data.bAttList)
            {
                //ins
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_INS].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_INS].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_INS].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;

                //del
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DEL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DEL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DEL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;

                //delall
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DELALL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DELALL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DELALL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            else
            {
                //save
/*                if(g_obj_data.cur_item->type == MMS_OBJ_TEXT)
                {
                    PlxModifyDMenuItem(g_obj_data.hMenu, 
                        g_obj_entry_table[MMS_OBJ_SAVE].id, MF_BYCOMMAND | MF_DISABLED,
                        g_obj_entry_table[MMS_OBJ_SAVE].id, 
                        (const char *)GetString(g_obj_entry_table[MMS_OBJ_SAVE].string), 
                        icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                }
                else
                {
*/                    PlxModifyDMenuItem(g_obj_data.hMenu, 
                        g_obj_entry_table[MMS_OBJ_SAVE].id, MF_BYCOMMAND | MF_ENABLED,
                        g_obj_entry_table[MMS_OBJ_SAVE].id, 
                        (const char *)GetString(g_obj_entry_table[MMS_OBJ_SAVE].string), 
                        icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
//                }
            }
            break;

        case MMS_OBJ_MID:
        case MMS_OBJ_MP3:
        case MMS_OBJ_AMR:
        case MMS_OBJ_WAV:
        case MMS_OBJ_MMF:
        case MMS_OBJ_IMY:
        case MMS_OBJ_3GP:
            //enable play
            if(g_obj_data.cur_item->type != MMS_OBJ_3GP)// &&
               //g_obj_data.cur_item->type != MMS_OBJ_MP3)
            {
                PlxModifyDMenuItem(g_obj_data.hMenu, 0, MF_BYPOSITION | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_PLAY].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_PLAY].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_PLAY].icon);
            }
            else
            {
                PlxModifyDMenuItem(g_obj_data.hMenu, 0, MF_BYPOSITION | MF_DISABLED,
                    g_obj_entry_table[MMS_OBJ_PLAY].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_PLAY].string), 
                    icon);
            }

            icon++;
            //delete stop
            PlxDeleteDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_STOP].id, MF_BYCOMMAND);

            if(g_obj_data.cur_item->type != MMS_OBJ_3GP)// &&
               //g_obj_data.cur_item->type != MMS_OBJ_MP3)
            {
                //add stop
                PlxInsertDMenuItem(g_obj_data.hMenu, 1, MF_BYPOSITION | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_STOP].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_STOP].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_PLAY].icon);
                icon++;
            }

            if(g_obj_data.bAttList)
            {
                //ins
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_INS].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_INS].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_INS].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;

                //del
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DEL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DEL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DEL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;

                //delall
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DELALL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DELALL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DELALL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            else
            {
                //save
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_SAVE].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_SAVE].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_SAVE].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            break;
        default:
            //disable
            //view
            PlxModifyDMenuItem(g_obj_data.hMenu, 
                0, MF_BYPOSITION | MF_DISABLED,
                g_obj_entry_table[MMS_OBJ_VIEW].id, 
                (const char *)GetString(g_obj_entry_table[MMS_OBJ_VIEW].string), 
                icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            icon++;
            //delete stop
            PlxDeleteDMenuItem(g_obj_data.hMenu, 
                g_obj_entry_table[MMS_OBJ_STOP].id, MF_BYCOMMAND);
            if(g_obj_data.bAttList)
            {
                //ins
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_INS].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_INS].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_INS].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;
                //del
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DEL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DEL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DEL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
                icon++;
                //delall
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_DELALL].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_DELALL].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_DELALL].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
            else
            {
                //save
                PlxModifyDMenuItem(g_obj_data.hMenu, 
                    g_obj_entry_table[MMS_OBJ_SAVE].id, MF_BYCOMMAND | MF_ENABLED,
                    g_obj_entry_table[MMS_OBJ_SAVE].id, 
                    (const char *)GetString(g_obj_entry_table[MMS_OBJ_SAVE].string), 
                    icon);//g_obj_entry_table[MMS_OBJ_VIEW].icon);
            }
        }//switch
    }

    g_obj_data.bLeavListByMenu = TRUE;

    PlxSetDMenuDispInfo(STR_GLOBAL_OPTIONS, IMG_ID_PLX_MMS, 
                STR_GLOBAL_OK, IMG_GLOBAL_OK, STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
    PlxShowDMenu(g_obj_data.hMenu, SCR_ID_PLX_MMS_OBJMENU, 
        STR_ID_PLX_MMS_MENU, MmsObjMenuCallback, EmptyMenuEntry);
//    SetRightSoftkeyFunction(ObjMenuGoBack, KEY_EVENT_UP);
}

/***************************************************************************
* Function	GetObjList
* Purpose	
* Params	
* Return	
* Remarks	
\**************************************************************************/
int GetObjList(void)
{
    void* mmse;
    int i;
    PMMSECONTENT content;
    U8    obj_type;
    char* name;
    char* type;
    MmsObjItem* item;
    U8*   type_string = NULL;
	WCHAR* wObjName = NULL;
	int    wObjNameLen;
    unsigned char* data = NULL;
    long   data_len;
    WCHAR* wDot = NULL;

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

    if(!g_obj_data.message)
        return 0;

    mmse = mmsmsg_GetMmse(g_obj_data.message);
    if(!mmse)
        return 0;

    i = 1;
    content = MMSE_GetContent(mmse, g_obj_data.message->msg, i);
    while(content)
    {
        if(g_obj_data.bAttList)
        {
            if(!content->bAttachment)

⌨️ 快捷键说明

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