forked from PAWPAW-Mirror/lib_xua
get usb_adaptive to compile
This commit is contained in:
@@ -18,10 +18,10 @@
|
|||||||
#define MAX(x,y) ((x)>(y) ? (x) : (y))
|
#define MAX(x,y) ((x)>(y) ? (x) : (y))
|
||||||
|
|
||||||
#if((defined USB_CMD_CFG_SAMP_FREQ) || (defined USB_DESCRIPTOR_OVERRIDE_RATE_RES))
|
#if((defined USB_CMD_CFG_SAMP_FREQ) || (defined USB_DESCRIPTOR_OVERRIDE_RATE_RES))
|
||||||
unsigned int xua_lite_curAudToUsbFreq(void);
|
extern uint32_t get_usb_to_device_rate();
|
||||||
unsigned int xua_lite_curUsbToAudFreq(void);
|
extern uint32_t get_device_to_usb_rate();
|
||||||
unsigned int xua_lite_curUSB_Res_In(void);
|
extern uint32_t get_usb_to_device_bit_res();
|
||||||
unsigned int xua_lite_curUSB_Res_Out(void);
|
extern uint32_t get_device_to_usb_bit_res();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* TODO use SLOTSIZE to potentially save memory */
|
/* TODO use SLOTSIZE to potentially save memory */
|
||||||
@@ -165,8 +165,8 @@ int g_maxPacketSize = MAX_DEVICE_AUD_PACKET_SIZE_IN_FS;
|
|||||||
void handle_audio_request(chanend c_mix_out)
|
void handle_audio_request(chanend c_mix_out)
|
||||||
{
|
{
|
||||||
int space_left;
|
int space_left;
|
||||||
g_curSubSlot_Out = xua_lite_curUSB_Res_Out() >> 3;
|
g_curSubSlot_Out = get_usb_to_device_bit_res() >> 3;
|
||||||
g_curSubSlot_In = xua_lite_curUSB_Res_In() >> 3;
|
g_curSubSlot_In = get_device_to_usb_bit_res() >> 3;
|
||||||
|
|
||||||
/* Input word that triggered interrupt and handshake back */
|
/* Input word that triggered interrupt and handshake back */
|
||||||
unsigned underflowSample = inuint(c_mix_out);
|
unsigned underflowSample = inuint(c_mix_out);
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include <xs1.h>
|
#include <xs1.h>
|
||||||
#include <safestring.h>
|
#include <safestring.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "xua.h"
|
#include "xua.h"
|
||||||
|
|
||||||
@@ -65,10 +66,10 @@ extern void device_reboot(void);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if((defined USB_CMD_CFG_SAMP_FREQ) || (defined USB_DESCRIPTOR_OVERRIDE_RATE_RES))
|
#if((defined USB_CMD_CFG_SAMP_FREQ) || (defined USB_DESCRIPTOR_OVERRIDE_RATE_RES))
|
||||||
unsigned int xua_lite_curAudToUsbFreq(void);
|
extern uint32_t get_usb_to_device_rate();
|
||||||
unsigned int xua_lite_curUsbToAudFreq(void);
|
extern uint32_t get_device_to_usb_rate();
|
||||||
unsigned int xua_lite_curUSB_Res_In(void);
|
extern uint32_t get_usb_to_device_bit_res();
|
||||||
unsigned int xua_lite_curUSB_Res_Out(void);
|
extern uint32_t get_device_to_usb_bit_res();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned int DFU_mode_active = 0; // 0 - App active, 1 - DFU active
|
unsigned int DFU_mode_active = 0; // 0 - App active, 1 - DFU active
|
||||||
@@ -345,33 +346,33 @@ void XUA_Endpoint0_init(chanend c_ep0_out, chanend c_ep0_in, chanend c_audioCont
|
|||||||
|
|
||||||
#ifdef USB_DESCRIPTOR_OVERRIDE_RATE_RES //change USB descriptor frequencies and bit resolution values here
|
#ifdef USB_DESCRIPTOR_OVERRIDE_RATE_RES //change USB descriptor frequencies and bit resolution values here
|
||||||
|
|
||||||
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME] = xua_lite_curUSB_Res_In() >> 3; //sub frame rate = bit rate /8
|
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME] = get_device_to_usb_bit_res() >> 3; //sub frame rate = bit rate /8
|
||||||
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME + 1] = (xua_lite_curUSB_Res_In() & 0xff); //bit resolution
|
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME + 1] = (get_device_to_usb_bit_res() & 0xff); //bit resolution
|
||||||
|
|
||||||
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME] = xua_lite_curUSB_Res_Out() >> 3; //sub frame rate = bit rate /8
|
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME] = get_usb_to_device_bit_res() >> 3; //sub frame rate = bit rate /8
|
||||||
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME + 1] = (xua_lite_curUSB_Res_Out() & 0xff); //bit resolution
|
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_SUB_FRAME + 1] = (get_usb_to_device_bit_res() & 0xff); //bit resolution
|
||||||
|
|
||||||
const unsigned num_of_usb_descriptor_freq=3; //This should be =3 according to the comments "sing a value of <=2 or > 7 for num_freqs_a1 causes enumeration issues on Windows" in xua_ep0_descriptors.h
|
const unsigned num_of_usb_descriptor_freq=3; //This should be =3 according to the comments "sing a value of <=2 or > 7 for num_freqs_a1 causes enumeration issues on Windows" in xua_ep0_descriptors.h
|
||||||
int i=0;
|
int i=0;
|
||||||
for(i=0;i<num_of_usb_descriptor_freq;i++)
|
for(i=0;i<num_of_usb_descriptor_freq;i++)
|
||||||
{
|
{
|
||||||
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i] = xua_lite_curAudToUsbFreq() & 0xff;
|
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i] = get_device_to_usb_rate() & 0xff;
|
||||||
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 1] = (xua_lite_curAudToUsbFreq() & 0xff00)>> 8;
|
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 1] = (get_device_to_usb_rate() & 0xff00)>> 8;
|
||||||
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 2] = (xua_lite_curAudToUsbFreq() & 0xff0000)>> 16;
|
cfgDesc_Audio1[USB_AS_IN_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 2] = (get_device_to_usb_rate() & 0xff0000)>> 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0;i<num_of_usb_descriptor_freq;i++)
|
for(i=0;i<num_of_usb_descriptor_freq;i++)
|
||||||
{
|
{
|
||||||
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i] = xua_lite_curUsbToAudFreq() & 0xff;
|
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i] = get_usb_to_device_rate() & 0xff;
|
||||||
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 1] = (xua_lite_curUsbToAudFreq() & 0xff00)>> 8;
|
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 1] = (get_usb_to_device_rate() & 0xff00)>> 8;
|
||||||
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 2] = (xua_lite_curUsbToAudFreq() & 0xff0000)>> 16;
|
cfgDesc_Audio1[USB_AS_OUT_INTERFACE_DESCRIPTOR_OFFSET_FREQ + 3*i + 2] = (get_usb_to_device_rate() & 0xff0000)>> 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
cfgDesc_Audio1[USB_AS_IN_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE] = ((xua_lite_curUSB_Res_In() >> 3) * MAX_PACKET_SIZE_MULT_IN_FS) & 0xff; //max packet size
|
cfgDesc_Audio1[USB_AS_IN_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE] = ((get_device_to_usb_bit_res() >> 3) * MAX_PACKET_SIZE_MULT_IN_FS) & 0xff; //max packet size
|
||||||
cfgDesc_Audio1[USB_AS_IN_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE + 1] = (((xua_lite_curUSB_Res_In() >> 3) * MAX_PACKET_SIZE_MULT_IN_FS) & 0xff00) >> 8; //max packet size
|
cfgDesc_Audio1[USB_AS_IN_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE + 1] = (((get_device_to_usb_bit_res() >> 3) * MAX_PACKET_SIZE_MULT_IN_FS) & 0xff00) >> 8; //max packet size
|
||||||
|
|
||||||
cfgDesc_Audio1[USB_AS_OUT_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE] = ((xua_lite_curUSB_Res_Out() >> 3) * MAX_PACKET_SIZE_MULT_OUT_FS) & 0xff; //max packet size
|
cfgDesc_Audio1[USB_AS_OUT_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE] = ((get_usb_to_device_bit_res() >> 3) * MAX_PACKET_SIZE_MULT_OUT_FS) & 0xff; //max packet size
|
||||||
cfgDesc_Audio1[USB_AS_OUT_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE + 1] = (((xua_lite_curUSB_Res_Out() >> 3) * MAX_PACKET_SIZE_MULT_OUT_FS) & 0xff00) >> 8; //max packet size
|
cfgDesc_Audio1[USB_AS_OUT_EP_DESCRIPTOR_OFFSET_MAXPACKETSIZE + 1] = (((get_usb_to_device_bit_res() >> 3) * MAX_PACKET_SIZE_MULT_OUT_FS) & 0xff00) >> 8; //max packet size
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -53,10 +53,15 @@ extern unsigned char mixSel[MAX_MIX_COUNT][MIX_INPUTS];
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Global var for current frequency, set to default freq */
|
/* Global var for current frequency, set to default freq */
|
||||||
#ifdef USB_CMD_CFG_SAMP_FREQ
|
#if((defined USB_CMD_CFG_SAMP_FREQ) || (defined USB_DESCRIPTOR_OVERRIDE_RATE_RES))
|
||||||
#define g_curUSBin_SamFreq xua_lite_curAudToUsbFreq()
|
extern uint32_t get_usb_to_device_rate();
|
||||||
#define g_curUSBout_SamFreq xua_lite_curUsbToAudFreq()
|
extern uint32_t get_device_to_usb_rate();
|
||||||
|
extern uint32_t get_usb_to_device_bit_res();
|
||||||
|
extern uint32_t get_device_to_usb_bit_res();
|
||||||
|
#define g_curUSBin_SamFreq get_device_to_usb_rate()
|
||||||
|
#define g_curUSBout_SamFreq get_usb_to_device_rate()
|
||||||
|
|
||||||
unsigned int g_curSamFreq = DEFAULT_FREQ; // should no longer be used
|
unsigned int g_curSamFreq = DEFAULT_FREQ; // should no longer be used
|
||||||
#else
|
#else
|
||||||
|
|||||||
Reference in New Issue
Block a user