Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
Toggle table of contents sidebar

# Other options

There are a few other, lesser used, options available. These are shown in Table 29.

Table 29 Other defines
Define | Description | Default
--- | --- | ---
`XUA_USB_EN` | Allows the use of the audio subsystem without USB | `1` (enabled)
`INPUT_VOLUME_CONTROL` | Enables volume control on input channels, both descriptors and processing | `1` (enabled)
`OUTPUT_VOLUME_CONTROL` | Enables volume control on output channels, both descriptors and processing | `1` (enabled)
`XUA_CHAN_BUFF_CTRL` | Enables event based communication between XUA_Buffer_Ep() and XUA_Buffer_Decouple() which significantly reduces power consumption (approx 40 mW on xcore.ai) at the cost of consuming two extra channel-ends. Consequently this option may not be viable on some high end configurations which feature multiple digital interfaces such as SPDIF or ADAT. | `0` (disabled)
`XUA_USER_IN_ENDPOINTS` | Allows additional input USB endpoints to be declared. Endpoints must be initialised using code from the `xua_user_endpoint_init.h` include file. | Undefined
`XUA_USER_OUT_ENDPOINTS` | Allows additional output USB endpoints to be declared. Endpoints must be initialised using code from the `xua_user_endpoint_init.h` include file. | Undefined
`XUA_USER_INTERFACES` | Used for inserting interfaces into descriptor for composite devices. Note - This define must be able to be compiled under `C`. | Undefined

Note

When extending the descriptors to add user interfaces, the descriptors must also be extended to tell the host what kind of device to expect. There are three optional include files which may be used to insert code into user descriptors. The expected files in your project are `xua_user_descriptors_incl.h` to add any additional include files, `xua_user_descriptors_decl.h` to make the descriptor declarations and `xua_user_descriptors_content.h` to populate them. The include files must be able to be compiled under `C`.

Note

In addition to adding user interfaces and descriptors, endpoint 0 handlers and endpoint initialisation must be supplied. The expected files in your project are `xua_user_ep0_decl.h` to make declarations (for example external function prototype), `xua_user_ep0_handler.h` to provide handling code for the extensions to endpoint 0 and `xua_user_endpoint_init.h` where the additionally declared endpoints are initialised. The include files for endpoint 0 must be able to be compiled under `C`.