comparison L1/audio_include/l1audio_defty.h @ 0:75a11d740a02

initial import of gsm-fw from freecalypso-sw rev 1033:5ab737ac3ad7
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 09 Jun 2016 00:02:41 +0000
parents
children 420ac6391166
comparison
equal deleted inserted replaced
-1:000000000000 0:75a11d740a02
1 /************* Revision Controle System Header *************
2 * GSM Layer 1 software
3 * L1AUDIO_DEFTY.H
4 *
5 * Filename l1audio_defty.h
6 * Copyright 2003 (C) Texas Instruments
7 *
8 ************* Revision Controle System Header *************/
9
10 #include "../../include/config.h"
11 #include "../include/l1_confg.h"
12 #include "l1audio_msgty.h"
13 #include "../audio_cust0/l1audio_cust.h"
14 #include "l1audio_const.h"
15 #include "l1audio_btapi.h"
16 #if (AUDIO_TASK == 1)
17
18 #if (KEYBEEP)
19 /**************************************************************************/
20 /* Keybeep l1a_l1s_com structure... */
21 /**************************************************************************/
22 typedef struct
23 {
24 BOOL start;
25 BOOL stop;
26 }
27 T_KEYBEEP_COMMAND;
28
29 typedef struct
30 {
31 T_KEYBEEP_COMMAND command;
32 }
33 T_KEYBEEP_TASK;
34 #endif
35
36 #if (TONE)
37 /**************************************************************************/
38 /* Tone l1a_l1s_com structure... */
39 /**************************************************************************/
40 typedef struct
41 {
42 BOOL start;
43 BOOL stop;
44 }
45 T_TONE_COMMAND;
46
47 typedef struct
48 {
49 T_TONE_COMMAND command;
50 }
51 T_TONE_TASK;
52 #endif
53
54 #if (MELODY_E1)
55 /**************************************************************************/
56 /* Melody l1a_l1s_com structure... */
57 /**************************************************************************/
58 typedef struct
59 {
60 BOOL start;
61 BOOL stop;
62 }
63 T_MELODY_COMMAND;
64
65 typedef struct
66 {
67 UWORD8 session_id;
68 UWORD8 error_id;
69 UWORD16 buffer_size;
70 UWORD16 *ptr_buf;
71 BOOL loopback;
72 UWORD16 oscillator_used_bitmap;
73 UWORD16 oscillator_melody_bitmap;
74 UWORD8 melody_to_oscillator[SC_NUMBER_OSCILLATOR];
75 }
76 T_MELODY_PARAM;
77
78 typedef struct
79 {
80 T_MELODY_COMMAND command;
81 T_MELODY_PARAM parameters;
82 }
83 T_MELODY_TASK;
84
85 /**************************************************************************/
86 /* Melody l1s structure... */
87 /**************************************************************************/
88
89 typedef struct
90 {
91 UWORD8 error_id;
92 UWORD16 buffer_size;
93 UWORD16 *ptr_buf;
94 UWORD16 melody_header;
95 API *(oscillator[SC_NUMBER_OSCILLATOR]);
96 UWORD16 counter;
97 UWORD16 oscillator_used_in_desc;
98 UWORD16 oscillator_started;
99 }
100 T_L1S_MELODY_TASK;
101 #endif
102
103 #if (VOICE_MEMO)
104 /**************************************************************************/
105 /* Voice memo l1a_l1s_com structure... */
106 /**************************************************************************/
107
108 typedef struct
109 {
110 BOOL start;
111 BOOL stop;
112 }
113 T_VM_PLAY_COMMAND;
114
115 typedef struct
116 {
117 UWORD8 session_id;
118 }
119 T_VM_PLAY_PARAM;
120
121 typedef struct
122 {
123 T_VM_PLAY_COMMAND command;
124 T_VM_PLAY_PARAM parameters;
125 }
126 T_VM_PLAY_TASK;
127
128 typedef struct
129 {
130 BOOL start;
131 BOOL stop;
132 }
133 T_VM_RECORD_COMMAND;
134
135 typedef struct
136 {
137 UWORD8 session_id;
138 UWORD32 maximum_size;
139 BOOL dtx;
140 }
141 T_VM_RECORD_PARAM;
142
143 typedef struct
144 {
145 BOOL start;
146 }
147 T_VM_RECORD_TONE_UL;
148
149 typedef struct
150 {
151 T_VM_RECORD_COMMAND command;
152 T_VM_RECORD_PARAM parameters;
153 T_VM_RECORD_TONE_UL tone_ul;
154 }
155 T_VM_RECORD_TASK;
156
157 typedef struct
158 {
159 T_VM_PLAY_TASK play;
160 T_VM_RECORD_TASK record;
161 }
162 T_VM_TASK;
163
164 /**************************************************************************/
165 /* Voice memo l1s structure... */
166 /**************************************************************************/
167
168 typedef struct
169 {
170 API *a_du_x;
171 UWORD8 error_id;
172 UWORD16 buffer_size;
173 UWORD16 *ptr_buf;
174 UWORD32 recorded_size;
175 }
176 T_L1S_VM_RECORD_TASK;
177
178 typedef struct
179 {
180 API *a_du_x;
181 UWORD8 error_id;
182 UWORD16 buffer_size;
183 UWORD16 *ptr_buf;
184 }
185 T_L1S_VM_PLAY_TASK;
186
187 typedef struct
188 {
189 T_L1S_VM_PLAY_TASK play;
190 T_L1S_VM_RECORD_TASK record;
191 }
192 T_L1S_VM_TASK;
193
194 #endif
195
196 #if (L1_PCM_EXTRACTION)
197 /**************************************************************************/
198 /* PCM extraction l1a_l1s_com structure... */
199 /**************************************************************************/
200
201 typedef struct
202 {
203 BOOL start;
204 BOOL stop;
205 }
206 T_PCM_DOWNLOAD_COMMAND;
207
208 typedef struct
209 {
210 UWORD8 session_id;
211 UWORD32 maximum_size;
212 }
213 T_PCM_DOWNLOAD_PARAM;
214
215 typedef struct
216 {
217 T_PCM_DOWNLOAD_COMMAND command;
218 T_PCM_DOWNLOAD_PARAM parameters;
219 }
220 T_PCM_DOWNLOAD_TASK;
221
222 typedef struct
223 {
224 BOOL start;
225 BOOL stop;
226 }
227 T_PCM_UPLOAD_COMMAND;
228
229 typedef struct
230 {
231 UWORD8 session_id;
232 UWORD32 maximum_size;
233 }
234 T_PCM_UPLOAD_PARAM;
235
236 typedef struct
237 {
238 T_PCM_UPLOAD_COMMAND command;
239 T_PCM_UPLOAD_PARAM parameters;
240 }
241 T_PCM_UPLOAD_TASK;
242
243 typedef struct
244 {
245 T_PCM_DOWNLOAD_TASK download;
246 T_PCM_UPLOAD_TASK upload;
247 }
248 T_PCM_TASK;
249
250 /**************************************************************************/
251 /* PCM l1s structure... */
252 /**************************************************************************/
253
254 typedef struct
255 {
256 UWORD8 error_id;
257 UWORD16 buffer_size;
258 UWORD16 *ptr_buf;
259 UWORD32 uploaded_size;
260 }
261 T_L1S_PCM_UPLOAD_TASK;
262
263 typedef struct
264 {
265 UWORD8 error_id;
266 UWORD16 buffer_size;
267 UWORD16 *ptr_buf;
268 UWORD32 downloaded_size;
269 }
270 T_L1S_PCM_DOWNLOAD_TASK;
271
272 typedef struct
273 {
274 T_L1S_PCM_DOWNLOAD_TASK download;
275 T_L1S_PCM_UPLOAD_TASK upload;
276 }
277 T_L1S_PCM_TASK;
278
279 #endif /* L1_PCM_EXTRACTION */
280
281 #if (L1_VOICE_MEMO_AMR)
282 /**************************************************************************/
283 /* Voice memo amr l1a_l1s_com structure... */
284 /**************************************************************************/
285
286 typedef struct
287 {
288 BOOL start;
289 BOOL pause;
290 BOOL resume;
291 BOOL stop;
292 }
293 T_VM_AMR_PLAY_COMMAND;
294
295 typedef struct
296 {
297 UWORD8 session_id;
298 }
299 T_VM_AMR_PLAY_PARAM;
300
301 typedef struct
302 {
303 T_VM_AMR_PLAY_COMMAND command;
304 T_VM_AMR_PLAY_PARAM parameters;
305 }
306 T_VM_AMR_PLAY_TASK;
307
308 typedef struct
309 {
310 BOOL start;
311 BOOL stop;
312 }
313 T_VM_AMR_RECORD_COMMAND;
314
315 typedef struct
316 {
317 UWORD8 session_id;
318 UWORD32 maximum_size;
319 UWORD8 amr_vocoder;
320 BOOL dtx;
321 }
322 T_VM_AMR_RECORD_PARAM;
323
324 typedef struct
325 {
326 T_VM_AMR_RECORD_COMMAND command;
327 T_VM_AMR_RECORD_PARAM parameters;
328 }
329 T_VM_AMR_RECORD_TASK;
330
331 typedef struct
332 {
333 T_VM_AMR_PLAY_TASK play;
334 T_VM_AMR_RECORD_TASK record;
335 }
336 T_VM_AMR_TASK;
337
338 /**************************************************************************/
339 /* Voice memo l1s structure... */
340 /**************************************************************************/
341
342 typedef struct
343 {
344 API *a_du_x;
345 UWORD8 error_id;
346 UWORD16 buffer_size;
347 UWORD8 *ptr_buf;
348 UWORD32 recorded_size;
349 }
350 T_L1S_VM_AMR_RECORD_TASK;
351
352 typedef struct
353 {
354 API *a_du_x;
355 UWORD8 error_id;
356 UWORD16 buffer_size;
357 UWORD8 *ptr_buf;
358 UWORD8 previous_type;
359 UWORD8 transition_header;
360 }
361 T_L1S_VM_AMR_PLAY_TASK;
362
363 typedef struct
364 {
365 T_L1S_VM_AMR_PLAY_TASK play;
366 T_L1S_VM_AMR_RECORD_TASK record;
367 }
368 T_L1S_VM_AMR_TASK;
369
370 #endif // L1_VOICE_MEMO_AMR
371 #if (SPEECH_RECO)
372 /**************************************************************************/
373 /* Speech recogniton l1a_l1s_com structure... */
374 /**************************************************************************/
375
376 typedef struct
377 {
378 BOOL enroll_start;
379 BOOL enroll_stop;
380 BOOL update_start;
381 BOOL update_stop;
382 BOOL reco_start;
383 BOOL reco_stop;
384 BOOL processing_start;
385 BOOL processing_stop;
386 BOOL speech_start;
387 BOOL speech_stop;
388 }
389 T_SR_COMMAND;
390
391 typedef struct
392 {
393 UWORD8 database_id;
394 UWORD8 word_index;
395 API *model_address;
396 UWORD16 *model_temp_address;
397 BOOL speech;
398 UWORD16 *speech_address;
399 UWORD16 *start_address;
400 UWORD16 *stop_address;
401 BOOL CTO_algorithm;
402 UWORD8 index_counter;
403 UWORD8 vocabulary_size;
404 UWORD8 word_to_check;
405 UWORD16 best_word_index;
406 UWORD32 best_word_score;
407 UWORD16 second_best_word_index;
408 UWORD32 second_best_word_score;
409 UWORD16 third_best_word_index;
410 UWORD32 third_best_word_score;
411 UWORD16 fourth_best_word_index;
412 UWORD32 fourth_best_word_score;
413 UWORD16 d_sr_db_level;
414 UWORD16 d_sr_db_noise;
415 UWORD16 d_sr_model_size;
416 }
417 T_SR_PARAM;
418
419 typedef struct
420 {
421 T_SR_COMMAND command;
422 T_SR_PARAM parameters;
423 }
424 T_SR_TASK;
425
426 typedef struct
427 {
428 UWORD16 time_out;
429 UWORD8 error;
430 UWORD16 *speech_pointer;
431 UWORD16 *end_pointer;
432 API *a_du_x;
433 UWORD16 speech_old_status;
434 BOOL first_pass;
435 }
436 T_L1S_SR_TASK;
437
438 typedef struct
439 {
440 BOOL emergency_stop;
441 }
442 T_L1_SRBACK_COM;
443
444 #endif
445
446 #if (L1_AEC == 1)
447 typedef struct
448 {
449 UWORD16 aec_control;
450 #if (L1_NEW_AEC)
451 UWORD16 cont_filter;
452 UWORD16 granularity_att;
453 UWORD16 coef_smooth;
454 UWORD16 es_level_max;
455 UWORD16 fact_vad;
456 UWORD16 thrs_abs;
457 UWORD16 fact_asd_fil;
458 UWORD16 fact_asd_mut;
459 #endif
460 }
461 T_AEC_PARAM;
462
463 typedef struct
464 {
465 BOOL start;
466 }
467 T_AEC_COMMAND;
468
469 typedef struct
470 {
471 T_AEC_COMMAND command;
472 T_AEC_PARAM parameters;
473 }
474 T_AEC_TASK;
475
476 typedef struct
477 {
478 UWORD16 aec_control;
479 #if (L1_NEW_AEC)
480 BOOL aec_visibility;
481 UWORD16 cont_filter;
482 UWORD16 granularity_att;
483 UWORD16 coef_smooth;
484 UWORD16 es_level_max;
485 UWORD16 fact_vad;
486 UWORD16 thrs_abs;
487 UWORD16 fact_asd_fil;
488 UWORD16 fact_asd_mut;
489 WORD8 visibility_interval;
490 #endif
491 } T_L1S_AEC_TASK;
492 #endif
493
494 #if(L1_AEC == 2)
495
496 typedef struct
497 {
498 BOOL start;
499 }
500 T_AEC_COMMAND;
501
502
503 typedef struct
504 {
505 WORD16 aec_mode;
506 WORD16 mu;
507 UWORD16 cont_filter;
508 WORD16 scale_input_ul;
509 WORD16 scale_input_dl;
510 WORD16 div_dmax;
511 UWORD16 div_swap_good;
512 UWORD16 div_swap_bad;
513 WORD16 block_init;
514 UWORD16 fact_vad;
515 UWORD16 fact_asd_fil;
516 UWORD16 fact_asd_mut;
517 UWORD16 thrs_abs;
518 UWORD16 es_level_max;
519 UWORD16 granularity_att;
520 UWORD16 coef_smooth;
521 // UWORD16 block_size;
522 }
523 T_AEC_PARAMS;
524
525
526 typedef struct
527 {
528 T_AEC_COMMAND command;
529 T_AEC_CONTROL aec_control;
530 T_AEC_PARAMS parameters;
531 }
532 T_AEC_TASK;
533
534
535 #endif
536
537
538 #if (FIR)
539 typedef struct
540 {
541 BOOL fir_loop;
542 UWORD8 update_fir;
543 UWORD16 *fir_ul_coefficient;
544 UWORD16 *fir_dl_coefficient;
545 }
546 T_FIR_PARAM;
547
548 typedef struct
549 {
550 BOOL start;
551 }
552 T_FIR_COMMAND;
553
554 typedef struct
555 {
556 T_FIR_COMMAND command;
557 T_FIR_PARAM parameters;
558 }
559 T_FIR_TASK;
560 #endif
561
562 #if (AUDIO_MODE)
563 typedef struct
564 {
565 UWORD16 audio_mode;
566 }
567 T_AUDIO_MODE_PARAM;
568
569 typedef struct
570 {
571 BOOL start;
572 }
573 T_AUDIO_MODE_COMMAND;
574
575 typedef struct
576 {
577 T_AUDIO_MODE_COMMAND command;
578 T_AUDIO_MODE_PARAM parameters;
579 }
580 T_AUDIO_MODE_TASK;
581 #endif
582 #if (MELODY_E2)
583 /**************************************************************************/
584 /* Melody format E2 l1a_l1s_com structure... */
585 /**************************************************************************/
586 typedef struct
587 {
588 BOOL start;
589 BOOL stop;
590 }
591 T_MELODY_E2_COMMAND;
592
593 typedef struct
594 {
595 UWORD8 session_id;
596 UWORD8 error_id;
597 UWORD16 buffer_size;
598 UWORD8 *ptr_buf;
599 BOOL loopback;
600 UWORD8 header_size;
601 BOOL emergency_stop;
602 UWORD8 number_of_instrument;
603 UWORD8 waves_table_id[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT];
604 }
605 T_MELODY_E2_PARAM;
606
607 typedef struct
608 {
609 T_MELODY_E2_COMMAND command;
610 T_MELODY_E2_PARAM parameters;
611 }
612 T_MELODY_E2_TASK;
613
614 /**************************************************************************/
615 /* Melody format E2 l1s structure... */
616 /**************************************************************************/
617 typedef struct
618 {
619 UWORD8 error_id;
620 UWORD16 buffer_size;
621 UWORD8 *ptr_buf;
622 UWORD32 counter;
623 UWORD32 note_start_20ms;
624 UWORD16 oscillator_start;
625 UWORD16 oscillator_active;
626 UWORD16 delta_time;
627 BOOL extension_flag;
628 BOOL end_of_file;
629 }
630 T_L1S_MELODY_E2_TASK;
631
632 typedef struct
633 {
634 UWORD32 timebase;
635 UWORD16 global_osc_active;
636 UWORD16 global_osc_to_start;
637 UWORD8 timebase_mod_60ms;
638 BOOL dsp_task;
639 }
640 T_L1S_MELODY_E2_COMMON_VAR;
641
642 /**************************************************************************/
643 /* Melody format E2 audio background structure... */
644 /**************************************************************************/
645 typedef struct
646 {
647 API *API_address;
648 UWORD16 allowed_size;
649 UWORD8 number_of_user[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT];
650 UWORD8 instrument_id[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT];
651 UWORD16 instrument_size[SC_AUDIO_MELODY_E2_MAX_NUMBER_OF_INSTRUMENT];
652 } T_AUDIO_BACK_MELODY_E2;
653 #endif // MELODY_E2
654 #if (L1_CPORT == 1)
655 /**************************************************************************/
656 /* Cport l1a_l1s_com structure... */
657 /**************************************************************************/
658 typedef struct
659 {
660 BOOL start;
661 }
662 T_CPORT_COMMAND;
663
664 typedef struct
665 {
666 UWORD16 configuration;
667 UWORD16 ctrl;
668 UWORD8 cpcfr1;
669 UWORD8 cpcfr2;
670 UWORD8 cpcfr3;
671 UWORD8 cpcfr4;
672 UWORD8 cptctl;
673 UWORD8 cpttaddr;
674 UWORD16 cptdat;
675 UWORD16 cptvs;
676 }
677 T_CPORT_PARAM;
678
679 typedef struct
680 {
681 T_CPORT_COMMAND command;
682 T_CPORT_PARAM parameters;
683 }
684 T_CPORT_TASK;
685 #endif
686
687 #if (L1_EXTERNAL_AUDIO_VOICE_ONOFF == 1 || L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1)
688 typedef struct
689 {
690 BOOL start;
691 }
692 T_AUDIO_ONOFF_COMMAND;
693
694 typedef struct
695 {
696 #if (L1_EXTERNAL_AUDIO_VOICE_ONOFF == 1)
697 UWORD8 onoff_value; /* This value is used to indicate the required state from the MMI interface */
698 #endif
699 #if (L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1)
700 UWORD8 vul_onoff_value;/* This value is used to indicate the required state from the MMI interface */
701 UWORD8 vdl_onoff_value;/* This value is used to indicate the required state from the MMI interface */
702
703 #endif
704 }
705 T_AUDIO_ONOFF_PARAM;
706
707 typedef struct
708 {
709 T_AUDIO_ONOFF_COMMAND command;
710 T_AUDIO_ONOFF_PARAM parameters;
711 }
712 T_AUDIO_ONOFF_TASK;
713 #endif
714
715 #if (L1_EXT_MCU_AUDIO_VOICE_ONOFF == 1)
716 #define L1_AUDIO_VOICE_UL_OFF 0
717 #define L1_AUDIO_VOICE_UL_ON 1
718 #define L1_AUDIO_VOICE_UL_NO_ACTION 2
719
720 #define L1_AUDIO_VOICE_DL_OFF 0
721 #define L1_AUDIO_VOICE_DL_ON 1
722 #define L1_AUDIO_VOICE_DL_NO_ACTION 2
723 #endif
724
725 #if (L1_STEREOPATH == 1)
726 /**************************************************************************/
727 /* Stereopath l1a_l1s_com structure... */
728 /**************************************************************************/
729 typedef struct
730 {
731 BOOL start;
732 BOOL stop;
733 }
734 T_STEREOPATH_DRV_COMMAND;
735
736 typedef struct
737 {
738 #if (CODE_VERSION == NOT_SIMULATION)
739 UWORD8 sampling_frequency;
740 UWORD8 DMA_allocation;
741 void (*DMA_int_callback_fct) (UWORD16);
742 UWORD8 DMA_channel_number;
743 UWORD8 data_type;
744 UWORD8 source_port;
745 WORD8 *source_buffer_address;
746 UWORD16 element_number;
747 UWORD16 frame_number;
748 UWORD8 mono_stereo;
749 UWORD8 feature_identifier;
750 #else
751 UWORD8 dummy;
752 #endif
753 }
754 T_STEREOPATH_DRV_PARAM;
755
756 typedef struct
757 {
758 T_STEREOPATH_DRV_COMMAND command;
759 T_STEREOPATH_DRV_PARAM parameters;
760 }
761 T_STEREOPATH_DRV_TASK;
762
763 #endif
764
765 #if (L1_EXT_AUDIO_MGT == 1)
766 typedef struct
767 {
768 UWORD8 session_id;
769 }
770 T_L1S_EXT_AUDIO_MGT_VAR;
771 #endif
772
773 #if (L1_ANR == 1)
774 /**************************************************************************/
775 /* ANR l1a_l1s_com structure... */
776 /**************************************************************************/
777 typedef struct
778 {
779 BOOL update;
780 }
781 T_ANR_COMMAND;
782
783 typedef struct
784 {
785 BOOL anr_enable;
786 WORD16 min_gain;
787 WORD8 div_factor_shift;
788 UWORD8 ns_level;
789 }
790 T_ANR_PARAM;
791
792 typedef struct
793 {
794 T_ANR_COMMAND command;
795 T_ANR_PARAM parameters;
796 }
797 T_ANR_TASK;
798 #endif
799
800 #if (L1_ANR == 2)
801 /**************************************************************************/
802 /* ANR 2.13 l1a_l1s_com structure... */
803 /**************************************************************************/
804 typedef struct
805 {
806 BOOL update;
807 }
808 T_AQI_ANR_COMMAND;
809
810 typedef struct
811 {
812 T_ANR_CONTROL anr_ul_control;
813 WORD16 control;
814 WORD16 ns_level;
815 WORD16 tone_ene_th;
816 WORD16 tone_cnt_th;
817 }
818 T_AQI_ANR_PARAM;
819
820 typedef struct
821 {
822 T_AQI_ANR_COMMAND command;
823 T_AQI_ANR_PARAM parameters;
824 }
825 T_AQI_ANR_TASK;
826 #endif
827
828 #if (L1_IIR == 1)
829 /**************************************************************************/
830 /* IIR l1a_l1s_com structure... */
831 /**************************************************************************/
832 typedef struct
833 {
834 BOOL update;
835 }
836 T_IIR_COMMAND;
837
838 typedef struct
839 {
840 BOOL iir_enable;
841 UWORD8 nb_iir_blocks;
842 WORD16 *iir_coefs;
843 UWORD8 nb_fir_coefs;
844 WORD16 *fir_coefs;
845 WORD8 input_scaling;
846 WORD8 fir_scaling;
847 WORD8 input_gain_scaling;
848 WORD8 output_gain_scaling;
849 UWORD16 output_gain;
850 WORD16 feedback;
851 }
852 T_IIR_PARAM;
853
854 typedef struct
855 {
856 T_IIR_COMMAND command;
857 T_IIR_PARAM parameters;
858 }
859 T_IIR_TASK;
860 #endif
861
862 #if (L1_WCM == 1)
863 /**************************************************************************/
864 /* WCM 1.x l1a_l1s_com structure... */
865 /**************************************************************************/
866 typedef struct
867 {
868 BOOL update;
869 }
870 T_AQI_WCM_COMMAND;
871
872 typedef struct
873 {
874 T_AQI_WCM_COMMAND command;
875 T_AQI_WCM_PARAM *parameters;
876 }
877 T_AQI_WCM_TASK;
878 #endif
879
880 #if (L1_IIR == 2)
881 /**************************************************************************/
882 /* IIR 4.x l1a_l1s_com structure... */
883 /**************************************************************************/
884 typedef struct
885 {
886 BOOL update;
887 }
888 T_AQI_IIR_COMMAND;
889
890 typedef struct
891 {
892 T_AQI_IIR_COMMAND command;
893 T_AQI_IIR_PARAM *parameters;
894 }
895 T_AQI_IIR_TASK;
896 #endif
897
898
899 #if (L1_AGC_UL == 1 || L1_AGC_DL == 1)
900 typedef struct
901 {
902 BOOL update;
903 }
904 T_AQI_AGC_COMMAND;
905 #endif
906
907 #if (L1_AGC_UL == 1)
908 /**************************************************************************/
909 /* AGC UL l1a_l1s_com structure... */
910 /**************************************************************************/
911
912 typedef struct
913 {
914 T_AGC_CONTROL agc_ul_control;
915 UWORD16 control;
916 UWORD16 frame_size;
917 WORD16 targeted_level;
918 WORD16 signal_up;
919 WORD16 signal_down;
920 WORD16 max_scale;
921 WORD16 gain_smooth_alpha;
922 WORD16 gain_smooth_alpha_fast;
923 WORD16 gain_smooth_beta;
924 WORD16 gain_smooth_beta_fast;
925 WORD16 gain_intp_flag;
926 }
927 T_AQI_AGC_UL_PARAM;
928
929 typedef struct
930 {
931 T_AQI_AGC_COMMAND command;
932 T_AQI_AGC_UL_PARAM parameters;
933 }
934 T_AQI_AGC_UL_TASK;
935 #endif
936
937 #if (L1_AGC_DL == 1)
938 /**************************************************************************/
939 /* AGC DL l1a_l1s_com structure... */
940 /**************************************************************************/
941
942 typedef struct
943 {
944 T_AGC_CONTROL agc_dl_control;
945 UWORD16 control;
946 UWORD16 frame_size;
947 WORD16 targeted_level;
948 WORD16 signal_up;
949 WORD16 signal_down;
950 WORD16 max_scale;
951 WORD16 gain_smooth_alpha;
952 WORD16 gain_smooth_alpha_fast;
953 WORD16 gain_smooth_beta;
954 WORD16 gain_smooth_beta_fast;
955 WORD16 gain_intp_flag;
956 }
957 T_AQI_AGC_DL_PARAM;
958
959 typedef struct
960 {
961 T_AQI_AGC_COMMAND command;
962 T_AQI_AGC_DL_PARAM parameters;
963 }
964 T_AQI_AGC_DL_TASK;
965 #endif
966
967 #if (L1_DRC == 1)
968 /**************************************************************************/
969 /* DRC 1.x l1a_l1s_com structure... */
970 /**************************************************************************/
971 typedef struct
972 {
973 BOOL update;
974 }
975 T_AQI_DRC_COMMAND;
976
977 typedef struct
978 {
979 T_AQI_DRC_COMMAND command;
980 T_AQI_DRC_PARAM *parameters;
981 }
982 T_AQI_DRC_TASK;
983
984
985 /**************************************************************************/
986 /* MP3 MCU-DSP API */
987 /**************************************************************************/
988 typedef struct
989 {
990 API_SIGNED d_drc_speech_mode_samp_f;
991 API_SIGNED d_drc_num_subbands;
992 API_SIGNED d_drc_frame_len;
993 API_SIGNED d_drc_expansion_knee_fb_bs;
994 API_SIGNED d_drc_expansion_knee_md_hg;
995 API_SIGNED d_drc_expansion_ratio_fb_bs;
996 API_SIGNED d_drc_expansion_ratio_md_hg;
997 API_SIGNED d_drc_max_amplification_fb_bs;
998 API_SIGNED d_drc_max_amplification_md_hg;
999 API_SIGNED d_drc_compression_knee_fb_bs;
1000 API_SIGNED d_drc_compression_knee_md_hg;
1001 API_SIGNED d_drc_compression_ratio_fb_bs;
1002 API_SIGNED d_drc_compression_ratio_md_hg;
1003 API_SIGNED d_drc_energy_limiting_th_fb_bs;
1004 API_SIGNED d_drc_energy_limiting_th_md_hg;
1005 API_SIGNED d_drc_limiter_threshold_fb;
1006 API_SIGNED d_drc_limiter_threshold_bs;
1007 API_SIGNED d_drc_limiter_threshold_md;
1008 API_SIGNED d_drc_limiter_threshold_hg;
1009 API_SIGNED d_drc_limiter_hangover_spect_preserve;
1010 API_SIGNED d_drc_limiter_release_fb_bs;
1011 API_SIGNED d_drc_limiter_release_md_hg;
1012 API_SIGNED d_drc_gain_track_fb_bs;
1013 API_SIGNED d_drc_gain_track_md_hg;
1014 API_SIGNED a_drc_low_pass_filter[17];
1015 API_SIGNED a_drc_mid_band_filter[17];
1016 } T_DRC_MCU_DSP;
1017 #endif
1018
1019 #if (L1_LIMITER == 1)
1020 /**************************************************************************/
1021 /* LIMITER l1a_l1s_com structure... */
1022 /**************************************************************************/
1023 typedef struct
1024 {
1025 BOOL update;
1026 BOOL partial_update;
1027 }
1028 T_LIMITER_COMMAND;
1029
1030 typedef struct
1031 {
1032 BOOL limiter_enable;
1033 UWORD16 block_size;
1034 UWORD16 slope_update_period;
1035 UWORD16 nb_fir_coefs;
1036 WORD16 *filter_coefs;
1037 WORD16 thr_low_0;
1038 WORD16 thr_low_slope;
1039 WORD16 thr_high_0;
1040 WORD16 thr_high_slope;
1041 WORD16 gain_fall;
1042 WORD16 gain_rise;
1043 }
1044 T_LIMITER_PARAM;
1045
1046 typedef struct
1047 {
1048 T_LIMITER_COMMAND command;
1049 T_LIMITER_PARAM parameters;
1050 }
1051 T_LIMITER_TASK;
1052 #endif
1053
1054 #if (L1_ES == 1)
1055 /**************************************************************************/
1056 /* ES l1a_l1s_com structure... */
1057 /**************************************************************************/
1058 typedef struct
1059 {
1060 BOOL update;
1061 }
1062 T_ES_COMMAND;
1063
1064 typedef struct
1065 {
1066 UWORD8 es_mode; /* ES general configuration */
1067 WORD16 es_gain_dl;
1068 WORD16 es_gain_ul_1;
1069 WORD16 es_gain_ul_2;
1070 WORD16 tcl_fe_ls_thr; /* TCL reference threshold in FE mode for loud signal */
1071 WORD16 tcl_dt_ls_thr; /* TCL reference threshold in DT mode for loud signal */
1072 WORD16 tcl_fe_ns_thr; /* TCL reference threshold in FE mode for nominal signal */
1073 WORD16 tcl_dt_ns_thr; /* TCL reference threshold in DT mode for nominal signal */
1074 WORD16 tcl_ne_thr; /* TCL reference threshold in NE mode */
1075 WORD16 ref_ls_pwr; /* reference power for loud signals in DL */
1076 WORD16 switching_time; /* switching time (idx) */
1077 WORD16 switching_time_dt; /* switching time (idx) in DT mode */
1078 WORD16 hang_time; /* hangover time (idx) */
1079 WORD16 gain_lin_dl_vect[4]; /* downlink linear gain per state */
1080 WORD16 gain_lin_ul_vect[4]; /* uplink linear gain per state */
1081 }
1082 T_ES_CONFIG;
1083
1084 typedef struct
1085 {
1086 UWORD8 es_enable;
1087 UWORD8 es_behavior;
1088 T_ES_CONFIG es_config;
1089 }
1090 T_ES_PARAM;
1091
1092 typedef struct
1093 {
1094 T_ES_COMMAND command;
1095 T_ES_PARAM parameters;
1096 }
1097 T_ES_TASK;
1098 #endif
1099
1100 typedef struct
1101 {
1102 BOOL start;
1103 }
1104 T_AUDIOIT_COMMAND;
1105
1106 typedef struct
1107 {
1108 T_AUDIOIT_COMMAND command;
1109 }
1110 T_AUDIOIT_TASK;
1111
1112 // Triton Audio ON/OFF Changes
1113 #if (L1_AUDIO_MCU_ONOFF == 1)
1114 typedef enum
1115 {
1116 L1_AUDIO_NO_ACTION = 0,
1117 L1_AUDIO_TURN_ON = 1,
1118 L1_AUDIO_TURN_OFF = 2
1119 }
1120 T_L1_AUDIO_ACTION;
1121
1122 typedef enum
1123 {
1124 L1_INVALID = 0xFF,
1125 L1_AUDIO_UL_OFF = 0,
1126 L1_AUDIO_UL_SWITCHON_STARTED = 1,
1127 L1_AUDIO_UL_ON = 2,
1128 L1_AUDIO_UL_SWITCHOFF_STARTED = 3
1129 }
1130 T_L1_AUDIO_UL_STATE;
1131
1132 typedef enum
1133 {
1134 L1_DL_INVALID = 0xFF,
1135 L1_AUDIO_DL_OFF = 0,
1136 L1_AUDIO_DL_SWITCHON_STARTED = 1,
1137 L1_AUDIO_DL_ON = 2,
1138 L1_AUDIO_DL_SWITCHOFF_STARTED = 3
1139 }
1140 T_L1_AUDIO_DL_STATE;
1141
1142 typedef enum
1143 {
1144 L1_AUDIO_DL_PATH = 0,
1145 L1_AUDIO_UL_PATH = 1
1146 }
1147 T_L1_AUDIO_PATH;
1148
1149
1150 typedef struct
1151 {
1152 UWORD8 l1_audio_switch_on_ul_request;
1153 UWORD8 l1_audio_switch_on_dl_request;
1154
1155 UWORD8 l1_audio_ul_on2off_hold_time;
1156 UWORD8 l1_audio_dl_on2off_hold_time;
1157
1158 T_L1_AUDIO_ACTION l1_audio_ul_action;
1159 T_L1_AUDIO_ACTION l1_audio_dl_action;
1160
1161
1162 BOOL l1_audio_ul_switched_on;
1163 BOOL l1_audio_dl_switched_on;
1164
1165 BOOL l1_audio_ul_switched_off;
1166 BOOL l1_audio_dl_switched_off;
1167
1168 }
1169 T_L1S_AUDIO_ONOFF_MANAGER;
1170
1171 #endif // L1_AUDIO_MCU_ONOFF
1172
1173 #if(L1_MIDI_BUFFER == 1)
1174 typedef struct
1175 {
1176 UWORD8 a_midi_buffer_size;
1177 #if (DRP_FW_BUILD != 1)
1178 #if ((OP_L1_STANDALONE == 0) && (PSP_STANDALONE == 0))
1179 UINT16 audio_play_buffer[AUDIO_EXT_MIDI_BUFFER_SIZE*2];
1180 #endif
1181 #endif
1182 }T_MIDI_DMA_PARAM;
1183 #endif
1184
1185 #if(L1_BT_AUDIO ==1)
1186 typedef struct
1187 {
1188 BOOL connected_status;
1189 BOOL pcm_data_ready;
1190 UWORD8 pcm_data_pending;
1191 UWORD8 pcm_data_end;
1192 UWORD8 pcm_data_failed;
1193 L1AudioPcmConfig pcmconfig;
1194 L1AudioPcmBlock pcmblock;
1195 L1AudioConfigureCallback audio_configure_callback;
1196 L1AudioPcmCallback audio_pcmblock_callback;
1197 } T_L1_BT_AUDIO;
1198 #endif
1199
1200
1201 #endif // AUDIO_TASK