140 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| #ifndef IMAGEAPP_VOICE_H
 | |
| #define IMAGEAPP_VOICE_H
 | |
| 
 | |
| #include "hdal.h"
 | |
| #include <kwrap/type.h>
 | |
| #include "FileSysTsk.h"
 | |
| 
 | |
| /// ========== Enum area ==========
 | |
| enum {
 | |
| 	IAVOICE_CONFIG_AUDIO_INFO       = 0xF000F100,
 | |
| 	IAVOICE_CONFIG_MEM_POOL_INFO,
 | |
| };
 | |
| 
 | |
| typedef enum {
 | |
| 	_IAVOICE_FILE_FORMAT_UNKNOWN = 0,
 | |
| 	_IAVOICE_FILE_FORMAT_PCM,
 | |
| 	_IAVOICE_FILE_FORMAT_WAV,
 | |
| 	_IAVOICE_FILE_FORMAT_AAC,
 | |
| 	ENUM_DUMMY4WORD(IAVOICE_FILE_FORMAT)
 | |
| } IAVOICE_FILE_FORMAT;
 | |
| 
 | |
| typedef enum {
 | |
| 	_IAVOICE_CFG_AUDIO_CH_LEFT,              ///< Left
 | |
| 	_IAVOICE_CFG_AUDIO_CH_RIGHT,             ///< Right
 | |
| 	_IAVOICE_CFG_AUDIO_CH_STEREO,            ///< Stereo
 | |
| 	ENUM_DUMMY4WORD(IAVOICE_CFG_AUDIO_CH)
 | |
| } IAVOICE_CFG_AUDIO_CH;
 | |
| 
 | |
| /// ========== Data structure area ==========
 | |
| typedef _PACKED_BEGIN struct _WAV_RIFF {
 | |
| 	UINT32 ChunkID;             /* "RIFF" */
 | |
| 	UINT32 ChunkSize;           /* 36 + Subchunk2Size */
 | |
| 	UINT32 Format;              /* "WAVE" */
 | |
| } _PACKED_END WAV_RIFF;
 | |
| 
 | |
| typedef _PACKED_BEGIN struct _WAV_FMT {
 | |
| 	UINT32 Subchunk1ID;         /* "fmt " */
 | |
| 	UINT32 Subchunk1Size;       /* 16 for PCM */
 | |
| 	UINT16 AudioFormat;         /* PCM = 1*/
 | |
| 	UINT16 NumChannels;         /* Mono = 1, Stereo = 2, etc. */
 | |
| 	UINT32 SampleRate;          /* 8000, 44100, etc. */
 | |
| 	UINT32 ByteRate;            /* = SampleRate * NumChannels * BitsPerSample/8 */
 | |
| 	UINT16 BlockAlign;          /* = NumChannels * BitsPerSample/8 */
 | |
| 	UINT16 BitsPerSample;       /* 8bits, 16bits, etc. */
 | |
| } _PACKED_END WAV_FMT;
 | |
| 
 | |
| typedef _PACKED_BEGIN struct _WAV_DATA {
 | |
| 	UINT32 Subchunk2ID;         /* "data" */
 | |
| 	UINT32 Subchunk2Size;       /* data size */
 | |
| } _PACKED_END WAV_DATA;
 | |
| 
 | |
| typedef _PACKED_BEGIN struct _WAV_HEADER {
 | |
|     WAV_RIFF riff;
 | |
|     WAV_FMT fmt;
 | |
|     WAV_DATA data;
 | |
| } _PACKED_END WAV_HEADER;
 | |
| 
 | |
| typedef struct {
 | |
| 	UINT32             aud_rate;
 | |
| 	UINT32             aud_ch;
 | |
| 	UINT32             aud_ch_num;
 | |
| 	HD_AUDIO_MONO      aud_out_mono;
 | |
| 	HD_AUDIOOUT_OUTPUT adu_out_type;
 | |
| } IAVOICE_AUDIO_INFO;
 | |
| 
 | |
| typedef struct {
 | |
| 	FST_FILE            fd;
 | |
| 	IAVOICE_FILE_FORMAT format;
 | |
| 	UINT32              aud_rate;
 | |
| 	UINT32              aud_ch_num;
 | |
| } IAVOICE_AUDIO_PLAY_INFO;
 | |
| 
 | |
| 
 | |
| // =================== User Event Callback ===================
 | |
| typedef enum {
 | |
| 	IAVOICE_USER_CB_EVENT_START                 = 0x0000E500,
 | |
| 	// EVENT
 | |
| 	IAVOICE_USER_CB_EVENT_FILENAMING_CB         = IAVOICE_USER_CB_EVENT_START,
 | |
| 	IAVOICE_USER_CB_EVENT_APLAY_DONE,
 | |
| 
 | |
| 	// ERROR
 | |
| 
 | |
| 	ENUM_DUMMY4WORD(IAVOICE_USER_CB_EVENT)
 | |
| } IAVOICE_USER_CB_EVENT;
 | |
| 
 | |
| typedef void (IAVoiceUserEventCb)(UINT32 id, IAVOICE_USER_CB_EVENT event_id, UINT32 value);
 | |
| 
 | |
| typedef void (IAVoiceAudCapCb)(UINT32 pa, UINT32 va, UINT32 size);
 | |
| 
 | |
| typedef void (IAVoiceAudBsCb)(UINT32 id, HD_AUDIO_BS *paenc_data);
 | |
| 
 | |
| // =================== Parameters ===================
 | |
| enum {
 | |
| 	IAVOICE_PARAM_START = 0x0000EE000,
 | |
| 	// audio codec group
 | |
| 	IAVOICE_PARAM_AUD_GROUP_BEGIN  = IAVOICE_PARAM_START,
 | |
| 	IAVOICE_PARAM_AUD_ACAP_REG_CB  = IAVOICE_PARAM_AUD_GROUP_BEGIN + 0x100,
 | |
| 	IAVOICE_PARAM_AUD_ACAP_BY_HDAL,                                                 /// var + acap
 | |
| 	IAVOICE_PARAM_AUD_ACAP_VOL,
 | |
| 	IAVOICE_PARAM_AUD_ACAP_ALC_EN,
 | |
| 	IAVOICE_PARAM_AUD_ACAP_ANR,                                                     /// Set before ImageApp_MovieMulti_Open
 | |
| 	IAVOICE_PARAM_AUD_ACAP_DEFAULT_SETTING,                                         /// Set after ImageApp_Voice_Open and before audio start. VENDOR_AUDIOCAP_DEFAULT_SETTING_10DB ~ 30DB
 | |
| 	IAVOICE_PARAM_AUD_ACAP_NOISEGATE_THRESHOLD,                                     /// Set after ImageApp_Voice_Open and before audio start. -76 ~ -31 (dB)
 | |
| 	IAVOICE_PARAM_AUD_ENC_REG_CB   = IAVOICE_PARAM_AUD_GROUP_BEGIN + 0x200,
 | |
| 	IAVOICE_PARAM_AUD_MUTE_ENC_FUNC_EN,                                             /// keep acap but only mute aenc
 | |
| 	IAVOICE_PARAM_AUD_MUTE_ENC,                                                     /// var + acap (mute from acap if MOVIEMULTI_PARAM_AUD_MUTE_ENC_FUNC_EN is not set)
 | |
| 	IAVOICE_PARAM_AUD_AOUT_VOL     = IAVOICE_PARAM_AUD_GROUP_BEGIN + 0x400,
 | |
| 	IAVOICE_PARAM_AUD_GROUP_END,
 | |
| };
 | |
| 
 | |
| /// ========== Function Prototype area ==========
 | |
| /// ImageApp_Voice
 | |
| extern ER ImageApp_Voice_Open(void);
 | |
| extern ER ImageApp_Voice_Close(void);
 | |
| extern ER ImageApp_Voice_Config(UINT32 config_id, UINT32 value);
 | |
| /// ImageApp_Voice_AudCapLink
 | |
| extern ER ImageApp_Voice_AudCapStart(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudCapStop(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudEncStart(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudEncStop(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudOutStart(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudOutStop(UINT32 id);
 | |
| extern ER ImageApp_Voice_AudCapGetFrame(UINT32 id, UINT8 *p_buf, UINT32 *p_len, INT32 wait_ms);
 | |
| /// ImageApp_Voice_CB
 | |
| extern ER ImageApp_Voice_RegUserCB(IAVoiceUserEventCb *fncb);
 | |
| /// ImageApp_Voice_Operation_Play
 | |
| extern ER ImageApp_Voice_PlayStart(UINT32 id, IAVOICE_AUDIO_PLAY_INFO *p_info);
 | |
| extern ER ImageApp_Voice_PlayStop(UINT32 id);
 | |
| extern ER ImageApp_Voice_PlayPause(UINT32 id);
 | |
| extern ER ImageApp_Voice_PlayResume(UINT32 id);
 | |
| /// ImageApp_Voice_Operation_Record
 | |
| extern ER ImageApp_Voice_RecStart(UINT32 id);
 | |
| extern ER ImageApp_Voice_RecStop(UINT32 id);
 | |
| /// ImageApp_Voice_Param
 | |
| extern ER ImageApp_Voice_SetParam(UINT32 id, UINT32 param, UINT32 value);
 | |
| extern ER ImageApp_Voice_GetParam(UINT32 id, UINT32 param, UINT32* value);
 | |
| 
 | |
| #endif//IMAGEAPP_VOICE_H
 | |
| 
 | 
