Example #1
0
/*****************************************************************************
 * 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);
}
Example #6
0
/*****************************************************************************
 * 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;
}
Example #7
0
/*****************************************************************************
 * 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; */
}
Example #9
0
/*****************************************************************************
 * 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   
}