History log of /packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
0cd5b02d0b060f125db2ea188605d23484266da9 23-Apr-2018 Hongwei Wang <hwwang@google.com> Simulates car volume callback in legacy mode

CarAudioManager.registerVolumeChangeObserver is advised to be used in
bus based car audio stack only.

Bug: 78459131
Test: manually on emulator (turned into legacy mode audio)
Change-Id: Ia57d0cc8c2511513b3eb15b47d56e21f0b1505e4
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
1e7f55cff6d393e66965e17b59804d23ff9ab23b 27-Mar-2018 Hongwei Wang <hwwang@google.com> Construct default audio port config when creating audio patch

It's not trivial to get activeConfig for a device port unless we copy
the activeConfig from the mix port used to route to this particular
device. There can be more than one mix ports routed to the same device.

App is also given the privilege as to select the device port
configuration therefore there is guarantee the activeConfig from the mix
port is used for that device port.

In this change, we construct the source and sink config for an audio
patch with default values and it's up the audio HAL to pick the right
configuration.

We will update the go/aae-audio doc accordingly.

Other changes in this CL:

- Changes the getExternalSources as to return list of addresses
- CarAudioPatchHandle uses address instead of name
- Also does code cleanup.
- make update-car-api updates proguard-release.flags

Bug: 77147937
Test: releaseAudioPatch(createAudioPatch(<test-port>, <usage>, 0))
Change-Id: Ia30c2bfde8198546bfa9090882d424ca0ba14363
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
bd51582556b558a8d371f054743c10cd1fd370cf 01-Mar-2018 Hongwei Wang <hwwang@google.com> Adds callback interface to callout volume key events

Bug: 72864872
Test: run on emulator
Change-Id: I38796ac75b7ee38a7454b7a7071e8b864f7f3b63
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
2f5bb2aaae628de68e2aa755b30352a023a3c0fb 23-Feb-2018 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Revise CarVolumeGroup to syncrhonize gains"
dec25bcbd97a57879e9dd6fbda9d53a122dd1023 17-Feb-2018 Scott Randolph <randolphs@google.com> Revise CarVolumeGroup to syncrhonize gains

Move CarVolumeGroup to synchronize the gains of its constituent buses in
millibels rather than arbitrary index space. This allows for buses with
different min/max values, for example.
For now the mapping is strictly linear, but this code structure is
intended to allow for alternative group index to gain response curves in
the future.

Bug: 73791816
Test: TBD
Change-Id: I589d806bbeaec4bf679d7f5b5ae3b9e79ac34ea9
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
f8303547ca7059392214b6e18446a60353cb7376 20-Feb-2018 Hongwei Wang <hwwang@google.com> Adds api to get audio usage for a given volume group

Test: run Car Settings app on emulator
Change-Id: Ia37ec9f1b792751c457dccadb0d7e9ab9f327fde
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
33707a9d6e5beb03c5ae010e661035f820cc4bb8 12-Feb-2018 Hongwei Wang <hwwang@google.com> Switches volume control to groupId based

New APIs added
- getVolumeGroupForUsage(int)
- getGroup{Min,Max,}Volume(int)
- setGroupVolume(int)

Old APIs removed
- getUsage{Min,Max,}Volume
- setUsageVolume

Known issue
- No volume sliders in Mojave board since there is no volume group configured

Adds also the validation pass for volume groups configuration

Bug: 72555604
Test: run Car Settings in emulator

Change-Id: I2507a45f2771e26fedc5cfbdb017023fa3d67d46
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
9565e5f850d90b9f56a72b4ad94008a4f3c23c0d 02-Feb-2018 Hongwei Wang <hwwang@google.com> Volume grouping by car context

OEM can have their own overlay configuration

TODO
- Validate the car_volume_groups configuration
- Switch to CarVolumeGroup based volume control

Bug: 72555604
Test: run on Mojave
Change-Id: I50e5e8bd15bc9464c2520c619035d982ec9bd778
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
7aeff99ac51aac29b4dab67426a74b3b558fb4e4 31-Jan-2018 Hongwei Wang <hwwang@google.com> Persist the usage volume settings

The current volume index per usage is stored in Settings.Global.
A settings application written for a car would register ContentObserver
to receive callbacks and update the UI accordingly.

Bug: 72746096
Test: Tested w/ Car Settings App on emulator

Change-Id: If92277fdd6907e2d29fd8d97f5ef5ade3686517b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
46fdc86408a3b162d2d333be7c827c0776033664 25-Jan-2018 Hongwei Wang <hwwang@google.com> Remove the setVolumeController interface in Car

The IVolumeController interface is not compatible with the usage based
volume. Should add a separate interface if the functionality is truely
needed in a car with usage based volume. Otherwise, simply use the
setVolumeController in AudioManager instead of CarAudioManager.

Bug: 64448388
Test: None
Change-Id: Ie020624e2f6bd8b80eab4acf4ee2825055a93d8f
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
7b6b352046e10b06150b3a6d206eace85f1f8a8b 19-Jan-2018 Hongwei Wang <hwwang@google.com> Deprecates CAR_AUDIO_USAGE - part 2

- Establish the static mapping from AA.USAGE to car audio context
- Integrate with audio control HAL to map car audio context to physical
bus address
- Deprecate the audio_hw_variant

Bug: 72046976
Bug: 72219469
Test: lunch gcar_emu-x86 && m -j // Verify in Car Settings
Change-Id: If4983171ff0d03091977e1921307bf6dc0d7f56b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
a5a2b393e10feaa728ccad7fe3bb57a334152f7e 13-Jan-2018 Hongwei Wang <hwwang@google.com> Deprecates CAR_AUDIO_USAGE - part 1

Uses AudioAttributes.USAGE_ instead.
Deprecates also the CarAudioAttributesUtil utility class.

`make update-car-api` is used to update current.txt and
proguard-release.flags

What's next
- Establish the static mapping from AA.USAGE to car audio context
- Integrate with audio control HAL to map car audio context to physical
bus address
- Deprecate the audio_hw_variant

BUG: 72046976
Test: lunch gcar_emu-x86 && m -j // Verify in Car Settings
Change-Id: If152c4c3c3dc01f3595a1cf9ce8135996cd8cba6
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
fa50f42dc2f7f3319cb8d0e405f51e1944135673 05-Jan-2018 Scott Randolph <randolphs@google.com> Implement Car specific audio control APIs

Adds fade/balance control and audio patch management APIs

Bug: 33352354
Test: build mojave
Change-Id: I616bc6b7e0d3c023b9e57dc5213208e38e938b3b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
f0f1fad619c90782aa3830269b7b16efbd320ea7 15-Dec-2017 Hongwei Wang <hwwang@google.com> Cleanup CarAudioService - part 2

This is a continuous work of ag/3346133
- Removed audio focus APIs in CarAudioManager
- Prefer lambda
- Removed dead code

Bug: 70725845
Test: lunch gcar_emu_x86-userdebug && m -j // Verify in kitchensink
Change-Id: Ib92e922a4079e4242138fdd76b69ce87cf0d441b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
52d8f7d353c67d89f6a248a15fb893da8fdccbf6 16-Dec-2017 Hongwei Wang <hwwang@google.com> Revert "Revert "Cleanup the CarAudioService""

This reverts commit a2221aa0ff697ab66a3ba1ddc712ede48f4af6af.

Bug: 70725845
Change-Id: I513356244839ed245c2c145bcc861cdd21a310b3
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
a2221aa0ff697ab66a3ba1ddc712ede48f4af6af 16-Dec-2017 Kris Rambish <krisr@google.com> Revert "Cleanup the CarAudioService"

This reverts commit b07ec3505ec02300db76f8d715aa437953509675.

Reason for revert: Build breakage, apply the patch from 3373388 and re-submit.

Change-Id: Ie29c9ce3812788d963e410e40723eda7f6935c0d
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
b07ec3505ec02300db76f8d715aa437953509675 07-Dec-2017 Hongwei Wang <hwwang@google.com> Cleanup the CarAudioService

What's been cleaned:
- Focus management
- Media mute

Note also
- Tests on focus and mute/unmute are also removed
- currents.txt updated via "make update-car-api"

Test: lunch bat_land-userdebug && m -j // Verify in kitchensink

Change-Id: Iae981177e04b44267650e246f3d7792b5e143f01
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
06b7491acb228e361f013675df23afb7140aaf63 28-Nov-2017 Hongwei Wang <hwwang@google.com> Switch to use car audio usage based volume control in a car - part 1

What's next:
- Actually change the volume by usage

Changed also:
- Removed the master volume only support
- Removed the external memory support and Android should be source of
truth of volumes
- Removed the dead code

Known to be broken after this change:
- The volume popup after volume key events won't show b/28469751
- Volume change is a no-op and we are going to use gain control instead
of letting AudioFlinger does that in software mixer

Note:
- Tests are removed since we are in the middle of refactoring and it
requires tremendous work to maintain the tests in the meantime. Tests
would be added after the refactoring is done
- API files are updated via "make update-car-api"

Bug: 65751827
Bug: 32091839
Test: lunch bat_land-userdebug && m -j // Then verify in kitchensink
Change-Id: I59db9f059450f8bf673b46dd620703ced842a4ef
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
962ba77e2b928466dd7a4652bc468127adb871a0 04-Aug-2017 Scott Randolph <randolphs@google.com> Add RINGTONE

Test: wip
Change-Id: Ifa560fdd2b4a4e3c17deadcd9cc0dd4769c90274
Bug: 64729839
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
b1ddae96756a97006f8a7f4a323fe2538289dcb6 06-Jul-2017 Scott Randolph <randolphs@google.com> Fix tiny typos in comments

Test: Trivial inspection
Change-Id: Id20ac38ed3c8df661580a0cf2c3237f82a0372a5
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
fe1a8f14e1ac56f095d29336e0986950d8adfc0c 18-Jan-2017 Keun-young Park <keunyoung@google.com> add audio parameter API

- allow setting / getting audio parameters with subscription
for change.
- available parameters are checked for both get / set calls.
apps should only pass supported parameters.
- needs AUDIO_SETTINGS permission to use them.

bug: 32371653
Test: added CarAudioManagerTest

Change-Id: I6b40080f200c50d4f9fc57bca8651797f2744dc3
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
150d8de43e71a624106e90bcc04067414c42ef18 08-Oct-2016 Keun-young Park <keunyoung@google.com> CarNotConnectedException cleanup

- any action which can fail without car connection all throws
CarNotConnectedException including methods which do not
throw now.
- drop exceptions from all tearing down methods like stop / release
unregister / abandon.

bug: 31930987
Change-Id: Ib63866488575def288e7af1c8350d92423262862
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
141349407981da8a88f61c0b906240a1c3603ef7 06-Oct-2016 Keun-young Park <keunyoung@google.com> car api review

- more RestrictTo
- some interface to abstract class
: CarNavigationStatusManager, CarAudioRecord
- hide some utility APIs
- more type annotation

bug: 31930987

Change-Id: I60e230d8fce7258c8a533c45cf0820b01b29322b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
4cf6911619b9fe6ffeba7afeb05299aab165f184 04-Oct-2016 Keun-young Park <keunyoung@google.com> add final to Car*Managers

bug: 31930987
Change-Id: I09532056444f2ff1fef80d55023c425b909f406a
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
d72b53500006e84b0c69e650878267c693c164a3 23-Sep-2016 Jason Tholstrup <jthol@google.com> Many API council fixes.

bug: 31913591
Change-Id: I3a0f9a57ecdccdae6c0b3b98b5bbf9b31733933b
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
4c6834a27ccbcf42cbeef43059751752baf80ac3 28-Jun-2016 Keun-young Park <keunyoung@google.com> add external audio routing support

- external audio routing is done via audio focus request
- add hidden CarAudioManager API for apps to request audio focus
for external audio source: will be left hidden until it is good
to go as public or system api
- add test to confirm external routing

bug: 29601910
Change-Id: I33600a6f53b0854cd3b55663a8be6987ac20413a
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
3cb891017933140b613cfaf5b8422c112c0f32dc 05-May-2016 Keun-young Park <keunyoung@google.com> add CarAudioManager.mute

- radio can be also muted by this.
- muting will also make new focus request, so client
requesting mute can also lose focus (LOSS_TRANSIENT) if it is
holding focus.
- For muting, muting request will be sen to vehicle hal.

- also fixed some bugs:
- handle IllegalArgumentException for focus request as this can happen
when mocked test ends
- fixed wrong addition of second context when focus loss is from car

bug: 28615094
Change-Id: I80b1c07305cad857763011711b7954ac5625fb64
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
c4d442f4a0d3acf90b1c7a1dd7c222a8f32a193f 08-Apr-2016 Yao Chen <yaochen@google.com> 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
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
e4c731ea3ed22615783efb02818b0b3d184bba33 15-Mar-2016 Jason Tholstrup <jthol@google.com> Car support lib changes for shared support lib

- remove IBinder from onServiceConnected
- Add CarNotConnected exceptions to android.car.support methods
- various type cleanup

bug: 27679766

Change-Id: I58335da8296ec83ad2d6ffe76ba18d54ea8563a0
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
07d4a2d544b2d31e1dfd1dc680424d0919d55580 15-Mar-2016 Jason Tholstrup <jthol@google.com> Revert "Updates to the car-support-lib in support of projected."

This reverts commit 0d3b6b2cefae2927343cb4f80c9ebac628276ea7.

Change-Id: I764758d9fd1ffa64b88cb9a2bdffd60a8924623c
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
0d3b6b2cefae2927343cb4f80c9ebac628276ea7 11-Mar-2016 Jason Tholstrup <jthol@google.com> Updates to the car-support-lib in support of projected.

Change-Id: I4a4d34de7453bb979831b53fbce6f24bad2f9884
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
6f3f402a7469e300fbfe65d950204fef995d4d8d 01-Mar-2016 Vitalii Tomkiv <vitalit@google.com> Add requestAudioFocus and abandonAudioFocus to CarAutioManager.

This allows to expose hidden api from AudioManager.
Bug: 19730682
Change-Id: I9c4a2cef2ba53a9ca06cf1a50336c11183334bc0
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java
e54ac276796c6535558f8444d882adecd19ce2bd 17-Feb-2016 Keun-young Park <keunyoung@google.com> add android.car

- instead of using binder as compatibility layer, add android.car
- apps using android.car should add it to LOCAL_JAVA_LIBRARIES
unless doing include
packages/services/Car/car-support-lib/car-support.mk

- support lib renamed to android.support.car
- UI stuffs only exist in android.support.car
UI has dependency on androud support library and not added to
android.car

- permission only uses android.car namespace even for support.car

- car-systemtest remains as static library. To use CarTestManager,
test app should get CarTestManagerBinderWrapper then create
CarTestManager.

bug: 27199752
Change-Id: I3522e11e958dade404443fbe2d45f576c827fa7a
/packages/services/Car/car-lib/src/android/car/media/CarAudioManager.java