.. _sec_api_component:

Component API
=============

The following functions can be called from the top level main of an
application and implement the various components described in
:ref:`usb_audio_sec_architecture`.

When using the USB audio framework the ``c_ep_in`` array is always
composed in the following order:

* Endpoint 0 (in)
* Audio Feedback endpoint (if output enabled)
* Audio IN endpoint (if input enabled)
* MIDI IN endpoint (if MIDI enabled)
* Clock Interrupt endpoint

The array ``c_ep_out`` is always composed in the following order:

* Endpoint 0 (out)
* Audio OUT endpoint (if output enabled)
* MIDI OUT endpoint (if MIDI enabled)

.. doxygenfunction:: XUA_Endpoint0

.. doxygenfunction:: XUA_Buffer

.. doxygenfunction:: XUA_AudioHub

.. doxygenfunction:: mixer

.. doxygenfunction:: clockGen

.. doxygenfunction:: usb_midi

.. doxygenfunction:: mic_array_task
