blob: b93e577db9b53f288c0ad7b145ee7d98a4c9f26f [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001/**
2 * @file drvs_codec.h
3 * @brief Public APIs of Codec drivers
4 *
5 * Copyright (C) 2017 Sanechips Technology Co., Ltd.
6 * @author Xinqiang Xu <xu.xinqiang@sanechips.com.cn>
7 * @ingroup si_cp_drv_id
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 *
13 */
14
15#ifndef _DRV_CODEC_TLV3100_H
16#define _DRV_CODEC_TLV3100_H
17
18
19/****************************************************************************
20* Include files
21****************************************************************************/
22#include "drvs_i2s.h"
23#include "drvs_voiceprocess.h"
24
25/*******************************************************************************
26 * Macro definitions *
27 ******************************************************************************/
28
29/*******************************************************************************
30 * Type definitions *
31 ******************************************************************************/
32typedef unsigned long T_ZDrvCodec_Handle;
33
34typedef enum {
35 VOICE_SOURCE,
36 AUDIO_SOURCE,
37 EXTERN_AUDIO,
38
39 SOURCE_MAX
40} T_ZDrvCodec_SourceType;
41
42typedef enum {
43 AUDIO_I2S_NONE,
44 AUDIO_I2S0,
45 AUDIO_I2S1,
46
47 AUDIO_I2S_MAX
48} T_ZDrvCodec_AudioI2SChannel;
49
50typedef enum {
51 I2S_MASTER_MODE,
52 I2S_SLAVE_MODE,
53
54 I2S_MODE_MAX
55} T_ZDrvCodec_AudioI2SMode;
56
57typedef enum {
58 AUDIO_SAMPLE_8K,
59 AUDIO_SAMPLE_11_025_KHZ, /* Use 11.025 kHz sampling rate. */
60 AUDIO_SAMPLE_12_KHZ, /* Use 12 kHz sampling rate. */
61 AUDIO_SAMPLE_16K,
62 AUDIO_SAMPLE_22_050_KHZ, /* Use 22.050 kHz sampling rate. */
63 AUDIO_SAMPLE_24_KHZ, /* Use 24 kHz sampling rate. */
64 AUDIO_SAMPLE_32K,
65 AUDIO_SAMPLE_44_1K,
66 AUDIO_SAMPLE_48K,
67 AUDIO_SAMPLE_64_KHZ, /* Use 64 kHz sampling rate */
68 AUDIO_SAMPLE_96_KHZ, /* Use 96 kHz sampling rate. */
69
70 AUDIO_SAMPLE_MAX
71} T_ZDrvCodec_AudioSample;
72
73typedef enum {
74 AUDIO_INPUT_HANDSET,
75 AUDIO_INPUT_SPEAKER,
76 AUDIO_INPUT_HEADSET,
77 AUDIO_INPUT_BLUETOOTH,
78 AUDIO_INPUT_FM_ANATODIG,
79 AUDIO_INPUT_FM_ANATOANA,
80
81 AUDIO_INPUT_MAX
82} T_ZDrvCodec_InDevice;
83
84typedef enum {
85 AUDIO_OUTPUT_RECEIVER,
86 AUDIO_OUTPUT_SPEAKER,
87 AUDIO_OUTPUT_HEADSET,
88 AUDIO_OUTPUT_BLUETOOTH,
89 AUDIO_OUTPUT_HEADSET_SPEAKER,
90 AUDIO_OUTPUT_FM_ANATODIG_HEADSET,
91 AUDIO_OUTPUT_FM_ANATODIG_SPEAKER,
92 AUDIO_OUTPUT_FM_ANATOANA_HEADSET,
93 AUDIO_OUTPUT_FM_ANATOANA_SPEAKER,
94
95 AUDIO_OUTPUT_MAX
96} T_ZDrvCodec_OutDevice;
97
98typedef enum {
99 CLSD_GAIN_PLUS_6DB,
100 CLSD_GAIN_PLUS_12DB,
101 CLSD_GAIN_PLUS_18DB,
102 CLSD_GAIN_PLUS_24DB,
103
104 CLSD_GAIN_MAX
105} T_ZDrvCodec_ClsD_Vol;
106
107typedef enum {
108 CLSAB_GAIN_PLUS_0DB,
109 CLSAB_GAIN_PLUS_1DB,
110 CLSAB_GAIN_PLUS_2DB,
111 CLSAB_GAIN_PLUS_3DB,
112 CLSAB_GAIN_PLUS_4DB,
113 CLSAB_GAIN_PLUS_5DB,
114 CLSAB_GAIN_PLUS_6DB,
115 CLSAB_GAIN_PLUS_7DB,
116 CLSAB_GAIN_PLUS_8DB,
117 CLSAB_GAIN_PLUS_9DB,
118
119 CLSAB_GAIN_MAX
120} T_ZDrvCodec_ClsAB_Vol;
121
122typedef enum {
123 CODEC_INPATH_DIG_GAIN_MINUS_12DB = 0,
124 CODEC_INPATH_DIG_GAIN_MINUS_11DB,
125 CODEC_INPATH_DIG_GAIN_MINUS_10DB,
126 CODEC_INPATH_DIG_GAIN_MINUS_9DB,
127 CODEC_INPATH_DIG_GAIN_MINUS_8DB,
128 CODEC_INPATH_DIG_GAIN_MINUS_7DB,
129 CODEC_INPATH_DIG_GAIN_MINUS_6DB,
130 CODEC_INPATH_DIG_GAIN_MINUS_5DB,
131 CODEC_INPATH_DIG_GAIN_MINUS_4DB,
132 CODEC_INPATH_DIG_GAIN_MINUS_3DB,
133 CODEC_INPATH_DIG_GAIN_MINUS_2DB,
134 CODEC_INPATH_DIG_GAIN_MINUS_1DB,
135 CODEC_INPATH_DIG_GAIN_0DB,
136 CODEC_INPATH_DIG_GAIN_PLUS_1DB,
137 CODEC_INPATH_DIG_GAIN_PLUS_2DB,
138 CODEC_INPATH_DIG_GAIN_PLUS_3DB,
139 CODEC_INPATH_DIG_GAIN_PLUS_4DB,
140 CODEC_INPATH_DIG_GAIN_PLUS_5DB,
141 CODEC_INPATH_DIG_GAIN_PLUS_6DB,
142 CODEC_INPATH_DIG_GAIN_PLUS_7DB,
143 CODEC_INPATH_DIG_GAIN_PLUS_8DB,
144 CODEC_INPATH_DIG_GAIN_PLUS_9DB,
145 CODEC_INPATH_DIG_GAIN_PLUS_10DB,
146 CODEC_INPATH_DIG_GAIN_PLUS_11DB,
147 CODEC_INPATH_DIG_GAIN_PLUS_12DB,
148 CODEC_INPATH_DIG_GAIN_PLUS_13DB,
149 CODEC_INPATH_DIG_GAIN_PLUS_14DB,
150 CODEC_INPATH_DIG_GAIN_PLUS_15DB,
151 CODEC_INPATH_DIG_GAIN_PLUS_16DB,
152 CODEC_INPATH_DIG_GAIN_PLUS_17DB,
153 CODEC_INPATH_DIG_GAIN_PLUS_18DB,
154 CODEC_INPATH_DIG_GAIN_PLUS_19DB,
155 CODEC_INPATH_DIG_GAIN_PLUS_20DB,
156
157 CODEC_INPATH_DIG_GAIN_MAX
158} T_ZDrvCodec_InPath_Digital_Gain;
159
160typedef enum {
161 CODEC_OUTPATH_DIG_GAIN_PLUS_24DB = 0,
162 CODEC_OUTPATH_DIG_GAIN_PLUS_23DB,
163 CODEC_OUTPATH_DIG_GAIN_PLUS_22DB,
164 CODEC_OUTPATH_DIG_GAIN_PLUS_21DB,
165 CODEC_OUTPATH_DIG_GAIN_PLUS_20DB,
166 CODEC_OUTPATH_DIG_GAIN_PLUS_19DB,
167 CODEC_OUTPATH_DIG_GAIN_PLUS_18DB,
168 CODEC_OUTPATH_DIG_GAIN_PLUS_17DB,
169 CODEC_OUTPATH_DIG_GAIN_PLUS_16DB,
170 CODEC_OUTPATH_DIG_GAIN_PLUS_15DB,
171 CODEC_OUTPATH_DIG_GAIN_PLUS_14DB,
172 CODEC_OUTPATH_DIG_GAIN_PLUS_13DB,
173 CODEC_OUTPATH_DIG_GAIN_PLUS_12DB,
174 CODEC_OUTPATH_DIG_GAIN_PLUS_11DB,
175 CODEC_OUTPATH_DIG_GAIN_PLUS_10DB,
176 CODEC_OUTPATH_DIG_GAIN_PLUS_9DB,
177 CODEC_OUTPATH_DIG_GAIN_PLUS_8DB,
178 CODEC_OUTPATH_DIG_GAIN_PLUS_7DB,
179 CODEC_OUTPATH_DIG_GAIN_PLUS_6DB,
180 CODEC_OUTPATH_DIG_GAIN_PLUS_5DB,
181 CODEC_OUTPATH_DIG_GAIN_PLUS_4DB,
182 CODEC_OUTPATH_DIG_GAIN_PLUS_3DB,
183 CODEC_OUTPATH_DIG_GAIN_PLUS_2DB,
184 CODEC_OUTPATH_DIG_GAIN_PLUS_1DB,
185 CODEC_OUTPATH_DIG_GAIN_0DB,
186 CODEC_OUTPATH_DIG_GAIN_MINUS_1DB,
187 CODEC_OUTPATH_DIG_GAIN_MINUS_2DB,
188 CODEC_OUTPATH_DIG_GAIN_MINUS_3DB,
189 CODEC_OUTPATH_DIG_GAIN_MINUS_4DB,
190 CODEC_OUTPATH_DIG_GAIN_MINUS_5DB,
191 CODEC_OUTPATH_DIG_GAIN_MINUS_6DB,
192 CODEC_OUTPATH_DIG_GAIN_MINUS_7DB,
193 CODEC_OUTPATH_DIG_GAIN_MINUS_8DB,
194 CODEC_OUTPATH_DIG_GAIN_MINUS_9DB,
195 CODEC_OUTPATH_DIG_GAIN_MINUS_10DB,
196 CODEC_OUTPATH_DIG_GAIN_MINUS_11DB,
197 CODEC_OUTPATH_DIG_GAIN_MINUS_12DB,
198 CODEC_OUTPATH_DIG_GAIN_MINUS_13DB,
199 CODEC_OUTPATH_DIG_GAIN_MINUS_14DB,
200 CODEC_OUTPATH_DIG_GAIN_MINUS_15DB,
201 CODEC_OUTPATH_DIG_GAIN_MINUS_16DB,
202 CODEC_OUTPATH_DIG_GAIN_MINUS_17DB,
203 CODEC_OUTPATH_DIG_GAIN_MINUS_18DB,
204 CODEC_OUTPATH_DIG_GAIN_MINUS_19DB,
205 CODEC_OUTPATH_DIG_GAIN_MINUS_20DB,
206 CODEC_OUTPATH_DIG_GAIN_MINUS_21DB,
207 CODEC_OUTPATH_DIG_GAIN_MINUS_22DB,
208 CODEC_OUTPATH_DIG_GAIN_MINUS_23DB,
209 CODEC_OUTPATH_DIG_GAIN_MINUS_24DB,
210 CODEC_OUTPATH_DIG_GAIN_MINUS_25DB,
211 CODEC_OUTPATH_DIG_GAIN_MINUS_26DB,
212 CODEC_OUTPATH_DIG_GAIN_MINUS_27DB,
213 CODEC_OUTPATH_DIG_GAIN_MINUS_28DB,
214 CODEC_OUTPATH_DIG_GAIN_MINUS_29DB,
215 CODEC_OUTPATH_DIG_GAIN_MINUS_30DB,
216 CODEC_OUTPATH_DIG_GAIN_MINUS_31DB,
217 CODEC_OUTPATH_DIG_GAIN_MINUS_32DB,
218 CODEC_OUTPATH_DIG_GAIN_MINUS_33DB,
219 CODEC_OUTPATH_DIG_GAIN_MINUS_34DB,
220 CODEC_OUTPATH_DIG_GAIN_MINUS_35DB,
221 CODEC_OUTPATH_DIG_GAIN_MINUS_36DB,
222 CODEC_OUTPATH_DIG_GAIN_MINUS_37DB,
223 CODEC_OUTPATH_DIG_GAIN_MINUS_38DB,
224 CODEC_OUTPATH_DIG_GAIN_MINUS_39DB,
225 CODEC_OUTPATH_DIG_GAIN_MINUS_40DB,
226 CODEC_OUTPATH_DIG_GAIN_MINUS_41DB,
227 CODEC_OUTPATH_DIG_GAIN_MINUS_42DB,
228 CODEC_OUTPATH_DIG_GAIN_MINUS_43DB,
229 CODEC_OUTPATH_DIG_GAIN_MINUS_44DB,
230 CODEC_OUTPATH_DIG_GAIN_MINUS_45DB,
231 CODEC_OUTPATH_DIG_GAIN_MINUS_46DB,
232 CODEC_OUTPATH_DIG_GAIN_MINUS_47DB,
233 CODEC_OUTPATH_DIG_GAIN_MINUS_48DB,
234 CODEC_OUTPATH_DIG_GAIN_MINUS_49DB,
235 CODEC_OUTPATH_DIG_GAIN_MINUS_50DB,
236 CODEC_OUTPATH_DIG_GAIN_MINUS_51DB,
237 CODEC_OUTPATH_DIG_GAIN_MINUS_52DB,
238 CODEC_OUTPATH_DIG_GAIN_MINUS_53DB,
239 CODEC_OUTPATH_DIG_GAIN_MINUS_54DB,
240 CODEC_OUTPATH_DIG_GAIN_MINUS_55DB,
241 CODEC_OUTPATH_DIG_GAIN_MINUS_56DB,
242 CODEC_OUTPATH_DIG_GAIN_MINUS_57DB,
243 CODEC_OUTPATH_DIG_GAIN_MINUS_58DB,
244 CODEC_OUTPATH_DIG_GAIN_MINUS_59DB,
245 CODEC_OUTPATH_DIG_GAIN_MINUS_60DB,
246 CODEC_OUTPATH_DIG_GAIN_MINUS_61DB,
247 CODEC_OUTPATH_DIG_GAIN_MINUS_62DB,
248 CODEC_OUTPATH_DIG_GAIN_MINUS_63DB,
249
250 CODEC_OUTPATH_DIG_GAIN_MAX
251} T_ZDrvCodec_OutPath_Digital_Gain;
252
253typedef enum {
254 MICBIAS_OUT_POWERDOWN = 0,
255 MICBIAS_OUT_2V,
256 MICBIAS_OUT_2_5V,
257 MICBIAS_OUT_AVDD,
258
259 MICBIAS_OUT_MAX
260} T_ZDrvMicBias_Ctrl;
261
262/**
263 * @brief describe the codec agc Parameter
264 * @param onOff agc function enable
265 * @param targetLevel the Level of target
266 * @param attackTime attack Time
267 * @param decayTime decay Time
268 * @param noiseDebounce noise Debounce
269 * @param signalDebounce signal Debounce
270 * @param noiseThreshold the Threshold of the noise
271 * @param maxgain the max gain
272 */
273typedef struct _T_AudCodec_AGC_Parameter {
274 SINT8 onOff;
275 SINT8 targetLevel;
276 SINT8 attackTime;
277 SINT8 decayTime;
278 SINT8 noiseDebounce;
279 SINT8 signalDebounce;
280 SINT8 noiseThreshold;
281
282 SINT8 maxgain;
283} T_ZDrvAudCodec_AGC_Parameter;
284
285/**
286 * @brief describe the codec drc Parameter
287 * @param onOff drc function enable
288 * @param threshold threshold value
289 * @param hysteresis hysteresis value
290 * @param holdTime hold Time
291 * @param attackRate attack Rate
292 * @param decayRate decay Rate
293 */
294typedef struct _T_AudCodec_DRC_Parameter {
295 SINT8 onOff;
296 SINT8 threshold;
297 SINT8 hysteresis;
298 SINT8 holdTime;
299 SINT8 attackRate;
300 SINT8 decayRate;
301} T_ZDrvAudCodec_DRC_Parameter;
302
303typedef enum {
304 CODEC_DATA_LEGTH_8BIT = 0,
305 CODEC_DATA_LEGTH_16BIT,
306 CODEC_DATA_LEGTH_20BIT,
307 CODEC_DATA_LEGTH_24BIT,
308 CODEC_DATA_LEGTH_32BIT,
309
310 CODEC_DATA_LEGTH_MAX
311} T_ZDrvCodec_DataLength;
312
313typedef enum {
314 CODEC_DATA_TRACK_DOUBLE = 0,
315 CODEC_DATA_TRACK_LEFT,
316 CODEC_DATA_TRACK_RIGHT,
317
318 CODEC_DATA_TRACK_MAX
319} T_ZDrvCodec_DataTrack;
320
321typedef enum {
322 CODEC_BUS_I2S,
323 CODEC_BUS_RJF, /* Right-Justified Mode */
324 CODEC_BUS_LJF, /* Left-Justified Mode */
325 CODEC_BUS_DSP,
326 CODEC_BUS_TDM,
327 CODEC_BUS_MAX
328} T_AudCodec_BusMode;
329
330#define T_ZDrvCodec_BusMode T_AudCodec_BusMode
331
332/**
333 * @brief describe the i2s transfer protocol
334 * @param audI2SChannel Audio I2S Channel
335 * @param masterSlave Audio I2S Mode;
336 * @param busMode bus mode
337 * @param dataLength Codec Data Length
338 * @param dataTrack codec data type
339 */
340typedef struct _T_Codec_UseProtocol {
341 T_ZDrvCodec_AudioI2SChannel audI2SChannel;
342 T_ZDrvCodec_AudioI2SMode masterSlave;
343 T_ZDrvCodec_BusMode busMode;
344 T_ZDrvCodec_DataLength dataLength;
345 T_ZDrvCodec_DataTrack dataTrack;
346} T_ZDrvCodec_UseProtocol;
347
348/*******************************************************************************
349 * Global variable declarations *
350 ******************************************************************************/
351
352
353/*******************************************************************************
354 * Global function declarations *
355 ******************************************************************************/
356/**
357 * @brief Open codec,set parameters.
358 *
359 * @param handle Pointer to T_ZDrvCodec_Handle.
360 * @param srcType Pointer to T_ZDrvCodec_SourceType
361 *
362 * @return 0-DRV_SUCCESS, other-error
363 */
364SINT32 zDrvCodec_Open(T_ZDrvCodec_Handle *handle, T_ZDrvCodec_SourceType srcType);
365
366/**
367* @brief close codec, power off.
368*
369* @param handle T_ZDrvCodec_Handle
370*
371* @return 0-DRV_SUCCESS, other-error
372*/
373SINT32 zDrvCodec_Close(T_ZDrvCodec_Handle *handle);
374
375/**
376* @brief Set i2s protocol.
377*
378* @param handle T_ZDrvCodec_Handle
379* @param channel T_ZDrvCodec_AudioI2SChannel
380* @param masterSlave T_ZDrvCodec_AudioI2SMode
381*
382* @return 0-DRV_SUCCESS, other-error
383*/
384SINT32 zDrvCodec_SetProtocal(T_ZDrvCodec_Handle handle, T_ZDrvCodec_AudioI2SChannel channel, T_ZDrvCodec_AudioI2SMode masterSlave);
385
386/**
387* @brief Set i2s clock.
388*
389* @param handle T_ZDrvCodec_Handle
390* @param sample T_ZDrvCodec_AudioSample
391*
392* @return 0-DRV_SUCCESS, other-error
393*/
394SINT32 zDrvCodec_SetClock(T_ZDrvCodec_Handle handle, T_ZDrvCodec_AudioSample sample);
395
396/**
397* @brief reset codec.
398*
399* @param handle T_ZDrvCodec_Handle
400* @return 0-DRV_SUCCESS, other-error
401*/
402SINT32 zDrvCodec_Reset(T_ZDrvCodec_Handle handle);
403
404/**
405* @brief Set the input path of the codec.
406*
407* @param handle T_ZDrvCodec_Handle
408* @param dev T_ZDrvCodec_InDevice
409* @param onoff BOOL
410*
411* @return 0-DRV_SUCCESS, other-error
412*/
413SINT32 zDrvCodec_SetInPath(T_ZDrvCodec_Handle handle, T_ZDrvCodec_InDevice dev, BOOL onoff);
414
415/**
416* @brief Set the output path of the codec.
417*
418* @param handle T_ZDrvCodec_Handle
419* @param dev T_ZDrvCodec_InDevice
420* @param onoff BOOL
421*
422* @return 0-DRV_SUCCESS, other-error
423*/
424SINT32 zDrvCodec_SetOutPath(T_ZDrvCodec_Handle handle, T_ZDrvCodec_OutDevice dev, BOOL onoff);
425
426/**
427* @brief Enable the audio path.
428*
429* @param handle T_ZDrvCodec_Handle
430* @return 0-DRV_SUCCESS, other-error
431*/
432SINT32 zDrvCodec_AudioEnable(T_ZDrvCodec_Handle handle);
433
434/**
435* @brief Disable the audio path.
436*
437* @param handle T_ZDrvCodec_Handle
438*
439* @return 0-DRV_SUCCESS, other-error
440*/
441SINT32 zDrvCodec_AudioDisable(T_ZDrvCodec_Handle handle);
442
443/**
444* @brief Set the ClsD volume.
445*
446* @param handle T_ZDrvCodec_Handle
447* @param vol T_ZDrvCodec_ClsD_Vol
448* @return 0-DRV_SUCCESS, other-error
449*/
450SINT32 zDrvCodec_Set_ClsD_Vol(T_ZDrvCodec_Handle handle, T_ZDrvCodec_ClsD_Vol vol);
451
452/**
453* @brief Set the ClsAB volume.
454*
455* @param handle T_ZDrvCodec_Handle
456* @param vol UINT8
457*
458* @return 0-DRV_SUCCESS, other-error
459*/
460SINT32 zDrvCodec_Set_ClsAB_Vol(T_ZDrvCodec_Handle handle, UINT8 vol);
461
462/**
463* @brief Set the output Analog volume of the Output path.
464*
465* @param handle T_ZDrvCodec_Handle
466* @param vol SINT8
467*
468* @return 0-DRV_SUCCESS, other-error
469*/
470SINT32 zDrvCodec_Set_Outpath_Ana_Vol(T_ZDrvCodec_Handle handle, SINT8 vol);
471
472/**
473* @brief Set the Analog volume of the Input path.
474*
475* @param handle T_ZDrvCodec_Handle
476* @param vol SINT8
477* @return 0-DRV_SUCCESS, other-error
478*/
479SINT32 zDrvCodec_Set_Inpath_Ana_Vol(T_ZDrvCodec_Handle handle, SINT8 vol);
480
481/**
482* @brief Set the Digital volume of the Input path.
483*
484* @param handle T_ZDrvCodec_Handle
485* @param invol T_ZDrvCodec_InPath_Digital_Gain
486*
487* @return 0-DRV_SUCCESS, other-error
488*/
489SINT32 zDrvCodec_Set_Inpath_Dig_Vol(T_ZDrvCodec_Handle handle, T_ZDrv_VpVol vol);
490
491/**
492* @brief Set the Digital volume of the Output path.
493*
494* @param handle T_ZDrvCodec_Handle
495* @param invol T_ZDrv_VpVol
496* @return 0-DRV_SUCCESS, other-error
497*/
498SINT32 zDrvCodec_Set_Outpath_Dig_Vol(T_ZDrvCodec_Handle handle, T_ZDrv_VpVol vol);
499
500/**
501* @brief Set the Side Tone.
502*
503* @param handle T_ZDrvCodec_Handle
504* @param onoff BOOL
505*
506* @return 0-DRV_SUCCESS, other-error
507*/
508SINT32 zDrvCodec_SetSideTone(T_ZDrvCodec_Handle handle, BOOL onoff);
509
510/**
511* @brief Set the Mic Bias.
512*
513* @param handle T_ZDrvCodec_Handle
514* @param micBiasCtrl T_ZDrvMicBias_Ctrl
515*
516* @return 0-DRV_SUCCESS, other-error
517*/
518SINT32 zDrvCodec_SetMicBias(T_ZDrvCodec_Handle handle, T_ZDrvMicBias_Ctrl micBiasCtrl);
519
520/**
521* @brief Set the Input Agc.
522*
523* @param handle T_ZDrvCodec_Handle
524* @param AGCPara Poiter to T_ZDrvAudCodec_AGC_Parameter
525*
526* @return 0-DRV_SUCCESS, other-error
527*/
528SINT32 zDrvCodec_SetInputAgc(T_ZDrvCodec_Handle handle, T_ZDrvAudCodec_AGC_Parameter *AGCPara);
529
530/**
531* @brief Set the Output Agc.
532*
533* @param handle T_ZDrvCodec_Handle
534* @param DRCPara Poiter to T_ZDrvAudCodec_DRC_Parameter
535* @return 0-DRV_SUCCESS, other-error
536*/
537SINT32 zDrvCodec_SetOutputDrc(T_ZDrvCodec_Handle handle, T_ZDrvAudCodec_DRC_Parameter *DRCPara);
538
539/**
540* @brief Set the Loop Back.
541*
542* @param handle T_ZDrvCodec_Handle
543* @param onoff BOOL
544*
545* @return 0-DRV_SUCCESS, other-error
546*/
547SINT32 zDrvCodec_SetLoopBack(T_ZDrvCodec_Handle handle, BOOL onoff);
548
549/**
550* @brief Set the mute function in the input path.
551*
552* @param handle T_ZDrvCodec_Handle
553* @param onoff BOOL
554*
555* @return 0-DRV_SUCCESS, other-error
556*/
557SINT32 zDrvCodec_SetInpathMute(T_ZDrvCodec_Handle handle, BOOL onoff);
558
559/**
560* @brief Set the mute function in the output path.
561*
562* @param handle T_ZDrvCodec_Handle
563* @param onoff BOOL
564*
565* @return 0-DRV_SUCCESS, other-error
566*/
567SINT32 zDrvCodec_SetOutpathMute(T_ZDrvCodec_Handle handle, BOOL onoff);
568
569/**
570* @brief read data to codec
571*
572* @param regPage the page number of the register
573* @param regAddress register address
574* @param regValue register value
575*
576* @return 0-DRV_SUCCESS, other-error
577*/
578//SINT32 codec_I2CRead(UINT8 regPage, UINT8 regAddress, UINT8 *regValue);
579
580#endif/*#ifndef _DRV_CODEC_TLV3100_H*/
581