Here are the classes, structs, unions and interfaces with brief descriptions:
| CBackgroundAudioAACClass | Interrupt-driven AAC decoder. Generates a full frame of samples each cycle and uses the RawBuffer to safely hand data from the app to the decompressor |
| CBackgroundAudioMixer | Real-time, IRQ driven mixer with configurable number of inputs |
| CBackgroundAudioMixerInput | Implements an emulated AudioOutputBase and feeds resampled data from it up to an input of an AudioOutputMixer object |
| CBackgroundAudioMP3Class | Interrupt-driven MP3 decoder. Generates a full frame of samples each cycle and uses the RawBuffer to safely hand data from the app to the decompressor |
| CBackgroundAudioSpeechClass | Interrupt-driven ESpeak-NG instance. Generates a full frame of samples each cycle and uses the RawBuffer to safely hand data from the app to the decompressor |
| CBackgroundAudioVoice | Structure to collect a ESpeak-NG voice with its human-readable name |
| CBackgroundAudioWAVClass | Interrupt-driven WAV decoder. Generates a full frame of samples each cycle and uses the RawBuffer to safely hand data from the app to the decompressor |
| CESP32I2SAudio | I2S object with IRQ-based callbacks to a FreeRTOS task, for use with BackgroundAudio |
| CESP32PDMAudio | PDM object with IRQ-based callbacks to a FreeRTOS task, for use with BackgroundAudio |
| CRawDataBuffer | Interrupt-safe, multicore-safe biftable buffer for libmad raw data |
| CROMDataBuffer | Special-purpose buffer which never shifts memory and only allows a single written block of data, used for ROM sources |