Ejemplo n.º 1
0
/*****************************************************************************
 * 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);
    }
#endif

#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_AUDIO_MSG_CODE_BEGIN) && (ilm_ptr->msg_id <= MSG_ID_AUDIO_MSG_CODE_TAIL) )
    	   || ( (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);
    }
  #endif
#endif
}
/*****************************************************************************
 * 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   
}