LeAudio: Decouple configuration mechanism from the available contexts
Current audio set configuration should be coupled with the current audio use case, therefor coupled with the current call state, sink and source metadata if any of these are activated. This will allow us to properly configure for scenarios which are not supported on the remote device and use the UNSPECIFIED context. The existing configuration logic is coupled with the context availability at many levels and had to be reworked. As a result, the sink/source audio contexts serving as a base for the configurations are now initially not filtered by the context availability, but stored as local contexts, derived from the local audio track metadata. Then, when the remote device is about to be configured, we derive the remote side contexts from the local contexts and we apply (among others) the remote device context availability policy. Additionally, the configuration cache map is now recomputed on demand for the particular configuration context, when it is needed, while previously we recomputed the entire array of configurations every time the audio set conditions have changed, even if some of them are rarelly or never used between these changes (eg. when the device was disconnected or PACs have changed). Bug: 285647765 Test: atest bluetooth_le_audio_test bluetooth_le_audio_client_test Change-Id: Id2821ef1681e99f3c5afe109473c43abf91de670
Loading
Please register or sign in to comment