nuttx/audio/Kconfig
Xiang Xiao abfe082a6f Kconfig: Simplify the conditional default statement
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-07-16 14:39:20 -03:00

263 lines
7.0 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config AUDIO
bool "Audio Support"
default n
---help---
Enables overall support for Audio library.
if AUDIO
config AUDIO_COMP
bool "Support audio composition"
default n
---help---
Composite several lower level audio devices into big one.
config AUDIO_MULTI_SESSION
bool "Support multiple sessions"
default n
---help---
Some audio devices, such as USB attached sound cards, may support more
than one streaming session at a time (each with one or more audio channels).
Selecting this feature adds support for tracking multiple concurrent
sessions with the lower-level audio devices.
menu "Audio Buffer Configuration"
config AUDIO_LARGE_BUFFERS
bool "Support Audio Buffers with greater than 65K samples"
default n
---help---
By default, the Audio Pipeline Buffers use a 16-bit max sample count, limiting
the number of samples per buffer to 65K. Enable this option to specify a
32-bit max sample count for increased samples / buffer capability.
channel capability.
config AUDIO_NUM_BUFFERS
int "Number of buffers for audio processing"
default 2
---help---
Specifies the number of buffers to allocate for audio processing.
If Driver Specified buffer sizes is enabled (below), then the
low-level drivers will have the opportunity to override this
value.
config AUDIO_BUFFER_NUMBYTES
int "Size of each audio buffer for audio processing"
default 8192
---help---
Specifies the allocation size for each audio buffer
If Driver Specified buffer sizes is enabled (below), then the
low-level drivers will have the opportunity to override this
value.
config AUDIO_DRIVER_SPECIFIC_BUFFERS
bool "Support for Driver specified buffer sizes"
default n
---help---
By default, the Audio system uses the same size and number of buffers
regardless of the specific audio device in use. Specifying 'y' here
adds extra code which allows the lower-level audio device to specify
a particular size and number of buffers.
endmenu # Audio Buffer Configuration
menu "Supported Audio Formats"
config AUDIO_FORMAT_AC3
bool "AC3 Format"
default n
---help---
Build in support for AC3 (Dolby Digital) Audio format.
config AUDIO_FORMAT_DTS
bool "DTS Format"
default n
---help---
Add in support for DTS format.
config AUDIO_FORMAT_PCM
bool "PCM Audio"
default y
---help---
Build in support for PCM Audio format.
if AUDIO_FORMAT_PCM
config AUDIO_FORMAT_RAW
bool "Raw mode"
default n
---help---
Raw mode makes the PCM decoder skip trying to parse received
data for a PCM header. All data is sent to the audio driver
directly.
endif
config AUDIO_FORMAT_MP3
bool "MPEG 3 Layer 1"
default y
---help---
Build in support for MP3 Audio format.
config AUDIO_FORMAT_MIDI
bool "Midi Format"
default n
---help---
Add in support for MIDI format.
config AUDIO_FORMAT_WMA
bool "WMA Format (see copyright notice)"
default n
---help---
Add in support for Microsoft Windows Media format.
config AUDIO_FORMAT_OGG_VORBIS
bool "Ogg Vorbis format"
default n
---help---
Build in support for the Open Source Ogg Vorbis format.
endmenu
menu "Exclude Specific Audio Features"
config AUDIO_EXCLUDE_VOLUME
bool "Exclude volume controls"
default n
---help---
Exclude building support for changing the playback volume.
config AUDIO_EXCLUDE_BALANCE
bool "Exclude balance controls"
default n
---help---
Exclude building support for changing the balance.
config AUDIO_EXCLUDE_EQUALIZER
bool "Exclude equalizer controls"
default y
---help---
Exclude building support for setting equalization.
config AUDIO_EQUALIZER_NBANDS
int "Number of equalizer bands"
default 8
depends on !AUDIO_EXCLUDE_EQUALIZER
---help---
If equalizer support is not excluded, then it will be necessary to
provide the (maximum) number of equalization bands to be supported.
config AUDIO_EXCLUDE_TONE
bool "Exclude tone (bass and treble) controls"
default !AUDIO_EXCLUDE_EQUALIZER
---help---
Exclude building support for changing the bass and treble. Normally
you would not select both tone controls and equalizer support unless
your underlying hardware supports both options.
config AUDIO_EXCLUDE_PAUSE_RESUME
bool "Exclude pause and resume controls"
default n
---help---
Exclude building support for pausing and resuming audio files
once they are submitted. If the sound system is being used to play
short system notification or error type sounds that typically only
last a second or two, then there is no need (or chance) to pause or
resume sound playback once it has started.
config AUDIO_EXCLUDE_STOP
bool "Exclude stop playback controls"
default n
---help---
Exclude building support for stopping audio files once they are
submitted. If the sound system is being used to play short system
notification or error type sounds that typically only last a second
or two, then there is no need (or chance) to stop the sound
playback once it has started.
config AUDIO_EXCLUDE_FFORWARD
bool "Exclude fast forward controls"
default AUDIO_EXCLUDE_STOP
---help---
Exclude building support for fast forwarding through audio files
once they are submitted. Selecting this option would only make
if the underlying audio decoding logic is capable of sub-sampling
in the stream of audio data.
config AUDIO_EXCLUDE_REWIND
bool "Exclude rewind controls"
default y
---help---
Rewind may be supported by some audio devices, but not the typical
device that receives a non-seekable, stream of audio buffers.
endmenu
config AUDIO_CUSTOM_DEV_PATH
bool "Use custom device path"
default n
---help---
By default, all audio devices on the target are are registered in the
/dev/audio directory. Select this option to change the default location
for the device registration.
if AUDIO_CUSTOM_DEV_PATH
config AUDIO_DEV_ROOT
bool "Place audio devices in /dev"
default n
---help---
This option causes all device entries to appear in /dev with all the
other device entries. This option generates the smallest code and
RAM footprint.
if !AUDIO_DEV_ROOT
config AUDIO_DEV_PATH
string "Base path for Audio devices"
default "/dev/audio"
---help---
The path on the target where audio devices are registered. The default
is to place all audio devices in the /dev/audio/ directory.
endif
endif
# These are here as placeholders of what could be added
if AUDIO_PLANNED
config AUDIO_MIXER
bool "Planned - Enable support for the software based Audio Mixer"
default n
---help---
The Audio mixer is a software-only based component that can be used
to perform audio channel or device mixing.
config AUDIO_MIDI_SYNTH
bool "Planned - Enable support for the software-based MIDI synthesizer"
default n
---help---
Builds a simple MIDI synthesizer.
config AUDIO_OUTPUT_JACK_CONTROL
bool "Planned - Enable support for output jack control"
default n
---help---
Builds a simple MIDI synthesizer.
config AUDIO_FONT
bool "Planned - Enable support for the Audio Font"
default n
---help---
The Audio font provides common audio symbols.
endif
endif