📄 plxmms_obj.c
字号:
case MMS_OBJ_TEXT:
default:
save_type = PCONTYPE_UNKNOWN;
// PLIB_MessageBox(PMBTYPE_ERROR, NULL,
// (WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
// ObjMenuGoBack();
break;
}
//data
data = mmsmsg_GetGivenContentData(g_obj_data.message,
g_obj_data.cur_item->content, &len);
if(!data)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
if(bContentText) //conver to UNICODE
{
uni_text = UTF8ToUnicodeText((const char*)data, len, &uni_len);
if(!uni_text)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
MMS_Free((void*)data);
ObjMenuGoBack();
return;
}
// cur_screen_id = GetActiveScreenId();
// SetActiveScreenId(SCR_ID_PLX_MMS_OBJLIST);
PLIB_SaveDownloadData((void*)uni_text, uni_len*2,
g_obj_data.cur_item->content->type,
(const WCHAR*)def_name, 0, SaveObjCallback);
MMS_Free((void*)uni_text);
}
else
{
// cur_screen_id = GetActiveScreenId();
// SetActiveScreenId(SCR_ID_PLX_MMS_OBJLIST);
if(g_obj_data.cur_item->type == MMS_OBJ_BMP ||
g_obj_data.cur_item->type == MMS_OBJ_WBMP ||
g_obj_data.cur_item->type == MMS_OBJ_GIF ||
g_obj_data.cur_item->type == MMS_OBJ_PNG ||
g_obj_data.cur_item->type == MMS_OBJ_JPG)
{
PLIB_SaveDownloadData(data, len, NULL,
(const WCHAR*)def_name, 0, SaveObjCallback);
}
else
{
PLIB_SaveDownloadData(data, len, g_obj_data.cur_item->content->type,
(const WCHAR*)def_name, 0, SaveObjCallback);
}
}
MMS_Free((void*)data);
}
/***************************************************************************
* Function SaveImage
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
/*void SaveImage(void)
{
U8* pDot = NULL;
unsigned short* dot = L".";
if(!g_obj_data.cur_item)
return;
//get obj name
pfnUnicodeStrcpy((S8*)g_obj_data.save_filename, (S8*)g_obj_data.cur_item->name);
pDot= MMS_WFindCharFromEnd(g_obj_data.save_filename,
pfnUnicodeStrlen((S8*)g_obj_data.save_filename), (const unsigned short)dot[0]);
//remove wchars after '.'
if(pDot)
{
*((unsigned short*)pDot) = 0x0000;
}
EndSaveImage(g_obj_data.save_filename);
}
*/
/***************************************************************************
* Function SaveSound
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
/*void SaveSound(void)
{
U8* pDot = NULL;
unsigned short* dot = L".";
if(!g_obj_data.cur_item)
return;
pfnUnicodeStrcpy((S8*)g_obj_data.save_filename, (S8*)g_obj_data.cur_item->name);
pDot= MMS_WFindCharFromEnd(g_obj_data.save_filename,
pfnUnicodeStrlen((S8*)g_obj_data.save_filename), (const unsigned short)dot[0]);
if(pDot)
{
*((unsigned short*)pDot) = 0x0000;
}
EndSaveSound(g_obj_data.save_filename);
}
*/
/***************************************************************************
* Function EndSaveImage
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
//#define SAVE_OBJ_PATH L"D:\\\\"
/*
void EndSaveImage(U8* def_name)
{
U8* data;
long len;
U8 filename[(MAX_OBJ_NAME_LEN + 16)*2];
PLIBCONTENTTYPE save_type;
if(!g_obj_data.cur_item || !def_name)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
//type and file name
// pfnUnicodeStrcpy((S8*)filename, (S8*)SAVE_OBJ_PATH);
pfnUnicodeStrcpy((S8*)filename, (S8*)def_name);
switch(g_obj_data.cur_item->type)
{
case MMS_OBJ_BMP:
//pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)filename, (S8*)GetString(MMS_OBJ_STR_BMP));
save_type = PIMG_BMP;
break;
case MMS_OBJ_WBMP:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_WBMP));
save_type = PIMG_WBMP;
break;
case MMS_OBJ_GIF:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_GIF));
save_type = PIMG_GIF;
break;
case MMS_OBJ_JPG:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_JPG));
save_type = PIMG_JPG;
break;
case MMS_OBJ_PNG:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_PNG));
save_type = PIMG_PNG;
break;
default:
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
//data
data = mmsmsg_GetGivenContentData(g_obj_data.message,
g_obj_data.cur_item->content, &len);
if(!data)
{
// DisplayPopup((U8*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0, 0, 1000, 0);
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
PLIB_SaveDownloadData(data, len, save_type,
(const WCHAR*)def_name, SaveObjCallback);
}
*/
/***************************************************************************
* Function EndSaveSound
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
/*void EndSaveSound(U8* def_name)
{
U8* data;
long len;
U8 filename[(MAX_OBJ_NAME_LEN + 16)*2];
PLIBCONTENTTYPE save_type;
if(!g_obj_data.cur_item)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
//type and file name
// pfnUnicodeStrcpy((S8*)filename, (S8*)SAVE_OBJ_PATH);
pfnUnicodeStrcpy((S8*)filename, (S8*)def_name);
switch(g_obj_data.cur_item->type)
{
case MMS_OBJ_MID:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)filename, (S8*)GetString(MMS_OBJ_STR_MID));
save_type = PAUDIO_MIDI;
break;
case MMS_OBJ_WAV:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_WAV));
save_type = PAUDIO_WAV;
break;
// case MMS_OBJ_MP3:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_MP3));
// break;
case MMS_OBJ_MMF:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_MMF));
save_type = PAUDIO_MMF;
break;
case MMS_OBJ_AMR:
// pfnUnicodeStrcat((S8*)filename, (S8*)def_name);//g_obj_data.save_filename);
// pfnUnicodeStrcat((S8*)g_obj_data.save_filename, (S8*)GetString(MMS_OBJ_STR_AMR));
save_type = PAUDIO_AMR;
break;
default:
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
//data
data = mmsmsg_GetGivenContentData(g_obj_data.message,
g_obj_data.cur_item->content, &len);
if(!data)
{
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
ObjMenuGoBack();
return;
}
PLIB_SaveDownloadData(data, len, save_type,
(const WCHAR*)def_name, SaveObjCallback);
}
*/
/***************************************************************************
* Function SaveObjCallback
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void SaveObjCallback(PLIBEVENT event)
{
switch(event)
{
case PEVENT_SUCCESS:
ObjMenuGoBack();
PLIB_MessageBox(PMBTYPE_SUCCESS, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEOK), 0);
break;
case PEVENT_FSFAIL:
ObjMenuGoBack();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
break;
case PEVENT_USERABORT:
ObjMenuGoBack();
break;
case PEVENT_BACKIDLE:
break;
case PEVENT_SPACEFULL:
ObjMenuGoBack();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_BOX_NOSPACE), 0);
break;
default:
ObjMenuGoBack();
PLIB_MessageBox(PMBTYPE_ERROR, NULL,
(WCHAR*)GetString(STR_ID_PLX_MMS_OBJ_SAVEFAIL), 0);
break;
}
}
////////////////////////////////////////////////////////////////////////////
//softkey handler
////////////////////////////////////////////////////////////////////////////
/***************************************************************************
* Function CreateObjMenu
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
BOOL CreateObjMenu(void)
{
U16 icon = IMG_GLOBAL_L1;
g_obj_data.hMenu = PlxCreateDMenu(0);
if(!g_obj_data.hMenu)
return FALSE;
//add items
//view or play
PlxInsertDMenuItem(g_obj_data.hMenu, 0, MF_BYPOSITION,
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++;
if(g_obj_data.bAttList)
{
//insert
PlxInsertDMenuItem(g_obj_data.hMenu, 1, MF_BYPOSITION,
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_INS].icon);
icon++;
//del
PlxInsertDMenuItem(g_obj_data.hMenu, 2, MF_BYPOSITION,
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_DEL].icon);
icon++;
//delall
PlxInsertDMenuItem(g_obj_data.hMenu, 3, MF_BYPOSITION,
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_DELALL].icon);
}
else
{
//save
PlxInsertDMenuItem(g_obj_data.hMenu, 1, MF_BYPOSITION,
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_SAVE].icon);
}
return TRUE;
}
/***************************************************************************
* Function EntryViewObj
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void EntryViewObj(void)
{
if(!CreateOneObjView())
ObjMenuGoBack();
}
/***************************************************************************
* Function EntryPlayObj
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void EntryPlayObj(void)
{
ObjMenuGoBack();
if(!CreateOneObjView())
{
//ObjMenuGoBack();
}
}
/***************************************************************************
* Function EntryStopObj
* Purpose
* Params
* Return
* Remarks
\**************************************************************************/
void EntryStopObj(void)
{
/*
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;
}
g_obj_data.bSoundPlaying = FALSE;
}
*/
StopPlayingSound();
if(g_obj_data.data)
{
MMS_Free((void*)g_obj_data.data);
g_obj_data.data = NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -