56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
#ifndef __audio_h__
|
|
#define __audio_h__
|
|
|
|
#if __XC__
|
|
|
|
#ifndef NO_USB
|
|
#include "dfu_interface.h"
|
|
#endif
|
|
|
|
typedef interface audManage_if
|
|
{
|
|
[[guarded]]
|
|
void transfer_buffers(int * unsafe in_aud_buf, int * unsafe in_usb_buf,
|
|
int * unsafe out_usb_buf, int * unsafe out_aud_buf);
|
|
|
|
[[guarded]]
|
|
void transfer_samples(int in_mic_buf[], int in_spk_buf[], int out_mic_buf[], int out_spk_buf[]);
|
|
|
|
} audManage_if;
|
|
|
|
|
|
/** The audio driver thread.
|
|
*
|
|
* This function drives I2S ports and handles samples to/from other digital
|
|
* I/O threads.
|
|
*
|
|
* \param c_in Audio sample channel connected to the mixer() thread or the
|
|
* decouple() thread
|
|
* \param c_dig channel connected to the clockGen() thread for
|
|
* receiving/transmitting samples
|
|
* \param c_config An optional channel that will be passed on to the
|
|
* CODEC configuration functions.
|
|
*/
|
|
void audio(chanend c_in,
|
|
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
|
|
chanend c_spdif_tx,
|
|
#endif
|
|
#if(defined(SPDIF_RX) || defined(ADAT_RX))
|
|
chanend c_dig,
|
|
#endif
|
|
chanend ?c_config, chanend ?c_adc
|
|
#if (XUD_TILE != 0) && (AUDIO_IO_TILE == 0)
|
|
, server interface i_dfu ?dfuInterface
|
|
#endif
|
|
#if (NUM_PDM_MICS > 0)
|
|
, chanend c_pdm_in
|
|
#endif
|
|
, client audManage_if i_audMan
|
|
);
|
|
|
|
void SpdifTxWrapper(chanend c_spdif_tx);
|
|
|
|
#endif // __XC__
|
|
|
|
#endif // __audio_h__
|