📄 med_main.c
字号:
aud_send_startup_cnf(MED_RES_OK);
med_context_p->nvram_state = MED_POWERON_READING_NVRAM_FINISH;
}
else
{
ASSERT(med_context_p->nvram_state == MED_POWERON_READING_NVRAM);
}
#endif /* (!defined(MT6228)) */ /* not Mt6228 */
#endif /* (!defined(MT6219)) */ /* not MT6219 */
#endif /* ISP_SUPPORT */
default:
break;
}
}
/*****************************************************************************
* FUNCTION
* med_nvram_write_data_cnf_hdlr
* DESCRIPTION
* This function is to handle nvram write data confirm.
* PARAMETERS
* local_para_ptr [?]
* peer_buff_ptr [?]
* RETURNS
* void
*****************************************************************************/
void med_nvram_write_data_cnf_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
nvram_write_cnf_struct *parm_ptr = NULL;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
parm_ptr = (nvram_write_cnf_struct*) local_para_ptr;
/* MED_FUNC_ENTRY(MED_NVRAM_WRITE_DATA_CNF_HDLR) */
switch (parm_ptr->file_idx)
{
case NVRAM_EF_CUST_ACOUSTIC_DATA_LID:
aud_send_set_audio_profile_cnf(MED_RES_OK);
break;
case NVRAM_EF_AUDIO_PARAM_LID:
aud_send_set_audio_param_cnf(MED_RES_OK);
break;
default:
break;
}
}
/*****************************************************************************
* FUNCTION
* med_startup_hdlr
* DESCRIPTION
* This function is handle startup procedure of media task.
* PARAMETERS
* ilm_ptr [?]
* RETURNS
* void
*****************************************************************************/
void med_startup_hdlr(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
/* start base timer */
stack_init_timer(&med_context_p->base_timer, "MED Base Timer", MOD_MED);
med_context_p->event_scheduler_ptr = new_evshed(
&med_context_p->base_timer,
med_start_base_timer,
med_stop_base_timer,
0,
kal_evshed_get_mem,
kal_evshed_free_mem,
0);
med_context_p->med_event = kal_create_event_group("med_events");
#ifdef __MED_CAM_MOD__
cam_startup_hdlr(ilm_ptr);
#endif
#ifdef __MED_IMG_MOD__
img_startup_hdlr(ilm_ptr);
#endif
#if defined (__MED_VID_MOD__) || defined (__MED_MJPG_MOD__)
vid_startup_hdlr(ilm_ptr);
#endif
#ifdef __MED_WEBCAM_MOD__
webcam_startup_hdlr(ilm_ptr);
#endif
#if defined (__MED_TVO_MOD__)
tvo_startup_hdlr(ilm_ptr);
#endif
aud_startup_hdlr(ilm_ptr);
/* start to read nvram data for media task */
aud_startup_read_nvram_data();
}
/*****************************************************************************
* FUNCTION
* med_main
* DESCRIPTION
* This function is main message dispatching function of media task.
* PARAMETERS
* ilm_ptr [?]
* RETURNS
* void
*****************************************************************************/
void med_main(ilm_struct *ilm_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
if (ilm_ptr->msg_id == MSG_ID_TIMER_EXPIRY)
{
med_timer_expiry_hdlr(ilm_ptr);
}
else if (ilm_ptr->msg_id == MSG_ID_MED_STARTUP_REQ)
{
med_startup_hdlr(ilm_ptr);
}
else if (ilm_ptr->msg_id == MSG_ID_MEDIA_GET_BUFFER_REQ)
{
med_get_buffer_req_hdlr(ilm_ptr);
}
else if (ilm_ptr->msg_id == MSG_ID_MEDIA_FREE_BUFFER_REQ)
{
med_free_buffer_req_hdlr(ilm_ptr);
}
#ifdef TST_HANDLER
else if (ilm_ptr->msg_id == MSG_ID_TST_INJECT_STRING)
{
aud_tst_handler(ilm_ptr);
}
#endif /* TST_HANDLER */
#ifdef __MED_CAM_MOD__
else if (ilm_ptr->msg_id >= MSG_ID_MED_CAM_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_CAM_CODE_END)
{
cam_main(ilm_ptr);
}
#endif /* __MED_CAM_MOD__ */
#ifdef __MED_IMG_MOD__
else if (ilm_ptr->msg_id >= MSG_ID_MED_IMG_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_IMG_CODE_END)
{
img_main(ilm_ptr);
}
#endif /* __MED_IMG_MOD__ */
#if defined (__MED_VID_MOD__) || defined (__MED_MJPG_MOD__)
else if (ilm_ptr->msg_id >= MSG_ID_MED_VID_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_VID_CODE_END)
{
vid_main(ilm_ptr);
}
else if (ilm_ptr->msg_id >= MSG_ID_MED_V_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_V_CODE_END)
{
vid_main(ilm_ptr);
}
#endif /* defined (__MED_VID_MOD__) || defined (__MED_MJPG_MOD__) */
#ifdef __MED_WEBCAM_MOD__
else if ((ilm_ptr->msg_id >= MSG_ID_MED_WEBCAM_CODE_BEGIN &&
ilm_ptr->msg_id <= MSG_ID_MED_WEBCAM_CODE_END) ||
(ilm_ptr->msg_id >= MSG_ID_USB_MED_SET_CAMERA_ATTR_REQ && ilm_ptr->msg_id <= MSG_ID_USB_MED_STOP_CNF))
{
webcam_main(ilm_ptr);
}
#endif /* __MED_WEBCAM_MOD__ */
#ifdef __MED_TVO_MOD__
else if (ilm_ptr->msg_id >= MSG_ID_MED_TVO_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_TVO_CODE_END)
{
tvo_main(ilm_ptr);
}
#endif /* __MED_TVO_MOD__ */
else if (ilm_ptr->msg_id == MSG_ID_NVRAM_READ_CNF)
{
med_nvram_read_data_cnf_hdlr(ilm_ptr->local_para_ptr, ilm_ptr->peer_buff_ptr);
}
else if (ilm_ptr->msg_id == MSG_ID_NVRAM_WRITE_CNF)
{
med_nvram_write_data_cnf_hdlr(ilm_ptr->local_para_ptr, ilm_ptr->peer_buff_ptr);
}
#ifdef __MED_CTM_MOD__
else if (ilm_ptr->msg_id >= MSG_ID_MED_CTM_CODE_BEGIN && ilm_ptr->msg_id <= MSG_ID_MED_CTM_CODE_END)
{
aud_ctm_main(ilm_ptr);
}
#endif /* __MED_CTM_MOD__ */
else
{
aud_main(ilm_ptr);
}
}
/*****************************************************************************
* FUNCTION
* med_task_main
* DESCRIPTION
* This function is main function of media task.
* PARAMETERS
* task_entry_ptr [?]
* RETURNS
* void
*****************************************************************************/
void med_task_main(task_entry_struct *task_entry_ptr)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
ilm_struct current_ilm;
kal_uint32 my_index;
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
kal_get_my_task_index(&my_index);
while (1)
{
receive_msg_ext_q(task_info_g[task_entry_ptr->task_indx].task_ext_qid, ¤t_ilm);
stack_set_active_module_id(my_index, current_ilm.dest_mod_id);
med_main((void*)¤t_ilm);
free_ilm(¤t_ilm);
}
}
/*****************************************************************************
* FUNCTION
* med_init
* DESCRIPTION
* This function is used to init media task.
* PARAMETERS
* task_indx [IN]
* RETURNS
*
*****************************************************************************/
kal_bool med_init(task_indx_type task_indx)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
med_context_p->int_mem_p = med_int_mem;
med_context_p->ext_mem_p = med_ext_mem;
if (!aud_init())
{
return KAL_FALSE;
}
#ifdef __MED_IMG_MOD__
if (!img_init())
{
return KAL_FALSE;
}
#endif /* __MED_IMG_MOD__ */
#ifdef __MED_CAM_MOD__
if (!cam_init())
{
return KAL_FALSE;
}
#endif /* __MED_CAM_MOD__ */
#if defined (__MED_VID_MOD__) || defined (__MED_MJPG_MOD__)
if (!vid_init())
{
return KAL_FALSE;
}
#endif /* defined (__MED_VID_MOD__) || defined (__MED_MJPG_MOD__) */
#ifdef __MED_WEBCAM_MOD__
if (!webcam_init())
{
return KAL_FALSE;
}
#endif /* __MED_WEBCAM_MOD__ */
#if defined (__MED_TVO_MOD__)
if (!tvo_init())
{
return KAL_FALSE;
}
#endif /* defined (__MED_TVO_MOD__) */
if (!med_utility_init())
{
return KAL_FALSE;
}
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* med_reset
* DESCRIPTION
* This function is used to reset media task.
* PARAMETERS
* task_indx [IN]
* RETURNS
*
*****************************************************************************/
kal_bool med_reset(task_indx_type task_indx)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
return KAL_TRUE;
}
/*****************************************************************************
* FUNCTION
* med_create
* DESCRIPTION
* This function is used to create media task configuration info.
* PARAMETERS
* handle [IN]
* RETURNS
*
*****************************************************************************/
kal_bool med_create(comptask_handler_struct **handle)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
static const comptask_handler_struct med_handler_info =
{
med_task_main, /* task entry function */
med_init, /* task initialization function */
NULL, /* task configuration function */
med_reset, /* task reset handler */
NULL, /* task termination handler */
};
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
*handle = (comptask_handler_struct*) & med_handler_info;
return KAL_TRUE;
}
#endif /* MED_NOT_PRESENT */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -