forked from PAWPAW-Mirror/lib_xua
deliver() now takes curSamFreq param. This is checked to be a valid DoP frequency before moving to DoP mode.
This commit is contained in:
@@ -140,11 +140,9 @@ static inline void doI2SClocks(unsigned divide)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* I2S delivery thread */
|
/* I2S delivery thread */
|
||||||
#pragma unsafe arrays
|
#pragma unsafe arrays
|
||||||
{unsigned, unsigned} deliver(chanend c_out, chanend ?c_spd_out, unsigned divide, chanend ?c_dig_rx, chanend ?c_adc)
|
{unsigned, unsigned} deliver(chanend c_out, chanend ?c_spd_out, unsigned divide, unsigned curSamFreq, chanend ?c_dig_rx, chanend ?c_adc)
|
||||||
{
|
{
|
||||||
unsigned sample;
|
unsigned sample;
|
||||||
unsigned underflow = 0;
|
unsigned underflow = 0;
|
||||||
@@ -685,9 +683,9 @@ static inline void doI2SClocks(unsigned divide)
|
|||||||
|
|
||||||
} // !dsdMode
|
} // !dsdMode
|
||||||
#if (DSD_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT > 0)
|
#if (DSD_CHANS_DAC != 0) && (NUM_USB_CHAN_OUT > 0)
|
||||||
/* Check for DSD */
|
/* Check for DSD - note we only move into DoP mode if valid DoP Freq */
|
||||||
/* Currently we only check on channel 0 - we get all 0's on channels without data */
|
/* Currently we only check on channel 0 - we get all 0's on channels without data */
|
||||||
if(dsdMode == DSD_MODE_OFF)
|
if((dsdMode == DSD_MODE_OFF) && (curSamFreq > 96000))
|
||||||
{
|
{
|
||||||
if((DSD_MASK(samplesOut[0]) == dsdMarker) && (DSD_MASK(samplesOut[1]) == dsdMarker))
|
if((DSD_MASK(samplesOut[0]) == dsdMarker) && (DSD_MASK(samplesOut[1]) == dsdMarker))
|
||||||
{
|
{
|
||||||
@@ -876,10 +874,6 @@ void audio(chanend c_mix_out, chanend ?c_dig_rx, chanend ?c_config, chanend ?c)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
divide = mClk / ( curSamFreq * numBits );
|
divide = mClk / ( curSamFreq * numBits );
|
||||||
|
|
||||||
//if(divide > 8)
|
|
||||||
//asm("ecallf %0"::"r"(0));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (DSD_CHANS_DAC != 0)
|
#if (DSD_CHANS_DAC != 0)
|
||||||
@@ -984,7 +978,7 @@ void audio(chanend c_mix_out, chanend ?c_dig_rx, chanend ?c_config, chanend ?c)
|
|||||||
#else
|
#else
|
||||||
null,
|
null,
|
||||||
#endif
|
#endif
|
||||||
divide, c_dig_rx, c);
|
divide, curSamFreq, c_dig_rx, c);
|
||||||
|
|
||||||
#if (DSD_CHANS_DAC != 0)
|
#if (DSD_CHANS_DAC != 0)
|
||||||
if(retVal1 == SET_SAMPLE_FREQ)
|
if(retVal1 == SET_SAMPLE_FREQ)
|
||||||
|
|||||||
Reference in New Issue
Block a user