Aal::atom
Aal atom serves as a replacement for NintendoWare atk. As such, NintendoWare formats like Bfsar and Bfstm are replaced with EPD's simple Bwav format. This library extends functionality of nn::audio.
Backend
AudioRendererController
The main manager of all aal atom managers.
AudioRendererThread
This thread is responsible for processing 3 of the CommandQueues for non-stream thread commands, processing is typically requested once a frame.
AudioDeviceNameManager
Manages the audio device names and volumes for the TV, Stereo Jack, and Built In Speakers.
BusManager
Manages audio buses. An IBus is implemented as either a SubMixBus or a FinalMixBus. There is a single FinalMixBus, which is responsible for outputting audio to the audio device. There is a handle table allocator for SubMixBus's. IBus are implemented on top of a RoutingNode, which is responsible for handling a bus's links to destination buses.
BusSendManager
Manages a handle table of BusSends used for objects sending audio data to a RoutingNode.
SourceManager
Manages audio sources. A Source is implemented on top of a RoutingNode, as the destination of it's audio is a bus. Sources can have multiple Voices.
CommandBufferManager
Manages 4 Command Queues with 16 usable Command List slots for scheduling ICommands.
CommandManager
Allocator for ICommands. ICommands have a Type which corresponds to a name, some types are shared by multiple classes.
Name | Type Value | Description |
---|---|---|
Invalid | 0 | Not used. |
Reserve | 1 | Unknown. |
Blank | 2 | The default dummy ICommand. |
BlankWithCheck | 3 | |
AcquireVoice | 4 | Triggers a Source to acquire the underlying nn::audio voice slots for every Voice |
UpdateActiveSourceList | 5 | Rebuilds the SourceManager's active Source array |
UpdateDeactiveSourceList | 6 | Frees inactive Sources from the SourceManager's active Source array |
SetPlayState | 7 | Adjusts the PlayState for every Voice that is part of a Source |
PrepareWave | 8 | |
SetVolume | 9 | Adjusts the volume for every Voice that is part of a Source |
SetPitch | 10 | Adjusts the pitch for every Voice that is part of a Source |
SetPriority | 11 | Adjusts the priority for every Voice that is part of a Source |
SetChannelVolume | 12 | Adjusts the mix volumes for a Source? |
SetSourceVolume | 13 | |
SetBiquadFilter | 14 | Adjusts the BiquadFilter parameters for every voice that is part of a Source |
UpdateSourceConnection | 15 | Updates the IBus destinations for a Source |
Unknown | 16 | Unused. |
Unknown | 17 | Unused. |
FileReadRequest | 18 | Tells the stream thread to read in the next part of an audio stream. |
FileRegistrationRequest | 19 | Registers an audio stream to the stream thread. |
FileUnregistrationRequest | 20 | Unregisters an audio stream from the stream thread. |
AcquireBus | 21 | Triggers an IBus to acquire it's underlying nn::audio type |
UpdateActiveBusList | 22 | Rebuilds the BusManager active IBus array and frees unused SubMixes |
SetBusVolume | 23 | Adjusts the volume of an IBus |
SetBusSendVolume | 24 | Adjusts the volume of a BusSendArray |
UpdateBusConnection | 25 | Updates the IBus destinations for an IBus |
AddEffect | 26 | Adds an IEffect to an IBus |
RemoveEffect | 27 | Removes an IEffect from an IBus |
UpdateEffect | 28 | Processes an IEffect |
ClipManager
Manages a handle table of Clips. Clips appear to wrap bwav.
FaderBufferManager
Manages a handle table of Faders.