123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 |
- /*!
- *******************************************************************************
- **
- ** \file gd_audio.h
- **
- ** \brief audio.
- **
- ** Copyright: 2012 - 2013 (C) GoKe Microelectronics ShangHai Branch
- **
- ** \attention THIS SAMPLE CODE IS PROVIDED AS IS. GOKE MICROELECTRONICS
- ** ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR
- ** OMMISSIONS.
- **
- ** \note Do not modify this file as it is generated automatically.
- **
- ******************************************************************************/
- #ifndef _GD_AUDIO_H_
- #define _GD_AUDIO_H_
- #include "gmodids.h"
- #define GD_AUDIO_ERR_BASE (GD_AUDIO_MODULE_ID << 16)
- /*!
- *******************************************************************************
- **
- ** \brief I2S driver error codes.
- **
- *******************************************************************************
- */
- enum
- {
- GD_ERR_AUDIO_NOT_SUPPORTED = GD_AUDIO_ERR_BASE, //!< Device not supported.
- GD_ERR_AUDIO_NOT_OPEN,
- GD_ERR_AUDIO_DEV_BUSY,
- GD_ERR_AUDIO_DEV_WAIT,
- };
- typedef enum /* 2dB per level */
- {
- GAIN_LEVEL_0,
- GAIN_LEVEL_1,
- GAIN_LEVEL_2,
- GAIN_LEVEL_3,
- GAIN_LEVEL_4,
- GAIN_LEVEL_5,
- GAIN_LEVEL_6,
- GAIN_LEVEL_7,
- GAIN_LEVEL_8,
- GAIN_LEVEL_9,
- GAIN_LEVEL_10,
- GAIN_LEVEL_11,
- GAIN_LEVEL_12,
- GAIN_LEVEL_13,
- GAIN_LEVEL_14,
- GAIN_LEVEL_15,
- GAIN_LEVEL_MAX,
- }GD_AUDIO_GAIN_E;
- typedef enum
- {
- VOL_LEVEL_0 = 0xaf,
- VOL_LEVEL_1 = 0xad,
- VOL_LEVEL_2 = 0xab,
- VOL_LEVEL_3 = 0xa9,
- VOL_LEVEL_4 = 0xa7,
- VOL_LEVEL_5 = 0xa5,
- VOL_LEVEL_6 = 0xa3,
- VOL_LEVEL_7 = 0xa1,
- VOL_LEVEL_8 = 0xa0,
- VOL_LEVEL_9 = 0xbe,
- VOL_LEVEL_10 = 0xb9,
- VOL_LEVEL_11 = 0xb4,
- VOL_LEVEL_12 = 0xb0,
- }GD_AUDIO_VOLUME_E;
- typedef enum
- {
- AUDIO_SOUND_MODE_LEFT = 0,
- AUDIO_SOUND_MODE_RIGHT = 1,
- AUDIO_SOUND_MODE_STEREO = 2,
- AUDIO_SOUND_MODE_MONO = 3,
- AUDIO_SOUND_MODE_SINGLE = 4,
- }GD_AUDIO_SOUND_MODE_E;
- typedef enum
- {
- AUDIO_SAMPLE_RATE_8000 = 8000,
- AUDIO_SAMPLE_RATE_11025 = 11025,
- AUDIO_SAMPLE_RATE_12000 = 12000,
- AUDIO_SAMPLE_RATE_16000 = 16000,
- AUDIO_SAMPLE_RATE_22050 = 22050,
- AUDIO_SAMPLE_RATE_24000 = 24000,
- AUDIO_SAMPLE_RATE_32000 = 32000,
- AUDIO_SAMPLE_RATE_44100 = 44100,
- AUDIO_SAMPLE_RATE_48000 = 48000,
- }GD_AUDIO_SAMPLE_RATE_E;
- typedef enum
- {
- AUDIO_BIT_WIDTH_16 = 16,
- }GD_AUDIO_BIT_WIDTH_E;
- enum
- {
- AUDIO_EVENT_FRAME = 1, /* received one audio frame or send finished one audio frame */
- AUDIO_EVENT_WILL_OVERFLOW = 2,
- AUDIO_EVENT_WILL_UNDERFLOW = 3,
- AUDIO_EVENT_ALREADY_OVERFLOW = 4,
- AUDIO_EVENT_ALREADY_UNDERFLOW = 5,
- AUDIO_EVENT_UNDEFINED = 6,
- };
- typedef void (*GD_AUDIO_Notifier)(U32 event);
- typedef struct
- {
- GD_AUDIO_SAMPLE_RATE_E sampleRate;
- GD_AUDIO_SOUND_MODE_E soundMode;
- }GD_AUDIO_ATTR_S;
- typedef struct
- {
- GD_AUDIO_SAMPLE_RATE_E sampleRate;
- GD_AUDIO_BIT_WIDTH_E bitWidth;
- GD_AUDIO_SOUND_MODE_E soundMode;
- U32 sampleNumber;
- GD_AUDIO_Notifier notifier;
- }GD_AUDIO_OPEN_PARAM_S;
- typedef struct
- {
- GD_AUDIO_BIT_WIDTH_E bitWidth;
- GD_AUDIO_SOUND_MODE_E soundMode;
- GD_AUDIO_SAMPLE_RATE_E sampleRate;
- U32 frameAddr;
- U32 frameSize;
- U32 timeStamp;
- U32 seqNumber;
- U32 aecSeq; /* audio echo cancellation seque number */
- }GD_AUDIO_FRAME_S;
- #ifdef __cplusplus
- extern "C" {
- #endif
- GERR GD_AUDIO_Init(void);
- GERR GD_AUDIO_Exit(void);
- GERR GD_AUDIO_Bind_Ai2Ao(void);
- GERR GD_AUDIO_Unbind_Ai2Ao(void);
- GERR GD_AUDIO_AI_Open(GD_AUDIO_OPEN_PARAM_S *openParamPtr);
- GERR GD_AUDIO_AI_Close(void);
- GERR GD_AUDIO_AI_Enable(void);
- GERR GD_AUDIO_AI_Disable(void);
- GERR GD_AUDIO_AI_Read_Frame(GD_AUDIO_FRAME_S *frame);
- GERR GD_AUDIO_AI_Set_Attr(GD_AUDIO_ATTR_S *pattr);
- GERR GD_AUDIO_AI_Get_Attr(GD_AUDIO_ATTR_S *pattr);
- GERR GD_AUDIO_AI_Set_Gain(GD_AUDIO_GAIN_E gain);
- GD_AUDIO_GAIN_E GD_AUDIO_AI_Get_Gain(void);
- GERR GD_AUDIO_AO_Open(GD_AUDIO_OPEN_PARAM_S *openParamPtr);
- GERR GD_AUDIO_AO_Close(void);
- GERR GD_AUDIO_AO_Enable(void);
- GERR GD_AUDIO_AO_Disable(void);
- GERR GD_AUDIO_AO_Write_Frame(GD_AUDIO_FRAME_S *frame);
- GERR GD_AUDIO_AO_Set_Attr(GD_AUDIO_ATTR_S *pattr);
- GERR GD_AUDIO_AO_Get_Attr(GD_AUDIO_ATTR_S *pattr);
- GERR GD_AUDIO_AO_Set_Volume(GD_AUDIO_VOLUME_E volume);
- GD_AUDIO_VOLUME_E GD_AUDIO_AO_Get_Volume(void);
- GERR GD_AUDIO_AO_Mute(void);
- GERR GD_AUDIO_AO_Unmute(void);
- U32 GD_AUDIO_AI_Get_RecFrameNum(void);
- U32 GD_AUDIO_AO_Get_RecFrameNum(void);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _GD_AUDIO_H_ */
- /*----------------------------------------------------------------------------*/
- /* end of file */
- /*----------------------------------------------------------------------------*/
|