README.txt 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. README
  2. ^^^^^^
  3. This directory contains the audio subsystem support for NuttX. The contents of this
  4. directory are only built if CONFIG_AUDIO is defined in the NuttX configuration file.
  5. Contents
  6. ^^^^^^^^
  7. - Files in this directory
  8. - Related Header Files
  9. - Related directories
  10. Files in this directory
  11. ^^^^^^^^^^^^^^^^^^^^^^^
  12. This directory holds the NuttX audio subsystem upper-half. The upper-half provides
  13. a common interface for applications to interface with and also defines a bind
  14. layer for specific lower-half audio device drivers.
  15. audio.c - The upper-half driver that binds to a lower-half driver from the
  16. drivers/audio subdirectory. For each attached audio device, there
  17. will be an instance of this upper-half driver bound to the
  18. instance of the lower half driver context.
  19. pcm_decode.c - Routines to decode PCM / WAV type data.
  20. README - This file!
  21. Portions of the audio system interface have application interfaces. Those
  22. portions reside in the nuttx/libc/audio directory where the will be built for
  23. access by both OS driver logic and user application logic. Those relevant
  24. files in nuttx/libc/audio include:
  25. buffer.c - Routines to manage creattion and destruction of audio pipeline buffers
  26. (apb) used in the audio subsystem. Audio pipeline buffers are passed
  27. between user applications and the audio drivers to deliver audio
  28. content for playback (or possibly recording in the future).
  29. Related Header Files
  30. ^^^^^^^^^^^^^^^^^^^^
  31. include/nuttx/audio/audio.h -- Top level include file defining the audio interface
  32. include/nuttx/audio/vs1053.h -- Specific driver initialization prototypes
  33. Configuration Settings
  34. ^^^^^^^^^^^^^^^^^^^^^^
  35. General Audio Settings
  36. ----------------------
  37. CONFIG_AUDIO
  38. Enables overall support for audio subsystem
  39. CONFIG_AUDIO_MULTI_SESSION
  40. Enables support for the audio subsystem to track multiple open sessions
  41. with lower-level audio devices.
  42. CONFIG_AUDIO_LARGE_BUFFERS
  43. Specifies that buffer size variables should be 32-bit vs. the normal 16-bit
  44. size. This allows buffers to be larger than 64K bytes on systems with
  45. an abundance of RAM.
  46. CONFIG_AUDIO_NUM_BUFFERS
  47. Sets the number of audio buffers to use for audio operations. If the
  48. configuration has set CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS, and an audio
  49. device does not support the operation, then this becomes the default number
  50. of buffers to use.
  51. CONFIG_AUDIO_BUFFER_SIZE
  52. Sets the size of the audio buffers to use for audio operations. If the
  53. configuration has set CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS, and an audio
  54. device does not support the operation, then this becomes the default size
  55. of buffers to use.
  56. CONFIG_AUDIO_DRIVER_SPECIFIC_BUFFERS
  57. Enables support for lower-level audio drivers to specify the number and size
  58. of buffers that should be allocated for best performance while interacting
  59. with that driver.
  60. CONFIG_AUDIO_CUSTOM_DEV_PATH
  61. Specifies that all audio devices should be registered in the filesystem at
  62. a location other than the standard /dev/audio directory.
  63. CONFIG_AUDIO_DEV_ROOT
  64. Specifies that all audio devices should be registered in the /dev directory.
  65. Saves a tiny bit of code and RAM space since an additional directory isn't needed,
  66. but at the expense of execution speed when searching for audio devices since all
  67. entries in /dev must be opened and tested if they provide audio support.
  68. Available only if CONFIG_AUDIO_CUSTOM_DEV_PATH is selected.
  69. CONFIG_AUDIO_DEV_PATH
  70. Specifies a custom directory where audio devices will be registered.
  71. Available if CONFIG_AUDIO_CUSTOM_DEV_PATH is selected and CONFIG_AUDIO_DEV_ROOT
  72. is not selected.
  73. Audio Format Support Selections
  74. -------------------------------
  75. CONFIG_AUDIO_FORMAT_AC3
  76. Specifies that AC3 support should be enabled if available by a lower-half driver.
  77. CONFIG_AUDIO_FORMAT_DTS
  78. Specifies that DTS support should be enabled if available by a lower-half driver.
  79. CONFIG_AUDIO_FORMAT_PCM
  80. Specifies that PCM support should be enabled if available by a lower-half driver.
  81. CONFIG_AUDIO_FORMAT_MP3
  82. Specifies that MP3 support should be enabled if available by a lower-half driver.
  83. CONFIG_AUDIO_FORMAT_MIDI
  84. Specifies that MIDI support should be enabled if available by a lower-half driver.
  85. CONFIG_AUDIO_FORMAT_WMA
  86. Specifies that WMA support should be enabled if available by a lower-half driver.
  87. CONFIG_AUDIO_FORMAT_OGG_VORBIS
  88. Specifies that Ogg Vorbis support should be enabled if available by a lower-half driver.
  89. Audio feature exclusion Selections
  90. ----------------------------------
  91. CONFIG_AUDIO_EXCLUDE_VOLUME
  92. Disables support in all libraries and drivers for setting the playback volume. In
  93. this case, the device volume will depend on the default level defined by the
  94. lower-level driver, typically via a config setting.
  95. CONFIG_AUDIO_EXCLUDE_BALANCE
  96. Disables support in all libraries and drivers for setting the playback balance.
  97. Also, the volume support must not be excluded for balance to work or make sense.
  98. CONFIG_AUDIO_EXCLUDE_TONE
  99. Disables support for setting bass and treble.
  100. CONFIG_AUDIO_EXCLUDE_PAUSE_RESUME
  101. Disables support in all libraries and drivers for pausing and resuming playback.
  102. CONFIG_AUDIO_EXCLUDE_STOP
  103. Disables support in all libraries and drivers for stopping an audio playback
  104. once it has started. Typically selected if only short notification audio sounds
  105. are needed (vs. media playing type applications).
  106. Related Subdirectories
  107. ^^^^^^^^^^^^^^^^^^^^^^
  108. drivers/audio -- Contains the lower-level device specific drivers.
  109. apps/system/nxplayer -- User-mode audio subsystem interface library.