📄 plxmms_obj.c
字号:
/*
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 + -