[EGD-5737] Merge master into experimental
Keep experimental up to date with changes from master
[EGD-5086] Change audio device switching logic
Upon hardware change event, audio profile had been switched multiple
times forcing redundant initializations of all related objects. Logic
has been optimized and prepared for further refactor. Now upon hardware
event objects are initialized exactly once.
[EGD-5061] Fix lack of audio during call
Audio might have not work if audio streams
were reused. This was fixed by introducing proper
cleaning procedures.
[EGD-4978] Add Bluetooth virtual audio device
Bluetooth audio device requires different handling than other
audio devices. The commit adds proxy device that does not
handle requests itself but instead sends requests too Bluetooth
service.
[EGD-5009] Change messy callback logic in audio module
Refactor audio module to use only one callback for communication
with audio service. This also simplifies the logic and removes
necessity to define defaults for audio values in multiple places.
[EGD-4534] Change audio data path synchronization
Refactor audio data path to fix several synchronization issues and
excessive copy operations on large memory blocks. Introduce
audio::Stream data structure to allow connecting audio source and sink
with a zero-copy capability.
Introduce system mechanisms:
- critical section guard lock needed for stream synchronization
- non-cacheable memory allocator to allocate memory for DMA safe
buffers
Update the Googletest CMake template to match the capabilities of the
Catch2 template.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@mudita.com>
[EGD-4332][EGD-4482] Fix playback of mono sound in headphones (#1080)
Addressed problem - when playing files containing only one
audio channel the sound could be heard in only one speaker.
[EGD-4357] Improve error handling in audio (#990)
- error code can be now returned also during
initialization
- fixed crash when user requested to playback
file that does not exist
[EGD-4301] Bluetooth Audio profile support (#984)
- implemented audio sink/source switching
- reorganized / renamed sound events
- moved SetBluetoothStreamData and AudioDevice instance to base Operation class
- added audio profiles RecordingBluetoothHSP, RoutingBluetoothHSP
- removed unused audio Profiles
- removed redundant OutputPath and InputPath classes from CodecParamsMAX98090
[EGD-4099] BT set stream (#846)
[EGD-3743] Update copyrights in fies
[EGD-4003] audio: fix workers destroying (#806)
Improve workers destroying by replacing sudden death with a gentle close
request.
Make (De)Init static - when creating second instance of a codec there
was a situation when destructing one instance was causing first one to
stop working, because they share common hardware resources.
[EGD-4100] Fix playback restart on audio profile change (#848)
[EGD-4023] Vibration - get values from DB (#807)
[EGD-4054] Audio API for setting stream parameters (#826)
[EGD-3841] Add audio vibration and enable sound option
[EDG-3870] Fix audio looping (#769)
[EGD-3779] Add sounds looping and merging (#744)
* [EGD-3779] Add sounds looping and merging
[EGD-3778] Add priorities and sound mux to audio system (#726)