Documentation: migrate /audio
This commit is contained in:
parent
ab78e3817a
commit
1822b1c37f
|
@ -0,0 +1,121 @@
|
|||
===============
|
||||
Audio subsystem
|
||||
===============
|
||||
|
||||
This page discusses the audio subsystem support for NuttX which is only built if
|
||||
CONFIG_AUDIO is defined in the NuttX configuration file.
|
||||
|
||||
Files in nuttx/audio
|
||||
====================
|
||||
|
||||
This directory holds the NuttX audio subsystem upper-half. The upper-half provides
|
||||
a common interface for applications to interface with and also defines a bind
|
||||
layer for specific lower-half audio device drivers.
|
||||
|
||||
* ``audio.c`` - The upper-half driver that binds to a lower-half driver from the
|
||||
drivers/audio subdirectory. For each attached audio device, there
|
||||
will be an instance of this upper-half driver bound to the
|
||||
instance of the lower half driver context.
|
||||
* ``pcm_decode.c`` - Routines to decode PCM / WAV type data.
|
||||
|
||||
Portions of the audio system interface have application interfaces. Those
|
||||
portions reside in the ``nuttx/libc/audio`` directory where the will be built for
|
||||
access by both OS driver logic and user application logic. Those relevant
|
||||
files in ``nuttx/libc/audio`` include:
|
||||
|
||||
* ``buffer.c`` - Routines to manage creattion and destruction of audio pipeline buffers
|
||||
(apb) used in the audio subsystem. Audio pipeline buffers are passed
|
||||
between user applications and the audio drivers to deliver audio
|
||||
content for playback (or possibly recording in the future).
|
||||
|
||||
Related Header Files
|
||||
====================
|
||||
|
||||
``include/nuttx/audio/audio.h`` - Top level include file defining the audio interface
|
||||
``include/nuttx/audio/vs1053.h`` - Specific driver initialization prototypes
|
||||
|
||||
Configuration Settings
|
||||
======================
|
||||
|
||||
General Audio Settings
|
||||
----------------------
|
||||
|
||||
* ``CONFIG_AUDIO``
|
||||
Enables overall support for audio subsystem
|
||||
* ``CONFIG_AUDIO_MULTI_SESSION``
|
||||
Enables support for the audio subsystem to track multiple open sessions
|
||||
with lower-level audio devices.
|
||||
* ``CONFIG_AUDIO_LARGE_BUFFERS``
|
||||
Specifies that buffer size variables should be 32-bit vs. the normal 16-bit
|
||||
size. This allows buffers to be larger than 64K bytes on systems with
|
||||
an abundance of RAM.
|
||||
* ``CONFIG_AUDIO_NUM_BUFFERS``
|
||||
Sets the number of audio buffers to use for audio operations. If the
|
||||
configuration has set ``CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS``, and an audio
|
||||
device does not support the operation, then this becomes the default number
|
||||
of buffers to use.
|
||||
* ``CONFIG_AUDIO_BUFFER_SIZE``
|
||||
Sets the size of the audio buffers to use for audio operations. If the
|
||||
configuration has set ``CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS``, and an audio
|
||||
device does not support the operation, then this becomes the default size
|
||||
of buffers to use.
|
||||
* ``CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS``
|
||||
Enables support for lower-level audio drivers to specify the number and size
|
||||
of buffers that should be allocated for best performance while interacting
|
||||
with that driver.
|
||||
* ``CONFIG_AUDIO_CUSTOM_DEV_PATH``
|
||||
Specifies that all audio devices should be registered in the filesystem at
|
||||
a location other than the standard ``/dev/audio`` directory.
|
||||
* ``CONFIG_AUDIO_DEV_ROOT``
|
||||
Specifies that all audio devices should be registered in the ``/dev`` directory.
|
||||
Saves a tiny bit of code and RAM space since an additional directory isn't needed,
|
||||
but at the expense of execution speed when searching for audio devices since all
|
||||
entries in ``/dev`` must be opened and tested if they provide audio support.
|
||||
Available only if ``CONFIG_AUDIO_CUSTOM_DEV_PATH`` is selected.
|
||||
* ``CONFIG_AUDIO_DEV_PATH``
|
||||
Specifies a custom directory where audio devices will be registered.
|
||||
Available if ``CONFIG_AUDIO_CUSTOM_DEV_PATH`` is selected and ``CONFIG_AUDIO_DEV_ROOT``
|
||||
is not selected.
|
||||
|
||||
Audio Format Support Selections
|
||||
-------------------------------
|
||||
|
||||
* ``CONFIG_AUDIO_FORMAT_AC3``
|
||||
Specifies that AC3 support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_DTS``
|
||||
Specifies that DTS support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_PCM``
|
||||
Specifies that PCM support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_MP3``
|
||||
Specifies that MP3 support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_MIDI``
|
||||
Specifies that MIDI support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_WMA``
|
||||
Specifies that WMA support should be enabled if available by a lower-half driver.
|
||||
* ``CONFIG_AUDIO_FORMAT_OGG_VORBIS``
|
||||
Specifies that Ogg Vorbis support should be enabled if available by a lower-half driver.
|
||||
|
||||
Audio feature exclusion Selections
|
||||
----------------------------------
|
||||
|
||||
* ``CONFIG_AUDIO_EXCLUDE_VOLUME``
|
||||
Disables support in all libraries and drivers for setting the playback volume. In
|
||||
this case, the device volume will depend on the default level defined by the
|
||||
lower-level driver, typically via a config setting.
|
||||
* ``CONFIG_AUDIO_EXCLUDE_BALANCE``
|
||||
Disables support in all libraries and drivers for setting the playback balance.
|
||||
Also, the volume support must not be excluded for balance to work or make sense.
|
||||
* ``CONFIG_AUDIO_EXCLUDE_TONE``
|
||||
Disables support for setting bass and treble.
|
||||
* ``CONFIG_AUDIO_EXCLUDE_PAUSE_RESUME``
|
||||
Disables support in all libraries and drivers for pausing and resuming playback.
|
||||
* ``CONFIG_AUDIO_EXCLUDE_STOP``
|
||||
Disables support in all libraries and drivers for stopping an audio playback
|
||||
once it has started. Typically selected if only short notification audio sounds
|
||||
are needed (vs. media playing type applications).
|
||||
|
||||
Related Subdirectories
|
||||
======================
|
||||
|
||||
* ``drivers/audio`` - Contains the lower-level device specific drivers.
|
||||
* ``apps/system/nxplayer`` - User-mode audio subsystem interface library.
|
|
@ -15,3 +15,4 @@ NuttX is very feature-rich RTOS and is thus composed of various different subsys
|
|||
nxgraphics/index.rst
|
||||
nxwidgets.rst
|
||||
paging.rst
|
||||
audio/index.rst
|
||||
|
|
Loading…
Reference in New Issue