AudioManager  7.6.6
Native Application Runtime Environment
Miscellaneous

Connection Formats

Every flow of audio is using a format to exchange data. The format that the source and the sink uses must match together in order to have an undisturbed experience. It is common that sources and sinks are capable of supporting more than one audioformat.
So all sources and sinks register with a list of connectionFormats that they support and for each connection a format must be chosen that is then used to transport the audio data. Gateways (and Soundconverters) have the information which connectionFormat can be transformed into another one. am::am_CustomAvailabilityReason_t has all formats listed.
There is a special usecase that is worth showing as an example in this regard: the change of a connectionFormat when switching from one song to another. Here is an example of how the project specific parts could handle this:

ChangeofAudioformatduringplaytime.png

Persistence

The persistence client library is defined as an abstract component with a c-like library interface. Since the AudioManagerController is the only one to know what is to be made persistent, he is the one interfacing with that library. This is the reason why there is no specific interface for the persistence here.

Speed dependent volume

The adjustments for the speed are done product specific in the controller. The speed information itself is retrieved by the AudioManagerDaemon, sampled and quantified and forwarded to the controller. The interface in not yet defined !
Turning speed controlled volume on/off and possible settings are achieved via SinkSoundProperty settings.