/***************************************************************************** * FUNCTION * aud_vr_mutex_lock * DESCRIPTION * mutex lock operation * PARAMETERS * M [?] * RETURNS * void *****************************************************************************/ void aud_vr_mutex_lock(aud_vr_mutex_struct *M) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ if (kal_get_active_module_id() != M->tid) { kal_take_mutex(M->mutex); M->tid = kal_get_active_module_id(); } ++(M->cnt); }
srv_ies_job_handle srv_ies_job_create(srv_ies_app_session_handle hApp, module_type modID, SRV_IES_JOB_TYPE_ENUM jobType, void *pOwner, void *pInput, CTIterator *pItr, void *pOutput, kal_uint32 maxStep, srv_ies_async_callback_func_ptr callback, void *pData) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ srv_ies_job *pJob; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ kal_take_mutex(g_srv_ies_hdl_mutex); TYPED_ALLOC(pJob, srv_ies_job); g_srv_ies_curr_job[pJob->jobID] = pJob; kal_give_mutex(g_srv_ies_hdl_mutex); ASSERT(NULL != pJob); switch(jobType) { case SRV_IES_JOB_TYPE_RENDER_PREVIEW: case SRV_IES_JOB_TYPE_RENDER_BUFFER: case SRV_IES_JOB_TYPE_CREATE_META: pJob->pOutput = pOutput; break; case SRV_IES_JOB_TYPE_RENDER_FILE: ASSERT(NULL != pInput); mmi_wcsncpy(pJob->filePath, pOutput, SRV_FMGR_PATH_MAX_LEN); break; default: ASSERT(0); return NULL; } LIST_INIT((srv_ies_list_head_struct*)pJob); ((srv_ies_job_control*)pOwner)->pCurrJob = pJob; pJob->pParent = hApp; pJob->state = SRV_IES_JOB_STATE_CREATED; pJob->modID = kal_get_active_module_id(); pJob->jobType = jobType; pJob->seqNum = srv_ies_job_request_seq_num(); pJob->pOwner = pOwner; pJob->pItr = pItr; pJob->pInput = pInput; pJob->maxStep = maxStep; pJob->callback = callback; pJob->pData = pData; return pJob; }
/***************************************************************************** * FUNCTION * jpush_timer_mutex_lock * DESCRIPTION * * PARAMETERS * void * RETURNS * void *****************************************************************************/ void jpush_timer_mutex_lock(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ /* GDI_LOCK; */ if (kal_get_active_module_id() != jpush_timer_mutex_tid) { kal_take_mutex(g_jpush_record_mutex); jpush_timer_mutex_tid = kal_get_active_module_id(); } ++jpush_timer_mutex_cnt; }
/*********************************************** * FT task self message API * This API is called in other task context * or HISR conext! **********************************************/ void ft_send_in_proc_call_req(ft_in_proc_call_type func, kal_uint32 func_arg1, void *func_arg2) { ft_in_proc_call_req_struct *ptrMsg; ptrMsg = (ft_in_proc_call_req_struct *)construct_local_para(sizeof(ft_in_proc_call_req_struct), TD_RESET); if(NULL == ptrMsg) { ASSERT(0); } ptrMsg->func = func; ptrMsg->func_arg1 = func_arg1; ptrMsg->func_arg2 = func_arg2; msg_send5(kal_get_active_module_id(), MOD_FT, FT_TST_SAP, (msg_type)MSG_ID_FT_IN_PROC_CALL_REQ, (local_para_struct*)ptrMsg); }
/***************************************************************************** * FUNCTION * aud_send_ilm * DESCRIPTION * This function is used to send ilm. * PARAMETERS * dest_id [IN] * msg_id [IN] * local_param_ptr [?] * peer_buf_ptr [?] * RETURNS * void *****************************************************************************/ void aud_send_ilm(module_type dest_id, kal_uint16 msg_id, void *local_param_ptr, void *peer_buf_ptr) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ module_type src_id; sap_type sap_id; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ /* Check destination module ID */ if (dest_id == MOD_NIL) { return; } /* Get source module ID */ if (kal_if_hisr()) { // src_id = MOD_VISUAL_HISR; return; } else { src_id = kal_get_active_module_id(); } switch (dest_id) { case MOD_MED: sap_id = MED_SAP; break; case MOD_UEM: sap_id = MED_SAP; break; case MOD_NVRAM: sap_id = PS_NVRAM_SAP; break; default: sap_id = MED_SAP; break; } msg_send6(src_id,dest_id,sap_id,msg_id,(local_para_struct*)local_param_ptr,(peer_buff_struct*)peer_buf_ptr); }
/***************************************************************************** * FUNCTION * media_bitstream_record_stop * DESCRIPTION * * PARAMETERS * * RETURNS * *****************************************************************************/ kal_int32 media_bitstream_record_stop(kal_int32 handle) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ media_bitstream_record_stop_req_struct *msg_p = (media_bitstream_record_stop_req_struct*) construct_local_para(sizeof(media_bitstream_record_stop_req_struct), TD_CTRL); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ msg_p->handle = handle; bitstream_send_msg(kal_get_active_module_id(), MOD_MED, MSG_ID_MEDIA_BITSTREAM_RECORD_STOP_REQ, msg_p); BITSTREAM_WAIT_EVENT(BITSTREAM_EVT_WAIT); return bitstream_cntx_p->return_status; }
/***************************************************************************** * FUNCTION * media_bitstream_record_open * DESCRIPTION * * PARAMETERS * * RETURNS * *****************************************************************************/ kal_int32 media_bitstream_record_open(kal_uint8 codec_type, kal_uint8 quality, kal_int32 *handle_p) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ media_bitstream_record_open_req_struct *msg_p = (media_bitstream_record_open_req_struct*) construct_local_para(sizeof(media_bitstream_record_open_req_struct), TD_CTRL); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ msg_p->codec_type = codec_type; msg_p->quality = quality; msg_p->handle_p = handle_p; bitstream_send_msg(kal_get_active_module_id(), MOD_MED, MSG_ID_MEDIA_BITSTREAM_RECORD_OPEN_REQ, msg_p); BITSTREAM_WAIT_EVENT(BITSTREAM_EVT_WAIT); return bitstream_cntx_p->return_status; }
/***************************************************************************** * FUNCTION * jpush_timer_mutex_unlock * DESCRIPTION * * PARAMETERS * void * RETURNS * void *****************************************************************************/ void jpush_timer_mutex_unlock(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ ASSERT(jpush_timer_mutex_tid == kal_get_active_module_id()); --jpush_timer_mutex_cnt; if (jpush_timer_mutex_cnt == 0) { jpush_timer_mutex_tid = MOD_NIL; kal_give_mutex(g_jpush_record_mutex); } /* GDI_UNLOCK; */ }
/***************************************************************************** * FUNCTION * media_bitstream_record_get * DESCRIPTION * * PARAMETERS * * RETURNS * *****************************************************************************/ kal_int32 media_bitstream_record_get(kal_int32 handle, kal_uint8 get_type, void* data_p, kal_uint16* data_len_p) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ media_bitstream_record_get_req_struct *msg_p = (media_bitstream_record_get_req_struct*) construct_local_para(sizeof(media_bitstream_record_get_req_struct), TD_CTRL); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ msg_p->handle = handle; msg_p->get_type = get_type; msg_p->data_p = data_p; msg_p->data_len_p = data_len_p; bitstream_send_msg(kal_get_active_module_id(), MOD_MED, MSG_ID_MEDIA_BITSTREAM_RECORD_GET_REQ, msg_p); BITSTREAM_WAIT_EVENT(BITSTREAM_EVT_WAIT); return bitstream_cntx_p->return_status; }
/***************************************************************************** * 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 !defined(MED_NOT_PRESENT) 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_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); } else if ( (ilm_ptr->msg_id >= MSG_ID_MED_CODE_BEGIN) && (ilm_ptr->msg_id <= MSG_ID_MED_CODE_TAIL) ) { aud_main(ilm_ptr); } else #endif if (ilm_ptr->msg_id == MSG_ID_TST_INJECT_STRING) { tst_module_string_inject_struct *tstInj = (tst_module_string_inject_struct *)ilm_ptr->local_para_ptr; if(tstInj->index == 99 ) { l1audio_console_handler(tstInj->string); } else { kal_prompt_trace(MOD_MED, "unused inject string index = %d ", tstInj->index); } } if (ilm_ptr->msg_id == MSG_ID_AUDIO_L4C_EPOF_NOTIFY) { #if defined( __SMART_PHONE_MODEM__ ) Spc_ForceEndAllApp(); #endif // #if defined( __SMART_PHONE_MODEM__ ) } #if !defined(L1_NOT_PRESENT) && !defined(__UE_SIMULATOR__) #if defined( __DATA_CARD_SPEECH__ ) if ( ( (ilm_ptr->msg_id >= CMUX_MSG_CODE_BEGIN) && (ilm_ptr->msg_id <= MSG_ID_CMUX_CODE_TAIL) ) || ( (ilm_ptr->msg_id >= MSG_ID_SPEECH_ON_ACK) && (ilm_ptr->msg_id <= MSG_ID_STRM_SPEECH_UL_DATA_REQUEST ) ) || ( (ilm_ptr->msg_id >= DRIVER_MSG_CODE_BEGIN) && (ilm_ptr->msg_id <= MSG_ID_DRIVER_CODE_TAIL) ) ) { SP_Strm_Audl_Handler(ilm_ptr); } #endif #if defined( __SMART_PHONE_MODEM__ ) if (ilm_ptr->msg_id == MSG_ID_AUDIO_A2M_CCCI) { SpcIO_Msg_Handler_inAudL(ilm_ptr); } else if (ilm_ptr->msg_id == MSG_ID_MEDIA_AUD_MUTE_REQ) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint16 cnf_msg_id; void *cnf_p = NULL; media_aud_mute_req_struct *req_p; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ req_p = (media_aud_mute_req_struct*) ilm_ptr->local_para_ptr; switch (req_p->device) { case AUDIO_DEVICE_MICROPHONE: /* call L1AUD to set microphone mute */ L1SP_MuteMicrophone(req_p->mute); // aud_context_p->audio_mute = req_p->mute; break; default: break; } cnf_p = (media_aud_mute_cnf_struct*) construct_local_para(sizeof(media_aud_mute_cnf_struct), TD_CTRL); cnf_msg_id = MSG_ID_MEDIA_AUD_MUTE_CNF; // aud_send_ilm(ilm_ptr->src_mod_id, cnf_msg_id, cnf_p, NULL); msg_send6(kal_get_active_module_id(),ilm_ptr->src_mod_id,AUDIO_SAP,cnf_msg_id,cnf_p, NULL); } #endif #endif if ((ilm_ptr->msg_id > MSG_ID_AUDIO_M2M_BEGIN) && (ilm_ptr->msg_id < MSG_ID_AUDIO_M2M_TAIL)) { #ifdef __MTK_TARGET__ SP_M2M_Handler(ilm_ptr); #endif //#ifdef __MTK_TARGET__ } #if defined(__VOLTE_SUPPORT__) if ( ilm_ptr->msg_id == MSG_ID_MEDIA_IN_PROC_CALL_REQ ) { #ifdef __MTK_TARGET__ kal_prompt_trace(MOD_L1SP, "[TONEDEBUG]MSG_ID_MEDIA_IN_PROC_CALL_REQ1"); aud_util_in_proc_call_req_hdlr(ilm_ptr); #endif //#ifdef __MTK_TARGET__ } #endif }