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

📄 mms_mmip.c

📁 是一个手机功能的模拟程序
💻 C
字号:
/*
+-----------------------------------------------------------------------------
|  File     : mms_mmip.c
+-----------------------------------------------------------------------------
|  Purpose  : This Modul defines the functions for processing
|             of incomming primitives 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 "mmsgloble.h"
#include "player.h"


#define TRACE_EVENT(f) MMS_TRACE_EVENT((f));


/***************************************
*											*
*				MMI TASK					*
*											*
****************************************/
/*
$Description:
	mmi-->mms, 请求call player_on_draw
*/
void M_MMI_MMS_PLAYERONDRAW_IND(T_MMI_MMS_PLAYERONDRAW_IND * parameter)
{

	TRACE_EVENT("M_MMI_MMS_PLAYERONDRAW_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_PLAYERONDRAW_IND_ID, parameter, sizeof(T_MMI_MMS_PLAYERONDRAW_IND));
}

/*
$Description:
	mmi-->mms, 请求call manager_set_currentmessage
*/
void M_MMI_MMS_MSETCMSG_IND(T_MMI_MMS_MSETCMSG_IND * parameter)
{

	TRACE_EVENT("M_MMI_MMS_MSETCMSG_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_MSETCMSG_IND_ID, parameter, sizeof(T_MMI_MMS_MSETCMSG_IND));
}


/*
$Description:
	mmi-->mms, 请求call editor_on_initialize
*/
void M_MMI_MMS_EDTONINIT_IND(T_MMI_MMS_EDTONINIT_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_EDTONINIT_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_EDTONINIT_IND_ID, parameter, sizeof(T_MMI_MMS_EDTONINIT_IND));

}

/*
$Description:
	mmi-->mms, 请求call player_on_pageXXX
*/
void M_MMI_MMS_PLAYERONPAGE_IND(T_MMI_MMS_PLAYERONPAGE_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_PLAYERONPAGE_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_PLAYERONPAGE_IND_ID, parameter, sizeof(T_MMI_MMS_PLAYERONPAGE_IND));

}

/*
$Description:
	mmi-->mms, 请求call player_initialize
*/
void M_MMI_MMS_PLAYERINITIALIZE_IND(T_MMI_MMS_PLAYERINITIALIZE_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_PLAYERINITIALIZE_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_PLAYERINITIALIZE_IND_ID, parameter, sizeof(T_MMI_MMS_PLAYERINITIALIZE_IND));

}

/*
$Description:
	mmi-->mms, 请求call MMS_DrawXXXAlbum
*/
void M_MMI_MMS_DRAWAIBUM_IND(T_MMI_MMS_DRAWAIBUM_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_DRAWAIBUM_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_DRAWAIBUM_IND_ID, parameter, sizeof(T_MMI_MMS_DRAWAIBUM_IND));

}

/*
$Description:
	mmi-->mms, 请求call MMS_TimerCallBackFn
*/
void M_MMI_MMS_TMCBFN_IND(T_MMI_MMS_TMCBFN_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_TMCBFN_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_TMCBFN_IND_ID, parameter, sizeof(T_MMI_MMS_TMCBFN_IND));

}


/*
$Description:
	mmi-->mms, 请求call MI_manager_on_initialize
*/
void M_MMI_MMS_MIMNGRINIT_IND(T_MMI_MMS_MIMNGRINIT_IND * parameter)
{
	TRACE_EVENT("M_MMI_MMS_MIMNGRINIT_IND");
	psa_MMI_MMS_IND(M_MMI_MMS_MIMNGRINIT_IND_ID, parameter, sizeof(T_MMI_MMS_MIMNGRINIT_IND));

}



/*

   *      +-----------(ACI)----------+ 
   *      |                          |
   *      |            MMI        	|
   *      |                          |
   *      +-------------^------------+
     * 
   *                    |
   *                   MMS                 
   *                    |
   *                    v
   *                    
  */
void   psa_MMI_MMS_IND (BYTE event_id,void* data, USHORT data_size)
{
	PALLOC_SDU (mmi_mms_ind, MMI_MMS_IND, 8*data_size);
	mmi_mms_ind->event_id = event_id;
	mmi_mms_ind->sdu.o_buf     = 0;
	mmi_mms_ind->sdu.l_buf     = 8*data_size;
	memcpy(mmi_mms_ind->sdu.buf,data,data_size);

	TRACE_EVENT("psa_MMI_MMS_IND");
		
        PSENDX (MMS, mmi_mms_ind);
}






/***************************************
*											*
*				MMS TASK					*
*											*
****************************************/
/*
$Description:
	mmi-->mms, 请求call player_on_draw
*/
void S_MMI_MMS_PLAYERONDRAW_IND(T_MMI_MMS_PLAYERONDRAW_IND * parameter)
{

	TRACE_EVENT("S_MMI_MMS_PLAYERONDRAW_IND");
	player_on_draw();
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2; 
		parameter2.event_id = M_MMI_MMS_PLAYERONDRAW_IND_ID;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}

/*
$Description:
	mmi-->mms, 请求call manager_set_currentmessage
*/
void S_MMI_MMS_MSETCMSG_IND(T_MMI_MMS_MSETCMSG_IND * parameter)
{

	TRACE_EVENT("S_MMI_MMS_MSETCMSG_IND");
	manager_set_currentmessage(parameter->pFolder, parameter->index);
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2;
		parameter2.event_id = M_MMI_MMS_MSETCMSG_IND_ID;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}

/*
$Description:
	mmi-->mms, 请求call editor_on_initialize
*/
void S_MMI_MMS_EDTONINIT_IND(T_MMI_MMS_EDTONINIT_IND * parameter)
{
	TRACE_EVENT("S_MMI_MMS_EDTONINIT_IND");
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2;
		parameter2.pData= (void*)editor_on_initialize(parameter->event, parameter->pMsg);
		parameter2.event_id = M_MMI_MMS_EDTONINIT_IND_ID;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}


/*
$Description:
	mmi-->mms, 请求call player_on_pageXXX
*/
void S_MMI_MMS_PLAYERONPAGE_IND(T_MMI_MMS_PLAYERONPAGE_IND * parameter)
{
	TRACE_EVENT("S_MMI_MMS_PLAYERONPAGE_IND");
	switch(parameter->event)
	{
	case 0:
		player_on_pageup();
		break;
	case 1:
		player_on_pagedown();
		break;
	case 2:
		player_on_pagenext();
		break;
	case 3:
		player_on_pagelast();
		break;
	}
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2;
		parameter2.pData= (void*)parameter->event;
		parameter2.event_id = M_MMI_MMS_PLAYERONPAGE_IND_ID;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}


/*
$Description:
	mmi-->mms, 请求player_initialize
*/
void S_MMI_MMS_PLAYERINITIALIZE_IND(T_MMI_MMS_PLAYERINITIALIZE_IND * parameter)
{
	TRACE_EVENT("S_MMI_MMS_PLAYERINITIALIZE_IND");
	/*send cnf to mmi*/
	{
		T_MMS_MMI_PLAYERINITIALIZE_CNF  parameter2;
		parameter2.pPlayer= (void*)player_initialize(parameter->event, (PlayerInitRetVal *)&parameter2.retval);
		S_MMS_MMI_PLAYERINITIALIZE_CNF(&parameter2);
	}
}


/*
$Description:
	mmi-->mms, 请求MMS_DrawXXXAlbum
*/
void S_MMI_MMS_DRAWAIBUM_IND(T_MMI_MMS_DRAWAIBUM_IND * parameter)
{
	TRACE_EVENT("S_MMI_MMS_DRAWAIBUM_IND");
	WAP_TRACE_EVENT((parameter->filename));
	switch(parameter->type)
	{
	case MMS_TYPE_JPEG:
		{

			extern MMS_VOID MMS_DrawJPEGAlbum(MMS_S8 *filepath);
			MMS_DrawJPEGAlbum(parameter->filename);
		}
		break;
	case MMS_TYPE_WBMP:
		{
			extern MMS_VOID MMS_DrawWBMPAlbum(MMS_S8 *filepath);
			MMS_DrawWBMPAlbum(parameter->filename);
		}
		break;
	case MMS_TYPE_GIF:
		{
			extern MMS_VOID MMS_DrawGIFAlbum(MMS_S8 *filepath);
			MMS_DrawGIFAlbum(parameter->filename);
		}
		break;
	}
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2; 
		parameter2.event_id = M_MMI_MMS_DRAWAIBUM_IND_ID;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}

/*
$Description:
	mmi-->mms, 请求MMS_TimerCallBackFn
*/
void S_MMI_MMS_TMCBFN_IND(T_MMI_MMS_TMCBFN_IND * parameter)
{
	typedef int (*MMS_TMcb) (U32, void *);
	
	TRACE_EVENT("S_MMI_MMS_TMCBFN_IND");

	( (MMS_TMcb)parameter->fn)(parameter->e,parameter->t);
	/*send cnf to mmi*/
	{
	}
}

/*
$Description:
	mmi-->mms, 请求MI_manager_on_initialize
*/
void S_MMI_MMS_MIMNGRINIT_IND(T_MMI_MMS_MIMNGRINIT_IND * parameter)
{
	TRACE_EVENT("S_MMI_MMS_MIMNGRINIT_IND");
	{
		extern void  MI_manager_on_initialize(unsigned int mask);
		MI_manager_on_initialize(parameter->mask);
	}
	/*send cnf to mmi*/
	{
		T_MMS_MMI_READY_CNF  parameter2; 
		parameter2.event_id = M_MMI_MMS_MIMNGRINIT_IND_ID;
		parameter2.pData = (void*) parameter->mask;
		S_MMS_MMI_READY_CNF(&parameter2);
	}
}


/*
$Description:
 	process mmi->mms ind
*/
GLOBAL const void mmi_mms_ind (
                                  T_MMI_MMS_IND *mmi_mms_ind
                                )
{
	extern void set_mmstask_proc(BYTE flag);
#define MMI_MMS_IND_HANDLE(N)\
{\
	T_MMI_MMS_##N##_IND (parameter);\
	memcpy(&parameter, mmi_mms_ind->sdu.buf,mmi_mms_ind->sdu.l_buf/8);\
	S_MMI_MMS_##N##_IND(&parameter);\
}
	set_mmstask_proc(1);
	
	  PACCESS(mmi_mms_ind);

	  TRACE_EVENT("mmi_mms_ind()");
	  switch(mmi_mms_ind->event_id)
  	{
  	case M_MMI_MMS_PLAYERONDRAW_IND_ID:
		MMI_MMS_IND_HANDLE(PLAYERONDRAW)
		break;
	case M_MMI_MMS_MSETCMSG_IND_ID:
		MMI_MMS_IND_HANDLE(MSETCMSG)
		break;
	case M_MMI_MMS_EDTONINIT_IND_ID:
		MMI_MMS_IND_HANDLE(EDTONINIT)
		break;
	case M_MMI_MMS_PLAYERONPAGE_IND_ID:
		MMI_MMS_IND_HANDLE(PLAYERONPAGE)
		break;
	case M_MMI_MMS_PLAYERINITIALIZE_IND_ID:
		MMI_MMS_IND_HANDLE(PLAYERINITIALIZE)
		break;
	case M_MMI_MMS_DRAWAIBUM_IND_ID:
		MMI_MMS_IND_HANDLE(DRAWAIBUM)
		break;
	case M_MMI_MMS_TMCBFN_IND_ID:
		MMI_MMS_IND_HANDLE(TMCBFN)
		break;
	case M_MMI_MMS_MIMNGRINIT_IND_ID:
		MMI_MMS_IND_HANDLE(MIMNGRINIT)
		break;
	default:
		break;
  	}

	  
	  PFREE(mmi_mms_ind);
	set_mmstask_proc(0);
}


⌨️ 快捷键说明

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