User Guide (Version 1.13)

Audio System Architecture

The Lumberyard Audio system consists of three largely independent layers:

CAudioSystem: Represents the Audio system interface to the outside world. It holds methods for looking up or reserving IDs for various objects and the PushRequest method, which is the only way to request an action from the Audio system. This class contains the message queues and handles the scheduling and dispatch of the incoming requests. It also manages the Main Audio thread.

CAudioTranslationLayer: Keeps track of the Audio system's current state, including registered AudioObjects, AudioListeners, and active AudioEvents, and processes the requests submitted through the PushRequest method.

IAudioSystemImplementation: Represents an interface to an audio middleware system. While processing incoming requests, CAudioTranslationLayer calls the appropriate method of IAudioSystemImplementation and, if the call succeeds, records all of the resulting changes in the AudioSystem state.