44 #ifndef SYS_AUDIO_MGR_H_
45 #define SYS_AUDIO_MGR_H_
48 #if dg_configUSE_SYS_AUDIO_MGR
56 # if dg_configUSE_HW_SDADC
60 #define MAX_NUM_OF_PATHS 4 // the max number of concurrently supported audio data paths according to device family
70 # if dg_configUSE_HW_SDADC
74 } SYS_AUDIO_MGR_DEVICE;
92 } SYS_AUDIO_MGR_PCM_FORMATS;
102 }SYS_AUDIO_MGR_SRC_USE;
108 SYS_AUDIO_MGR_MODE
mode;
109 uint32_t clk_frequency;
120 } sys_audio_pdm_specific_t;
127 SYS_AUDIO_MGR_MODE
mode;
128 SYS_AUDIO_MGR_PCM_FORMATS format;
131 uint32_t sample_rate;
135 uint8_t channel_delay;
136 uint8_t total_channel_num;
161 } sys_audio_pcm_specific_t;
168 uint32_t buff_len_total;
169 uint32_t buff_len_cb;
170 uint32_t buff_len_pos;
174 } sys_audio_mgr_buffer_data_block_t;
183 typedef void (*sys_audio_mgr_buffer_ready_cb)(sys_audio_mgr_buffer_data_block_t *buff_data_block,
void *app_ud);
188 } sys_audio_dma_prio_t;
195 uint32_t buff_addr[2];
196 uint32_t total_buffer_len;
197 uint32_t cb_buffer_len;
198 sys_audio_mgr_buffer_ready_cb cb;
200 uint32_t sample_rate;
206 sys_audio_dma_prio_t dma_prio;
207 } sys_audio_memory_specific_t;
209 # if dg_configUSE_HW_SDADC
218 } sys_audio_sdadc_specific_t;
225 SYS_AUDIO_MGR_DEVICE device_type;
228 sys_audio_pdm_specific_t pdm_param;
229 sys_audio_pcm_specific_t pcm_param;
230 sys_audio_memory_specific_t memory_param;
231 # if dg_configUSE_HW_SDADC
232 sys_audio_sdadc_specific_t sdadc_param;
235 } sys_audio_device_t;
241 sys_audio_device_t *dev_in;
242 sys_audio_device_t *dev_out;
249 audio_path_t audio_path[MAX_NUM_OF_PATHS];
263 bool sys_audio_mgr_start(uint8_t idx);
276 bool sys_audio_mgr_stop(uint8_t idx);
291 uint8_t sys_audio_mgr_open_path(sys_audio_device_t *dev_in, sys_audio_device_t *dev_out, SYS_AUDIO_MGR_SRC_USE src);
301 void sys_audio_mgr_close_path(uint8_t idx);
313 DEPRECATED_MSG(
"API no longer supported, use sys_audio_mgr_open_path() instead.")
314 __STATIC_INLINE
void sys_audio_mgr_open(sys_audio_path_t *devs)
316 for (uint8_t idx = 0; idx < MAX_NUM_OF_PATHS; idx++) {
317 if (devs->audio_path[idx].dev_in != NULL &&
318 devs->audio_path[idx].dev_out != NULL &&
319 devs->audio_path[idx].dev_in->device_type != AUDIO_INVALID &&
320 devs->audio_path[idx].dev_out->device_type != AUDIO_INVALID) {
321 sys_audio_mgr_open_path(devs->audio_path[idx].dev_in,
322 devs->audio_path[idx].dev_out, SRC_AUTO);
334 DEPRECATED_MSG(
"API no longer supported, use sys_audio_mgr_close_path() instead.")
335 __STATIC_INLINE
void sys_audio_mgr_close(
void)
337 for (uint8_t idx = 0; idx < MAX_NUM_OF_PATHS; idx++) {
338 sys_audio_mgr_close_path(idx);