📄 mms_mmis.c
字号:
/*
+-----------------------------------------------------------------------------
| File : mms_mmis.c
+-----------------------------------------------------------------------------
| Purpose : This Modul defines the functions for processing
| of outcomming primitives to mmi for mms task
+-----------------------------------------------------------------------------
*/
#define ENTITY_MMS
/*==== INCLUDES ===================================================*/
#if defined (NEW_FRAME)
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include "typedefs.h"
#include "pcm.h"
#include "pconst.cdg"
#include "mconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "vsi.h"
#include "custom.h"
#include "gsm.h"
#include "prim.h"
#include "pei.h"
#include "tok.h"
#else
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include "stddefs.h"
#include "pconst.cdg"
#include "mconst.cdg"
#include "message.h"
#include "ccdapi.h"
#include "custom.h"
#include "gsm.h"
#include "prim.h"
#include "vsi.h"
#include "pei.h"
#include "tok.h"
#endif
#include "mmstask.h"
#include "mms_clib.h"
#define TRACE_EVENT(f) MMS_TRACE_EVENT((f));
static BYTE mmstask_processing = 0;
void set_mmstask_proc(BYTE flag)
{
if(flag)
mmstask_processing = 1;
else
mmstask_processing = 0;
MMS_TRACE_EVENT(("set_mmstask_proc: %d", mmstask_processing));
}
BYTE get_mmstask_proc()
{
return mmstask_processing;
}
/***************************************
* *
* MMS TASK *
* *
****************************************/
/*
$Description:
mms-->mms,
*/
void S_MMS_MMI_READY_CNF(T_MMS_MMI_READY_CNF * parameter)
{
TRACE_EVENT("S_MMS_MMI_READY_CNF");
psa_MMS_MMI_IND(S_MMS_MMI_READY_CNF_ID, parameter, sizeof(T_MMS_MMI_READY_CNF) );
}
/*
$Description:
mms-->mms, player_initialize
*/
void S_MMS_MMI_PLAYERINITIALIZE_CNF(T_MMS_MMI_PLAYERINITIALIZE_CNF * parameter)
{
TRACE_EVENT("S_MMS_MMI_PLAYERINITIALIZE_CNF");
psa_MMS_MMI_IND(S_MMS_MMI_PLAYERINITIALIZE_CNF_ID, parameter, sizeof(T_MMS_MMI_PLAYERINITIALIZE_CNF) );
}
/*
$Description:
mms-->mmi, 请求call MMS_BitBlt
*/
void S_MMS_MMI_MMSBITBLT_IND(T_MMS_MMI_MMSBITBLT_IND * parameter)
{
TRACE_EVENT("S_MMS_MMI_MMSBITBLT_IND");
psa_MMS_MMI_IND(S_MMS_MMI_MMSBITBLT_IND_ID, parameter, sizeof(T_MMS_MMI_MMSBITBLT_IND));
}
/*
$Description:
mms-->mmi, 请求call sys_drawpoint
*/
void S_MMS_MMI_DRAWPOINT_IND(T_MMS_MMI_DRAWPOINT_IND * parameter)
{
TRACE_EVENT("S_MMS_MMI_DRAWPOINT_IND");
psa_MMS_MMI_IND(S_MMS_MMI_DRAWPOINT_IND_ID, parameter, sizeof(T_MMS_MMI_DRAWPOINT_IND));
}
/*
$Description:
mms-->mmi, 请求call sys_drawtext
*/
void S_MMS_MMI_DRAWTEXT_IND(T_MMS_MMI_DRAWTEXT_IND * parameter)
{
TRACE_EVENT("S_MMS_MMI_DRAWTEXTT_IND");
psa_MMS_MMI_IND(S_MMS_MMI_DRAWTEXT_IND_ID, parameter, sizeof(T_MMS_MMI_DRAWTEXT_IND));
}
/*
$Description:
mms-->mmi, 请求call mmisys_drawfillrect
*/
void S_MMS_MMI_DRAWFILLRECT_IND(T_MMS_MMI_DRAWFILLRECT_IND * parameter)
{
TRACE_EVENT("S_MMS_MMI_DRAWFILLRECT_IND");
psa_MMS_MMI_IND(S_MMS_MMI_DRAWFILLRECT_IND_ID, parameter, sizeof(T_MMS_MMI_DRAWFILLRECT_IND));
}
/*
$Description:
mms-->mmi, 请求call mmisys_refreshwindow
*/
void S_MMS_MMI_REFRESHWINDOW_IND(T_MMS_MMI_REFRESHWINDOW_IND * parameter)
{
TRACE_EVENT("S_MMS_MMI_REFRESHWINDOW_IND");
psa_MMS_MMI_IND(S_MMS_MMI_REFRESHWINDOW_IND_ID, parameter, sizeof(T_MMS_MMI_REFRESHWINDOW_IND));
}
/* mms task
mms status ind to aci(mmi)
*
* |
* MMS
* |
* v
* +-----------(ACI)----------+
* | |
* | MMI |
* | |
* +-------------^------------+
*
*/
void psa_MMS_MMI_IND (BYTE event_id,void* data, USHORT data_size)
{
PALLOC_SDU (mms_mmi_ind, MMS_MMI_IND, 8*data_size);
mms_mmi_ind->event_id = event_id;
mms_mmi_ind->sdu.o_buf = 0;
mms_mmi_ind->sdu.l_buf = 8*data_size;
memcpy(mms_mmi_ind->sdu.buf,data,data_size);
TRACE_EVENT("psa_MMS_MMI_IND");
PSENDX (MMI, mms_mmi_ind);
}
/***************************************
* *
* MMI TASK *
* *
****************************************/
/*mmi task
$Description:
mms-->mmi,
*/
void M_MMS_MMI_READY_CNF(T_MMS_MMI_READY_CNF * parameter)
{
TRACE_EVENT("M_MMS_MMI_READY_CNF");
switch(parameter->event_id)
{
case M_MMI_MMS_PLAYERONDRAW_IND_ID://player_on_draw done
{
extern void player_on_draw_done();
player_on_draw_done();
}
break;
case M_MMI_MMS_MSETCMSG_IND_ID://manager_set_currentmessage done
{
extern void mms_set_currentmsg_done();
mms_set_currentmsg_done();
}
break;
case M_MMI_MMS_EDTONINIT_IND_ID://editor_on_initialize
{
extern void editor_on_initialize_done(void *pData);
editor_on_initialize_done(parameter->pData);
}
break;
case M_MMI_MMS_PLAYERONPAGE_IND_ID://player_on_pageXXX
{
extern void player_on_page_done(void *pData);
player_on_page_done(parameter->pData);
}
break;
case M_MMI_MMS_DRAWAIBUM_IND_ID://MMS_DrawXXXAlbum
{
extern void MMS_DrawXXXAlbum_done();
MMS_DrawXXXAlbum_done();
}
break;
case M_MMI_MMS_MIMNGRINIT_IND_ID://MI_manager_on_initialize
{
extern void MI_manager_on_initialize_done(unsigned int mask);
MI_manager_on_initialize_done((unsigned int) parameter->pData);
}
break;
default:
break;
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_PLAYERINITIALIZE_CNF(T_MMS_MMI_PLAYERINITIALIZE_CNF * parameter)
{
TRACE_EVENT("M_MMS_MMI_PLAYERINITIALIZE_CNF");
{
void player_initialize_done(void *pPlayer, int retval);
player_initialize_done(parameter->pPlayer, parameter->retval);
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_MMSBITBLT_IND(T_MMS_MMI_MMSBITBLT_IND * parameter)
{
TRACE_EVENT("M_MMS_MMI_MMSBITBLT_IND");
{
extern MMS_U8 mmiMMSBitBlt( MMS_U32 posX, MMS_U32 posY, MMS_U32 width, MMS_U32 height,MMS_VOID * BmpPtr);
mmiMMSBitBlt( parameter-> posX, parameter-> posY, parameter-> width, parameter-> height,parameter-> BmpPtr);
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_DRAWPOINT_IND(T_MMS_MMI_DRAWPOINT_IND * parameter)
{
TRACE_EVENT("M_MMS_MMI_DRAWPOINT_IND");
{
extern MMS_VOID mmisys_drawpoint(MMS_S32 x, MMS_S32 y, MMS_COLOR color);
mmisys_drawpoint( parameter->x, parameter-> y, parameter-> color);
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_DRAWTEXT_IND(T_MMS_MMI_DRAWTEXT_IND * parameter)
{
TRACE_EVENT("M_MMS_MMI_DRAWTEXT_IND");
{
MMS_S32 mmisys_drawtext(MMS_S32 x, MMS_S32 y, MMS_S8* string, MMS_U8 font, MMS_COLOR color);
mmisys_drawtext( parameter-> x, parameter->y, parameter-> string, parameter->font,parameter-> color);
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_DRAWFILLRECT_IND(T_MMS_MMI_DRAWFILLRECT_IND * parameter)
{
TRACE_EVENT("M_MMS_MMI_DRAWFILLRECT_IND");
{
MMS_VOID mmisys_drawfillrect(MMS_S32 x, MMS_S32 y, MMS_S32 width, MMS_S32 height, MMS_COLOR color);
mmisys_drawfillrect( parameter-> x, parameter-> y, parameter-> width, parameter-> height,parameter-> color);
}
}
/*
$Description:
mms-->mmi,
*/
void M_MMS_MMI_REFRESHWINDOW_IND(T_MMS_MMI_REFRESHWINDOW_IND * parameter)
{
TRACE_EVENT("M_MMS_MMI_REFRESHWINDOW_IND");
{
MMS_VOID mmisys_refreshwindow();
mmisys_refreshwindow();
}
}
/****************************************************
$Description:
process mms->mmi ind in mmi task
*******************************************************/
GLOBAL const void mms_mmi_ind (
T_MMS_MMI_IND *mms_mmi_ind
)
{
#define MMS_MMI_IND_HANDLE(N)\
{\
T_MMS_MMI_##N##_IND (parameter);\
memcpy(¶meter, mms_mmi_ind->sdu.buf,mms_mmi_ind->sdu.l_buf/8);\
M_MMS_MMI_##N##_IND(¶meter);\
}
#define MMS_MMI_CNF_HANDLE(N)\
{\
T_MMS_MMI_##N##_CNF (parameter);\
memcpy(¶meter, mms_mmi_ind->sdu.buf,mms_mmi_ind->sdu.l_buf/8);\
M_MMS_MMI_##N##_CNF(¶meter);\
}
//PACCESS(mmi_mms_ind);
TRACE_EVENT("mms_mmi_ind()");
switch(mms_mmi_ind->event_id)
{
case S_MMS_MMI_READY_CNF_ID:
MMS_MMI_CNF_HANDLE(READY)
break;
case S_MMS_MMI_PLAYERINITIALIZE_CNF_ID:
MMS_MMI_CNF_HANDLE(PLAYERINITIALIZE)
break;
case S_MMS_MMI_MMSBITBLT_IND_ID:
MMS_MMI_IND_HANDLE(MMSBITBLT)
break;
case S_MMS_MMI_DRAWPOINT_IND_ID:
MMS_MMI_IND_HANDLE(DRAWPOINT)
break;
case S_MMS_MMI_DRAWTEXT_IND_ID:
MMS_MMI_IND_HANDLE(DRAWTEXT)
break;
case S_MMS_MMI_DRAWFILLRECT_IND_ID:
MMS_MMI_IND_HANDLE(DRAWFILLRECT)
break;
case S_MMS_MMI_REFRESHWINDOW_IND_ID:
MMS_MMI_IND_HANDLE(REFRESHWINDOW)
break;
default:
break;
}
/*It is no necessary because aci will free it*/
// PFREE(mmi_mms_ind);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -