blob: 275127efcd8a069e942cd631a2b9e32b3acc96be [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2012
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36/*******************************************************************************
37 *
38 * Filename:
39 * ---------
40 * dummy_audio.c
41 *
42 * Project:
43 * --------
44 * MAUI
45 *
46 * Description:
47 * ------------
48 * Provide APIs when speech functionality is disabled
49 *
50 * Author:
51 * -------
52 * -------
53 *
54 *==============================================================================
55 * HISTORY
56 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
57 *------------------------------------------------------------------------------
58 * removed!
59 * removed!
60 * removed!
61 *
62 * removed!
63 * removed!
64 * removed!
65 *
66 * removed!
67 * removed!
68 * removed!
69 * removed!
70 *
71 * removed!
72 * removed!
73 * removed!
74 *
75 * removed!
76 * removed!
77 * removed!
78 *
79 * removed!
80 * removed!
81 * removed!
82 *
83 * removed!
84 * removed!
85 * removed!
86 *
87 * removed!
88 * removed!
89 * removed!
90 *
91 * removed!
92 * removed!
93 * removed!
94 *
95 * removed!
96 * removed!
97 * removed!
98 *
99 * removed!
100 * removed!
101 * removed!
102 *
103 * removed!
104 * removed!
105 * removed!
106 *
107 * removed!
108 * removed!
109 * removed!
110 *
111 * removed!
112 * removed!
113 * removed!
114 * removed!
115 *
116 * removed!
117 * removed!
118 * removed!
119 *
120 * removed!
121 * removed!
122 * removed!
123 *
124 * removed!
125 * removed!
126 * removed!
127 *
128 * removed!
129 * removed!
130 * removed!
131 *
132 * removed!
133 * removed!
134 * removed!
135 *
136 * removed!
137 * removed!
138 * removed!
139 *
140 * removed!
141 * removed!
142 * removed!
143 * removed!
144 * removed!
145 * removed!
146 *
147 * removed!
148 * removed!
149 * removed!
150 *
151 * removed!
152 * removed!
153 * removed!
154 *
155 * removed!
156 * removed!
157 * removed!
158 * removed!
159 *
160 * removed!
161 * removed!
162 * removed!
163 * removed!
164 *
165 * removed!
166 * removed!
167 * removed!
168 *
169 * removed!
170 * removed!
171 * removed!
172 *
173 * removed!
174 * removed!
175 * removed!
176 *
177 * removed!
178 * removed!
179 * removed!
180 *
181 * removed!
182 * removed!
183 * removed!
184 *
185 * removed!
186 * removed!
187 * removed!
188 *
189 * removed!
190 * removed!
191 * removed!
192 *
193 * removed!
194 * removed!
195 * removed!
196 *
197 * removed!
198 * removed!
199 * removed!
200 *
201 * removed!
202 * removed!
203 * removed!
204 *
205 * removed!
206 * removed!
207 * removed!
208 *
209 * removed!
210 * removed!
211 * removed!
212 *
213 * removed!
214 * removed!
215 * removed!
216 *
217 * removed!
218 * removed!
219 * removed!
220 *
221 * removed!
222 * removed!
223 * removed!
224 *
225 * removed!
226 * removed!
227 * removed!
228 *
229 * removed!
230 * removed!
231 * removed!
232 *
233 * removed!
234 * removed!
235 * removed!
236 *
237 * removed!
238 * removed!
239 * removed!
240 *
241 * removed!
242 * removed!
243 * removed!
244 *
245 * removed!
246 * removed!
247 * removed!
248 *
249 * removed!
250 * removed!
251 * removed!
252 *
253 * removed!
254 * removed!
255 * removed!
256 *
257 * removed!
258 * removed!
259 * removed!
260 *
261 * removed!
262 * removed!
263 *
264 * removed!
265 * removed!
266 * removed!
267 *
268 * removed!
269 * removed!
270 * removed!
271 *
272 * removed!
273 * removed!
274 * removed!
275 *
276 * removed!
277 * removed!
278 * removed!
279 *
280 * removed!
281 * removed!
282 * removed!
283 *
284 * removed!
285 * removed!
286 * removed!
287 *
288 * removed!
289 * removed!
290 * removed!
291 *
292 * removed!
293 * removed!
294 * removed!
295 *
296 * removed!
297 * removed!
298 * removed!
299 *
300 * removed!
301 * removed!
302 * removed!
303 *
304 * removed!
305 * removed!
306 * removed!
307 *
308 * removed!
309 * removed!
310 * removed!
311 * removed!
312 * removed!
313 * removed!
314 * removed!
315 * removed!
316 * removed!
317 * removed!
318 * removed!
319 *
320 * removed!
321 *------------------------------------------------------------------------------
322 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
323 *==============================================================================
324 *******************************************************************************/
325
326#include "kal_public_api.h"
327#include "syscomp_config.h"
328#include "l1audio.h"
329#include "l1sp_el2_struct.h"
330#include "dcl.h"
331//#include "uas_export_api.h"
332#include "csr_export_api.h"
333#include "cuif_l1core_public.h"
334#if defined(__MD97__) || defined(__MD97P__)
335#include "dsp_module_based_api_public.h"
336#else //#if defined(__MD97__) || defined(__MD97P__)
337#include "usip_api_public.h"
338#endif //#if defined(__MD97__) || defined(__MD97P__)
339#include "l1aud_common_def.h"
340#include "RM_public.h"
341#include "lmd_audio.h"
342#include "lmd_msgid.h"
343//for MED
344//#include "med_struct.h"
345
346/************************************/
347/* Tasl Creation (temp solution) */
348/* Should modify task_config.h */
349/************************************/
350
351void L1Audio_HISR( void )
352{
353}
354
355static void l1audio_main(task_entry_struct * task_entry_ptr);
356
357kal_bool l1sp_create(comptask_handler_struct **handle)
358{
359 static const comptask_handler_struct l1sp_handler_info =
360 {
361 l1audio_main, /* task entry function */
362 NULL, /* task initialization function */
363 NULL, /* task reset handler */
364 };
365
366 *handle = (comptask_handler_struct *)&l1sp_handler_info;
367
368 return KAL_TRUE;
369}
370
371kal_bool l1audio_sph_srv_create(comptask_handler_struct **handle)
372{
373 static const comptask_handler_struct l1audio_sph_srv_handler_info =
374 {
375 NULL,
376 NULL,
377 NULL,
378 };
379 *handle = (comptask_handler_struct *)&l1audio_sph_srv_handler_info;
380
381 return KAL_TRUE;
382}
383
384kal_bool audl_create(comptask_handler_struct **handle)
385{
386 static const comptask_handler_struct audl_handler_info =
387 {
388 NULL, /* task entry function */
389 NULL, /* task initialization function */
390 NULL, /* task reset handler */
391 };
392
393 *handle = (comptask_handler_struct *)&audl_handler_info;
394 return KAL_TRUE;
395}
396
397/************************************/
398/* Audio Manager */
399/************************************/
400
401#ifndef uint16
402typedef kal_uint16 uint16;
403typedef kal_int16 int16;
404typedef kal_uint32 uint32;
405typedef kal_int32 int32;
406typedef kal_uint8 uint8;
407typedef kal_int8 int8;
408typedef kal_bool bool;
409#define true (kal_bool)(1==1)
410#define false (kal_bool)(1==0)
411#endif
412
413bool AM_IsSpeechOn( void )
414{
415 return false;
416}
417
418kal_uint32 AM_Get2GResyncThreshold( void )
419{
420 return 1083;
421}
422
423void AM_SetLoopBackTest(bool enable)
424{
425 (void) enable;
426}
427
428/*bool AM_AudioManager( bool handover, uint16 speech_mode, int8 sub_channel )
429{
430 (void) handover;
431 (void) speech_mode;
432 (void) sub_channel;
433
434 return false;
435}*/
436
437/************************************/
438/* Speech */
439/************************************/
440
441void L1SP_Set_DAI_Mode( uint8 mode )
442{
443 (void) mode;
444}
445
446void L1SP_SetAfeLoopback( bool enable )
447{
448 (void) enable;
449}
450
451void L1Audio_EnterDedicatedMode( void )
452{
453}
454
455void L1Audio_LeaveDedicatedMode( void )
456{
457}
458
459void L1SP_D2C_LISR( uint16 itype )
460{
461 (void) itype;
462}
463
464/*void L1SP_TCH_Notify( bool bOn )
465{
466 (void) bOn;
467}
468*/
469
470void L1SP_SetOutputVolume( kal_uint8 volume1, kal_int8 digital_gain_index )
471{
472 (void) volume1;
473 (void) digital_gain_index;
474}
475
476void L1SP_SetMicrophoneVolume( kal_uint8 mic_volume )
477{
478 (void) mic_volume;
479}
480
481void L1SP_Speech_On( uint8 RAT_Mode )
482{
483 (void) RAT_Mode;
484}
485
486void L1SP_Speech_Off( void )
487{
488}
489
490void L1SP_SetSidetoneVolume( uint8 sidetone )
491{
492 (void) sidetone;
493}
494
495/************************************/
496/* Speech 3G */
497/************************************/
498
499typedef struct
500{
501 kal_uint8 RSSI;
502 kal_uint8 RSCP;
503 kal_uint8 ECIO;
504 kal_uint8 HHO_SHO;
505
506 /* Used by UMAC */
507 /* Modified CRC = CRC |(S value decision)
508 S value decision=1 => S value < S Threshold. this frame is not reliable
509 S value decision =0 => S value > S Threshold. This frame is reliable
510
511 Modified CRC =0, speech good, CRC=0, S value decision =0
512 Modified CRC=1, CRC =1 or S value decision=1
513
514 crc_result value meaning :
515 0 : Modified CRC = 0
516 1 : Modified CRC = 1, CRC = 0
517 2 : Modified CRC = 1, CRC = 1
518 */
519 kal_uint8 crc_result[3]; /* For Class A/B/C */
520 kal_uint32 s_value[3]; /* For Class A/B/C */
521
522 kal_int16 tpc_SIR_lta; // For recording into speech VM
523 kal_int16 dpdch_SIR_lta; // For recording into speech VM
524 kal_int16 TFCI_max_corr; // For recording into speech VM
525}L1_info_struct;
526
527kal_bool CS_NeedSpeechExtraLog( void )
528{
529 return KAL_FALSE;
530}
531
532/*void SP3G_UpdateL1AInFo( kal_uint8 bitmap, kal_uint8 value )
533{
534 (void) bitmap;
535 (void) value;
536}
537*/
538
539void SP3G_Log_L1_Info(uint32 CFN, L1_info_struct *p_L1_Info)
540{
541 (void) CFN;
542 (void) p_L1_Info;
543}
544
545void SP3G_Closed_Confirm( void )
546{
547}
548
549uint32 l1sp_rab_id;
550fp_CSR_SP3G_Callback CSR_SP3G_Callback;
551void SP3G_Rab_Est( uint32 rab_id, kal_uint8 default_speech_codec )
552{
553
554 (void) default_speech_codec;
555 CSR_SP3G_Callback = csr_get_fp_CSR_SP3G_Callback();
556 l1sp_rab_id = rab_id;
557 CSR_SP3G_Callback(SP3G_CODEC_READY, (void*)l1sp_rab_id );
558}
559
560void SP3G_Rab_Deest( void )
561{
562 CSR_SP3G_Callback = csr_get_fp_CSR_SP3G_Callback();
563 CSR_SP3G_Callback(SP3G_CODEC_CLOSED, (void*)l1sp_rab_id );
564}
565
566void SP3GHSPA_DL_SetMaxCsDelay(kal_uint8 max_cs_delay)
567{
568 (void) max_cs_delay;
569}
570
571void SP3GHSPA_DL_PutSpeechFrame(kal_uint32 CFN, kal_uint8 frame_type, kal_bool crc_status, kal_uint8 *subflow)
572{
573 (void) CFN;
574 (void) frame_type;
575 (void) crc_status;
576 (void) subflow;
577}
578
579void SP3GHSPA_UL_GetSpeechFrame(kal_uint8 *frame_type, kal_uint8 *rab_byte_array, kal_uint8 *len)
580{
581 (void) frame_type;
582 (void) rab_byte_array;
583 (void) len;
584}
585
586void SP3G_DL_PutSpeechFrame(uint32 CFN, uint8 sub_flow_id, uint8 frame_type, bool crc_status, uint8 *subflow)
587{
588 (void) CFN;
589 (void) sub_flow_id;
590 (void) frame_type;
591 (void) crc_status;
592 (void) subflow;
593}
594
595void SP3G_UL_SetFrameType(uint8 amr_frame_type)
596{
597 (void) amr_frame_type;
598}
599
600void SP3G_UL_GetSpeechFrame(kal_uint16*frame_index, kal_uint8 *frame_type, kal_uint8 *rab_byte_array, kal_uint8 *len)
601{
602 (void) frame_index;
603 (void) frame_type;
604 (void) rab_byte_array;
605 (void) len;
606}
607
608/************************************/
609/* Misc. */
610/************************************/
611
612void TONE_SetOutputVolume( uint8 volume1, int8 digital_gain_index )
613{
614 (void) volume1;
615 (void) digital_gain_index;
616}
617
618void KT_SetOutputVolume( uint8 volume1, int8 digital_gain_index )
619{
620 (void) volume1;
621 (void) digital_gain_index;
622}
623
624void Media_SetOutputVolume( uint8 volume1, int8 digital_gain_index )
625{
626 (void) volume1;
627 (void) digital_gain_index;
628}
629
630void L1Audio_ResetDevice(void)
631{
632}
633
634// Temp solution here.
635// Formal solution: modify TrcMod.c
636unsigned char L1Audio_Trace_Filter[5] = { 0x1, 0x3, 0x0, 0x0, 0x0 };
637
638void Set_L1Audio_Filter(unsigned char *setting)
639{
640 int i;
641
642 for(i=0; i<5; i++)
643 L1Audio_Trace_Filter[i] = setting[i];
644}
645
646
647void SP_L4C_SetEvent(L1SP_L4C_Event event, L1SP_L4C_Event_Mode mode)
648{
649}
650
651
652#ifdef __SPEECH_OVER_USB__
653UART_PORT SPEECH_PORT = (UART_PORT)(0);//uart_port_null;
654#endif
655
656kal_bool SP_Drv_Init_Bootup(void)
657{
658 return( KAL_TRUE );
659}
660
661void l1audio_console_handler(kal_char *string)
662{
663}
664
665void SP_Strm_Audl_Handler( ilm_struct *ilm_ptr )
666{
667}
668
669kal_bool SP_Drv_Init_Task(void)
670{
671 return KAL_TRUE;
672}
673
674void Audio_MedFuncReg(Media_Func_Reg_Type *func){
675 /*audio_alloc_aud_mem = (fp_audio_alloc_aud_mem) func->alloc_mem;
676 audio_alloc_aud_mem_cacheable = (fp_audio_alloc_aud_mem) func->alloc_mem_cacheable;
677 audio_free_aud_mem = (fp_audio_free_aud_mem) func->free_mem;
678 audio_set_path_vol = (fp_audio_set_path_volume)func->set_path_volume;
679 audio_get_active_mode = (fp_audio_get_active_mode)func->get_active_mode;
680 send_proc_call_req = (fp_send_proc_call_req) func->send_proc_call;
681 send_proc_call_req2 = (fp_send_proc_call_req) func->send_proc_call2;
682 audio_get_meta_file = (fp_get_meta_data_file) func->get_meta_file;
683 audio_get_meta_array = (fp_get_meta_data_array) func->get_meta_array;*/
684}
685
686void SpcIO_Msg_Handler_inAudL(ilm_struct *ilm_ptr){
687}
688
689void L1SP_SetNvramInfoByIndex(L1SP_NVRAM_INFO_INDEX index, uint8* buffer, uint16 len){}
690void L1SP_GetNvramInfoByIndex(L1SP_NVRAM_INFO_INDEX index, void *buffer, uint16 len){}
691void L1SP_LoadCommonSpeechPara( uint16 c_para[NUM_COMMON_PARAS] ){}
692void L1SP_SetOutputDevice( uint8 device ){}
693void L1SP_SetSpeechVolumeLevelByIndex(kal_uint8 level, kal_uint8 v_paraIndex){}
694void L1SP_SetInputSource( uint8 src ){}
695void L1SP_SetSpeechEnhanceAndFir(uint32 scene, uint32 updatedCoeff){}
696bool L1SP_IsMicrophoneMuted( void ){ return( false ); }
697void L1SP_MuteMicrophone( bool mute ){}
698void Media_SetMelodyFilter( uint16 len, const int16 *filter ){}
699// void Media_MuteSpeaker( bool mute ){}
700void KT_SetOutputDevice( uint8 device ){}
701void KT_SetFIR( bool enable ){}
702void KT_Play( uint16 freq1, uint16 freq2, uint16 duration, TONE_TYPE type ){}
703void KT_Stop( TONE_TYPE type ){}
704void TONE_SetOutputDevice( uint8 device ){}
705void TONE_SetFIR( bool enable ){}
706void TONE_Play( const L1SP_Tones *tonelist, TONE_TYPE type ){}
707void TONE_Stop( TONE_TYPE type ){}
708
709void SP4G_emac_timing_update(l1sp_emac_volte_timing_info_struct* p_timing_info){
710}
711void SP3G_SetDTX(kal_bool on){}
712void SP_M2M_Handler(ilm_struct *ilm_ptr){}
713void Spc_ForceEndAllApp(void){}
714
715
716//for VoLTE Tone and KeyTone
717void SP4G_PSR_DL_KT_Play(kal_int16 freq1, kal_int16 freq2, kal_int16 duration){}
718void SP4G_PSR_DL_KT_Stop( void ){}
719void SP4G_PSR_UL_KT_Play(kal_int16 freq1, kal_int16 freq2, kal_int16 duration){}
720void SP4G_PSR_UL_KT_Stop( void ){}
721void SP4G_PSR_UL_Tone_Play(const L1SP_Tones *pToneList ){}
722void SP4G_PSR_UL_Tone_Stop( void ){}
723void SP4G_PSR_DL_Tone_Play(const L1SP_Tones *pToneList ){}
724void SP4G_PSR_DL_Tone_Stop( void ){}
725//for VoLTE Link
726void SP4G_PSR_UL_SetFrameType(SP4G_Codec codec){}
727kal_uint32 SP4G_PSR_Link_Est( SP4G_Codec default_speech_codec ){ return( 0 ); }
728void SP4G_PSR_Link_Deest(kal_uint32 id){}
729void SP4G_UL_SetFrameType(uint8 amr_frame_type){ (void) amr_frame_type; }
730kal_uint32 SP4G_JBM_GetDLVADFlag(){ return( 0 ); }
731//for VoLTE AMR codec
732void SP4G_PSR_UL_AMR_GetSpeechFrame(SP4G_Codec *frame_type, kal_uint8 *encodebits, kal_uint8 *bitlen, VoLTE_JBM_TS_Info_t *JBM_info){}
733void SP4G_PSR_DL_AMR_PutSpeechFrame(kal_uint32 CFN, SP4G_PSR_Codec codec, SP4G_Codec frame_type, kal_bool crc_status, kal_uint8 *encodebits, VoLTE_JBM_TS_Info_t *JBM_info){}
734void SP4G_PSR_SetDTX(kal_bool on){}
735void SP4G_SetDTX(kal_bool on){}
736kal_uint16 SP4G_PSR_GetCodecBitLength(SP4G_Codec codec){ return( 0 ); }
737//for VoLTE G serial codec
738void SP4G_PSR_UL_GSeries_GetSpeechFrame(SP4G_Codec *codec, kal_uint8 *encodebits, kal_uint8 *bitlen){}
739void SP4G_PSR_DL_GSeries_PutSpeechFrame(SP4G_Codec codec, kal_uint8 *encodebits, kal_uint8 *bitlen){}
740int SP4G_PSR_UL_GSeries_IsMoreData(void){ return( 0 ); }
741void SP4G_Set_G711Parameters(kal_int32 law, kal_int32 dec_init_CNG_enable){}
742//for VoLTE EVS codec
743//#if defined(__EVS_SUPPORT__)
744void SP4G_PSR_SetEVSEncCAPara(EVS_ENC_CA_PARAMETER *pEVS_CA_Par){}
745void SP4G_PSR_UL_EVS_GetSpeechFrame(SP4G_Codec *frame_type, kal_uint8 *encodebits, kal_uint32 *bitlen, VoLTE_JBM_TS_Info_t *JBM_info){}
746void SP4G_PSR_DL_EVS_PutSpeechFrame(kal_uint32 CFN, SP4G_Codec frame_type, kal_uint8 *encodebits, EVS_DEC_CA_PARAMETER *pEVS_Dec_CA_Par, kal_bool crc_status, VoLTE_JBM_TS_Info_t *JBM_info){}
747kal_bool convert_EVSHeaderFullCMR_to_SP4GCodecEnum(kal_uint8 CMR_value, SP4G_Codec *pSP4G_Codec, EVS_ENC_CA_PARAMETER *pEVS_ENC_CA_PARAMETER){return KAL_TRUE;}
748kal_bool convert_EVSHeaderFullTOC_to_SP4GCodecEnum(kal_uint8 TOC_value, kal_uint8 EVS_band, SP4G_Codec *pSP4G_Codec){return KAL_TRUE;}
749kal_bool convert_EVSCompactFormatCMR_to_SP4GCodecEnum(kal_uint8 CMR_value, SP4G_Codec *pSP4G_Codec){return KAL_TRUE;}
750//#endif //#if defined(__EVS_SUPPORT__)
751//for sp_4g_opt
752kal_int32 SP4G_PSR_getToneDeteResult(void) { return( 0 ); }
753kal_int32 SP4G_PSR_getEarPhone(void) { return( 0 ); }
754//for fake VoLTE loopback
755void sp4g_fake_loopback(void){}
756
757
758//for MED
759//void aud_util_in_proc_call_req_hdlr(ilm_struct *ilm_ptr){}
760//typedef void (*media_in_proc_call_type) (kal_uint32 arg1, void *arg2);
761//void aud_send_in_proc_call_req( module_type src_mod_id, media_in_proc_call_type func, kal_uint32 func_arg1, void *func_arg2){}
762kal_uint16 get_spcGetEpofTimes(enum_EPOF_event EPOF_event){ return( 0 ); }
763void set_spcGetEpofTimes(enum_EPOF_event EPOF_event, int on){}
764void spc_sendCustomDump(void *ilm){}
765
766void SP_setEmCodecNotifyOff(bool isOff){}
767void SP_setEmVoiceQualityEvent(kal_bool isOn){}
768
769void SP_L2P_Handler(ilm_struct *ilm_ptr){}
770//for 4G TTY
771kal_bool TTY_LTE_PSR_UL_isEmpty(void){return KAL_TRUE;}
772kal_uint8 TTY_LTE_PSR_UL_Get(void){return 0;}
773kal_uint16 TTY_LTE_PSR_UL_Queue_Size(void){return 0;}
774
775kal_bool TTY_LTE_PSR_DL_isFull(void){return KAL_TRUE;}
776void TTY_LTE_PSR_DL_Put(kal_uint8 tty_char){}
777kal_uint16 TTY_LTE_PSR_DL_Queue_Size(void){return 0;}
778void TTY_LTE_PSR_UL_Queue_Init(){};
779void TTY_LTE_PSR_DL_Queue_Init(){};
780
781
782
783void *CUIF_U2C_ULTail_ISR(CUIF_Mask_t* mask){ return NULL; }
784
785void *CUIF_U2C_DLTail_ISR(CUIF_Mask_t* mask){ return NULL; }
786
787void *CUIF_U2C_ULHead_ISR(CUIF_Mask_t* mask){ return NULL; }
788
789void *CUIF_U2C_DLHead_ISR(CUIF_Mask_t* mask){ return NULL; }
790
791void *CUIF_U2C_SPEECH_AUX_ISR(CUIF_Mask_t* mask){ return NULL; }
792
793void *CUIF_U2C_MMTail_ISR(CUIF_Mask_t* mask){ return NULL; }
794
795#if defined(__MD97__) || defined(__MD97P__)
796static struct {
797 uint32 dsp_first_init_done;
798} l1audio;
799#endif //#if defined(__MD97__) || defined(__MD97P__)
800
801void SetFlag()
802{
803#if defined(__MD97__) || defined(__MD97P__)
804 //turn on power/clock API
805 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
806
807 //dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
808 if(0 == l1audio.dsp_first_init_done)
809 {
810 dsp_firstboot_activate_by_module(L1_MODULE_SPEECH);
811 l1audio.dsp_first_init_done = 1;
812 }
813 else
814 {
815 dsp_activate_by_module(L1_MODULE_SPEECH);
816 }
817
818 //while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
819 while( DSP_CTRL_ACTIVATE_DONE != dsp_activate_done_check_by_module(L1_MODULE_SPEECH) ){
820 ;//kal_sleep_task( AUD_1TICK(1) );
821 }
822#else //#if defined(__MD97__) || defined(__MD97P__)
823 //turn on power/clock API
824 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
825
826 dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
827
828 while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
829 kal_sleep_task( AUD_1TICK(1) );
830 }
831#endif //#if defined(__MD97__) || defined(__MD97P__)
832}
833
834void ClearFlag()
835{
836#if defined(__MD97__) || defined(__MD97P__)
837 //turn off power/clock API
838
839 //dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
840 dsp_deactivate_by_module(L1_MODULE_SPEECH);
841
842 //while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
843 while( DSP_CTRL_DEACTIVATE_DONE != dsp_deactivate_done_check_by_module(L1_MODULE_SPEECH) ){
844 ;//kal_sleep_task( AUD_1TICK(1) );
845 }
846
847 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
848#else //#if defined(__MD97__) || defined(__MD97P__)
849 //turn off power/clock API
850 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
851
852 dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
853
854 while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
855 kal_sleep_task( AUD_1TICK(1) );
856 }
857#endif //#if defined(__MD97__) || defined(__MD97P__)
858}
859
860void L1Audio_BootDSPSpeech()
861{
862#if defined(__MD97__) || defined(__MD97P__)
863 //bool is_default_user;
864 //turn on power/clock API
865 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
866
867 //firstboot_activate(DSP_CONTROL_USIP1_SPEECH, DSP_CTRL_USIP_SPEECH);
868 if(0 == l1audio.dsp_first_init_done)
869 {
870 dsp_firstboot_activate_by_module(L1_MODULE_SPEECH);
871 l1audio.dsp_first_init_done = 1;
872 }
873 else
874 {
875 dsp_activate_by_module(L1_MODULE_SPEECH);
876 }
877
878 //is_default_user = is_myself_duty_rat(DSP_CTRL_USIP_SPEECH_SS1_INIT, DSP_CTRL_USIP_SPEECH);
879
880 //while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
881 while( DSP_CTRL_ACTIVATE_DONE != dsp_activate_done_check_by_module(L1_MODULE_SPEECH) ){
882 ;
883 }
884#else //#if defined(__MD97__) || defined(__MD97P__)
885 //bool is_default_user;
886 //turn on power/clock API
887 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
888
889 firstboot_activate(DSP_CONTROL_USIP1_SPEECH, DSP_CTRL_USIP_SPEECH);
890
891 //is_default_user = is_myself_duty_rat(DSP_CTRL_USIP_SPEECH_SS1_INIT, DSP_CTRL_USIP_SPEECH);
892
893 while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
894 ;
895 }
896#endif //#if defined(__MD97__) || defined(__MD97P__)
897}
898
899void L1Audio_UnBootDSPSpeech()
900{
901#if defined(__MD97__) || defined(__MD97P__)
902 //turn off power/clock API
903 //dsp_uSIP_speech_deactivate(DSP_CTRL_USIP_SPEECH);
904 dsp_deactivate_by_module(L1_MODULE_SPEECH);
905 //while( uSIP_DEACTIVEDONE != dsp_uSIP_speech_deactive_done_check(DSP_CTRL_USIP_SPEECH)){
906 while( DSP_CTRL_DEACTIVATE_DONE != dsp_deactivate_done_check_by_module(L1_MODULE_SPEECH) ){
907 ;
908 }
909 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
910#else //#if defined(__MD97__) || defined(__MD97P__)
911 //turn off power/clock API
912 dsp_uSIP_speech_deactivate(DSP_CTRL_USIP_SPEECH);
913 while( uSIP_DEACTIVEDONE != dsp_uSIP_speech_deactive_done_check(DSP_CTRL_USIP_SPEECH)){
914 ;
915 }
916 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
917#endif //#if defined(__MD97__) || defined(__MD97P__)
918}
919
920void L1Audio_UseDSPSpeech()
921{
922#if defined(__MD97__) || defined(__MD97P__)
923 //bool is_default_user;
924 //turn on power/clock API
925 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
926
927 //dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
928 if(0 == l1audio.dsp_first_init_done)
929 {
930 dsp_firstboot_activate_by_module(L1_MODULE_SPEECH);
931 l1audio.dsp_first_init_done = 1;
932 }
933 else
934 {
935 dsp_activate_by_module(L1_MODULE_SPEECH);
936 }
937 //is_default_user = is_myself_duty_rat(DSP_CTRL_USIP_SPEECH_SS1_INIT, DSP_CTRL_USIP_SPEECH);
938
939 //while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
940 while( DSP_CTRL_ACTIVATE_DONE != dsp_activate_done_check_by_module(L1_MODULE_SPEECH) ){
941 ;
942 }
943#else //#if defined(__MD97__) || defined(__MD97P__)
944 //bool is_default_user;
945 //turn on power/clock API
946 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_TRUE);
947
948 dsp_uSIP_speech_activate(DSP_CTRL_USIP_SPEECH);
949 //is_default_user = is_myself_duty_rat(DSP_CTRL_USIP_SPEECH_SS1_INIT, DSP_CTRL_USIP_SPEECH);
950
951 while( uSIP_ACTIVEDONE != dsp_uSIP_speech_active_done_check(DSP_CTRL_USIP_SPEECH)){
952 ;
953 }
954#endif //#if defined(__MD97__) || defined(__MD97P__)
955}
956
957void L1Audio_NotUseDSPSpeech()
958{
959#if defined(__MD97__) || defined(__MD97P__)
960 //turn off power/clock API
961 //dsp_uSIP_speech_deactivate(DSP_CTRL_USIP_SPEECH);
962 dsp_deactivate_by_module(L1_MODULE_SPEECH);
963 //while( uSIP_DEACTIVEDONE != dsp_uSIP_speech_deactive_done_check(DSP_CTRL_USIP_SPEECH)){
964 while( DSP_CTRL_DEACTIVATE_DONE != dsp_deactivate_done_check_by_module(L1_MODULE_SPEECH) ){
965 ;
966 }
967 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
968#else //#if defined(__MD97__) || defined(__MD97P__)
969 //turn off power/clock API
970 dsp_uSIP_speech_deactivate(DSP_CTRL_USIP_SPEECH);
971 while( uSIP_DEACTIVEDONE != dsp_uSIP_speech_deactive_done_check(DSP_CTRL_USIP_SPEECH)){
972 ;
973 }
974 MD_TOPSM_PWR_SW_Control(USIP0_PWR, KAL_FALSE);
975#endif //#if defined(__MD97__) || defined(__MD97P__)
976}
977
978void SP_SetUSIP_MPU_Info(void)
979{
980}
981
982void L1Audio_Task(unsigned argc, void *argv)
983{
984#ifdef __AUDIO_TASK_DISABLE__
985 return;
986#endif
987 L1Audio_BootDSPSpeech();
988 L1Audio_UnBootDSPSpeech();
989
990 //while(uSIP_BOOTDONE != uSIP_SPEECH_BootDoneCheck(uSIP_SPEECH_API_USE_NUM)){
991 // kal_sleep_task(AUD_1TICK(1));
992 //}
993
994 L1Audio_UseDSPSpeech();
995 //read/write DSP
996 L1Audio_NotUseDSPSpeech();
997}
998
999static void l1audio_main(task_entry_struct * task_entry_ptr)
1000{
1001 kal_set_active_module_id(MOD_L1SP);
1002 L1Audio_Task( 0, 0 );
1003}
1004
1005void SP_L4C_SetERTTSTR(uint8 call_id, uint8 string[256], uint16 length){};
1006void SP_L4C_SendERTTSTR(){};
1007void SPC2K_ConSSO_Req( uint16 u2SO, uint16 u2MaxEncRate){};
1008void SPC2K_DisconSSO_Req( void ){};
1009void SPC2K_DL_PutSpeechFrame_Do(IpcDsvSendSpkrVoiceFwdChPcktDataMsgT *MsgFLDataP){};
1010
1011
1012void SPC2K_EncMaxRate_Set(IpcDsvSetMicVoiceEncMaxRateMsgT *pMsg){};
1013void SPC2K_Debug_Info(IpcDsvSendAudioChanQltyMsgT * pMsg){};
1014void SPC2K_SOCM_Set(IpcDsvSendSsoCtrlParamsMsgT *pMsg){};
1015void SPC2K_ConSSO_Done_Rsp( void ){
1016 msg_send5(MOD_L1SP ,MOD_SPCH ,0x0 ,MSG_ID_CAAL_SSO_CONN_RSP_MSG, NULL);
1017}
1018void SPC2K_DisconSSO_Done_Rsp( void ){
1019 msg_send5(MOD_L1SP ,MOD_SPCH ,0x0 ,MSG_ID_CAAL_SSO_DISCONN_RSP_MSG, NULL);
1020}
1021
1022void TTY_LTE_PSR_DL_PutString(kal_uint8 call_id, kal_uint8 string[256], kal_uint16 length)
1023{
1024}
1025
1026kal_uint16 TTY_LTE_PSR_UL_GetChar(kal_uint8 call_id, kal_uint8 *buf){
1027 return 0;
1028}
1029