i_audMan now nullable

This commit is contained in:
xross
2017-10-13 16:01:19 +01:00
parent 05f3c01a3c
commit 88bcd75960
3 changed files with 13 additions and 12 deletions

View File

@@ -49,9 +49,6 @@ int main()
/* Channel for communcating control messages from EP0 to the rest of the device (via the buffering cores */
chan c_aud_ctl;
/* TODO handle this */
interface audManage_if i_audMan;
par
{
/* Low level USB device layer core */
@@ -70,7 +67,7 @@ int main()
on tile[1]: XUA_Buffer(c_ep_out[1], c_ep_in[1], c_sof, c_aud_ctl, p_for_mclk_count, c_aud);
/* IOHub core does most of the audio IO i.e. I2S (also serves as a hub for all audio) */
on tile[0]: XUA_AudioHub(c_aud, i_audMan);
on tile[0]: XUA_AudioHub(c_aud, null);
}
return 0;

View File

@@ -24,19 +24,19 @@ typedef interface audManage_if
* 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
* \param c_aud 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 XUA_AudioHub(chanend ?c_in
void XUA_AudioHub(chanend ?c_aud
#if defined(SPDIF_TX) && (SPDIF_TX_TILE != AUDIO_IO_TILE)
chanend c_spdif_tx,
, chanend c_spdif_tx
#endif
#if(defined(SPDIF_RX) || defined(ADAT_RX))
chanend c_dig,
, chanend c_dig
#endif
#if (XUD_TILE != 0) && (AUDIO_IO_TILE == 0) && (XUA_DFU_EN == 1)
, server interface i_dfu ?dfuInterface
@@ -44,7 +44,7 @@ void XUA_AudioHub(chanend ?c_in
#if (NUM_PDM_MICS > 0)
, chanend c_pdm_in
#endif
, client audManage_if i_audMan
, client audManage_if ?i_audMan
);
void SpdifTxWrapper(chanend c_spdif_tx);
@@ -52,9 +52,11 @@ void SpdifTxWrapper(chanend c_spdif_tx);
/* These functions must be implemented for the CODEC/ADC/DAC arrangement of a specific design */
/* Any required clocking and CODEC initialisation - run once at start up */
/* TODO Provide default implementation of this */
void AudioHwInit();
/* Configure audio hardware (clocking, CODECs etc) for a specific mClk/Sample frquency - run on every sample frequency change */
/* TODO Provide default implementation of this */
void AudioHwConfig(unsigned samFreq, unsigned mClk, unsigned dsdMode,
unsigned sampRes_DAC, unsigned sampRes_ADC);

View File

@@ -247,7 +247,7 @@ static inline void TransferAdatTxSamples(chanend c_adat_out, const unsigned samp
#ifndef NO_USB
#pragma unsafe arrays
static inline unsigned DoSampleTransfer(chanend c_out, const int readBuffNo, const unsigned underflowWord, client audManage_if i_audMan)
static inline unsigned DoSampleTransfer(chanend c_out, const int readBuffNo, const unsigned underflowWord, client audManage_if ?i_audMan)
{
outuint(c_out, underflowWord);
@@ -305,7 +305,7 @@ static inline unsigned DoSampleTransfer(chanend c_out, const int readBuffNo, con
#else /* NO_USB */
#pragma unsafe arrays
static inline unsigned DoSampleTransfer(chanend ?c_out, const int readBuffNo, const unsigned underflowWord, client audManage_if i_audMan)
static inline unsigned DoSampleTransfer(chanend ?c_out, const int readBuffNo, const unsigned underflowWord, client audManage_if ?i_audMan)
{
UserBufferManagement(samplesOut, samplesIn[readBuffNo], i_audMan);
return 0;
@@ -502,7 +502,9 @@ unsigned static deliver(chanend ?c_out, chanend ?c_spd_out,
#endif
unsigned audioToUsbRatioCounter = 0;
#if (NUM_PDM_MICS > 0)
unsigned audioToMicsRatioCounter = 0;
#endif
#if (AUD_TO_USB_RATIO > 1)
union i2sInDs3
@@ -1120,7 +1122,7 @@ chanend c_dig_rx,
#if (NUM_PDM_MICS > 0)
, chanend c_pdm_in
#endif
, client audManage_if i_audMan
, client audManage_if ?i_audMan
)
{
#if defined (SPDIF_TX) && (SPDIF_TX_TILE == AUDIO_IO_TILE)