Add CarVolumeService
Things added in this cl:
+ Hook up hardware volume keys to CarVolumeService to directly update
volume for current audio context.
+ Added volume control apis in AudioManager, and the real implementation
is done in CarVolumeService
+ The volume updates from car is broadcast to listeners through
IVolumeController api which is already in framework. SystemUI is using
this api to listen to volume changes (through AudioManager).
+ Added new permission for volume controls
Main TODOs left:
+ Multi stream playing at the same time. This can be done through
adjustign software mixer gain on Android side. Utility functions to
compute the gain is added in VolumeUtils, but it's not used yet in
CarVolumeService.
+ Hook up with Settings so per stream volume can be persisted across
multiple boots.
Bug: 27595951
Change-Id: I3a63e423d4e0a347215af65e79926212e4503d1b
(cherry picked from commit c4d442f4a0d3acf90b1c7a1dd7c222a8f32a193f)
15 files changed