Added car audio service user id based routing.

Added car audio service user id baser routing and focus managment.
On user config changed from car occupant zone service car audio service
will:
- Remove previous user audio zone device affinities
- Change audio routing for user to selected audio zone
- Change audio zone volume groups gains based on new user
Added car audio zone focus unit test, test added:
- Single zone audio focus request
- Multi-zone audio focus request
- Multi-zone audio focus request and focus abandon
- Single zone repeated focus request
- Multi-zone audio focus with bundle based focus request
Fixed Bundle base audio focus request. It was using old method of
determining audio zone id based on zone index instead of getId API.

Bug: 148292262
Test: atest CarZonesAudioFocusUnitTest
Test: atest CarAudioFocusTest
Test: atest CarOccupantZoneServiceTest
Change-Id: Ibb74e609b84f2c624c728fa0d21011f71c570626
3 files changed
tree: 01dd1e6f669943ff9527a5071b4f42de053ea122
  1. car-bugreportd/
  2. car-default-input-service/
  3. car-lib/
  4. car-maps-placeholder/
  5. car-systemtest-lib/
  6. car-test-lib/
  7. car-usb-handler/
  8. car_product/
  9. computepipe/
  10. EncryptionRunner/
  11. evs/
  12. experimental/
  13. FrameworkPackageStubs/
  14. obd2-lib/
  15. procfs-inspector/
  16. service/
  17. surround_view/
  18. tests/
  19. tools/
  20. user/
  21. vehicle-hal-support-lib/
  22. watchdog/
  23. .clang-format
  24. .gitignore
  25. Android.mk
  26. CleanSpec.mk
  27. CPPLINT.cfg
  28. OWNERS
  29. PREUPLOAD.cfg
  30. README.md
README.md

Native (C++) code format is required to be compatible with .clang-format file. Run

git clang-format --style=file --extension='h,cpp,cc' HEAD~

Note that clang-format is not desirable for Android java files. Therefore the command line above is limited to specific extensions.