diff --git a/module_usb_audio/audiohw.h b/module_usb_audio/audiohw.h index 4efe8e33..0a8d155e 100644 --- a/module_usb_audio/audiohw.h +++ b/module_usb_audio/audiohw.h @@ -1,6 +1,8 @@ #ifndef _CODEC_H_ #define _CODEC_H_ +#include "dsd.h" + /* These functions must be implemented for the CODEC/ADC/DAC arrangement of a specific design */ /* TODO Are the channel args required? */ @@ -9,6 +11,6 @@ void AudioHwInit(chanend ?c_codec); /* Configure audio hardware (clocking, CODECs etc) for a specific mClk/Sample frquency - run on every sample frequency change */ -void AudioHwConfig(unsigned samFreq, unsigned mClk, chanend ?c_codec, int dsdMode); +void AudioHwConfig(unsigned samFreq, unsigned mClk, chanend ?c_codec, DsdMode dsdMode); #endif diff --git a/module_usb_audio/endpoint0/endpoint0.xc b/module_usb_audio/endpoint0/endpoint0.xc index 2d477086..fba860d3 100755 --- a/module_usb_audio/endpoint0/endpoint0.xc +++ b/module_usb_audio/endpoint0/endpoint0.xc @@ -23,6 +23,9 @@ #ifdef HID_CONTROLS #include "hid.h" #endif +#if DSD_CHANS_DAC > 0 +#include "dsd.h" +#endif /* Some warnings.... */ @@ -290,8 +293,9 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl, #ifdef NATIVE_DSD if(g_dsdMode) { + DsdMode dsdMode = DSD_MODE_OFF; outuint(c_audioControl, SET_DSD_MODE); - outuint(c_audioControl, DSD_MODE_OFF); + outuint(c_audioControl, dsdMode); // Handshake chkct(c_audioControl, XS1_CT_END); @@ -303,9 +307,10 @@ void Endpoint0( chanend c_ep0_out, chanend c_ep0_in, chanend c_audioControl, case 2: if(!g_dsdMode) - { + { + DsdMode dsdMode = DSD_MODE_NATIVE; outuint(c_audioControl, SET_DSD_MODE); - outuint(c_audioControl, DSD_MODE_NATIVE); + outuint(c_audioControl, dsdMode); chkct(c_audioControl, XS1_CT_END); g_dsdMode = 1; }