Similar to IBluetooth and IBluetoothA2dp interfaces,
IBluetoothLe controls the LE profile. This interface
replaces the following string parameter:
"LeAudioSuspended"
Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I9df28053cd270fc2d446ba9a8ada4dd6ab761c7b
Merged-In: I9df28053cd270fc2d446ba9a8ada4dd6ab761c7b
Similar to IBluetooth interface which controls SCO/HFP,
IBluetoothA2dp controls the A2DP profile. This interface
replaces the following string parameters:
AUDIO_PARAMETER_A2DP_RECONFIG_SUPPORTED
AUDIO_PARAMETER_RECONFIG_A2DP
"A2dpSuspended"
Also, refactor fields used by Module implementation
for persistent child interfaces.
Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ie62952c3bc3af2f53535d716e5b57bf48c661306
Merged-In: Ie62952c3bc3af2f53535d716e5b57bf48c661306
AudioOffloadMetadata contains the same information
as 'AUDIO_OFFLOAD_CODEC_*' framework parameters.
It is updated via a new method IStreamOut.updateOffloadMetadata
which only works for compressed offload streams.
Bug: 270731693
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I6c8a8853f216438284082f79e3f57e511a2a1f06
Merged-In: I6c8a8853f216438284082f79e3f57e511a2a1f06
These parcelables are also used by the framework.
Bug: 263964254
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ib30b69c325040e474fb58a8e7e515912fccab4c7
Merged-In: Ib30b69c325040e474fb58a8e7e515912fccab4c7
I missed that there is already android.media.audio.common.AudioMode.
However, due to use by the framework, it contains more values
(all of them are SYS_RESERVED), thus the implementation and VTS
have to be updated as well.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: If260413b1f774a69514de978792d5ad2eb46481a
Merged-In: If260413b1f774a69514de978792d5ad2eb46481a
This interface corresponds to BT-specific functions
of the IPrimaryDevice in the HIDL HAL.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I5f52d65e06f42e1a5fb2e51d27b79e94fe423eaa
This refactoring is fixing the hal_implementation_test workaround from
aosp/2363076. Adjusted the package name to match the aidl_interface and
declared the ISoundDose interface types only.
Test: VtsHalSoundDoseFactoryTargetTest, VtsHalAudioCoreTargetTest,
hal_implementation_test
Bug: 263388737
Change-Id: Ibce4cd95aaf600de2096179f137243939114ba6a
Merged-In: Ibce4cd95aaf600de2096179f137243939114ba6a
Add the following methods to IStreamOut:
- get/setAudioDescriptionMixLevel;
- get/setDualMonoMode;
- getRecommendedLatencyModes/setLatencyMode;
- get/setPlaybackRateParameters;
- selectPresentation.
Add IStreamOutEventCallback interface for async notifications
of the client about playback-related events. This callback
can be provided to IModule.openOutputStream.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I8974102d232cdd121a53edccbf26c33778a94e5e
The new HAL is running as part of the HIDL audio HAL process. It is
meant as a workaround for HAL implementors that can not switch to the
audio AIDL yet and need to certify with IEC62368-1 3rd edition or
EN50332-3. Note that this HAL will be deprecated in the future.
Test: atest VtsHalSoundDoseFactoryTargetTest & flash bluejay-userdebug
Bug: 257937004
Change-Id: Ifbbf235bab58c1ee2f1ea246cf98c9e8966893c0
Introduce IStreamCommon which contains methods that apply
both to input and output streams. Move the 'close' method
to it. Add 'IStreamIn/Out.getStreamCommon' method to retrieve
the common interface.
Add methods for dealing with HW AV Sync and vendor parameters.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: Ie1a7b32e28425f5398afc95192fcbc5403b5c332
The interface is used to configure the sound dose parameters and
retrieve new changes that can affect the dose. Used for the
certification with IEC62368-1 3rd edition.
Test: TODO
Bug: 257937004
Change-Id: Id2816580fdbfbf09c2278720b4d78d0b3604fbf4
Merged-In: Id2816580fdbfbf09c2278720b4d78d0b3604fbf4
(cherry picked from commit 10905ef92e)
Makes it easier to see which versions are available.
Bug: 188871598
Test: N/A
Change-Id: Iec656df1d0008d95ab50f9bd8806517b95242f00
Merged-In: Ica76a8225fec8dc5267362cbfd43e06e65ad3f1e
Add queryEffect for effect libraries.
Change Descriptor in each effect implementation to be static so
extern C function can access.
Bug: 261646550
Test: atest VtsHalAudioEffectTargetTest
Change-Id: Id7badec592becf37b27be6022106f443e5976880
Add 'MicrophoneInfo' and 'MicrophoneDynamicInfo' parcelables.
Add IModule.getMicrophones method.
Add following methods to IStreamIn:
- getActiveMicrophonesIds;
- get/setMicrophoneDirection;
- get/setMicrophoneFieldDimension.
Provide trivial implementations and VTS.
Also slightly refactor port retrieval from ModuleConfig
to unify common queries.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I472c7733e2a331a67cea613cd9218889eff06a43
Introduce IStreamCallback interface for non-blocking I/O. Add 2
new stream states: TRANSFERRING and TRANSFER_PAUSED, and define
state machines for the async case. Add DrainMode as in previous
HAL versions.
Note that non-blocking input is not fully implemented because it
did not exist in previous HAL versions, and the corresponding
AudioInputFlag does not exist yet.
Enhance VTS state machine tests to allow waiting for an async
event.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I0a18a6d930dee5941f769e08083817d41ff941e6
Add the following methods to IModule:
- getTelephony;
- get/setMasterMute;
- get/setMasterVolume;
- get/setMicMute;
- updateAudioMode;
- updateScreenRotation;
- updateScreenState;
The "update..." methods are "informational," the HAL may ignore
them and must not raise any errors.
ITelephony currently contains 2 methods:
- getSupportedAudioModes;
- switchAudioMode.
This "switchAudioMode" must validate the argument, and must
switch the HAL to the new mode synchronously.
Implement and add VTS tests.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I9174c81fe7d16f7068257051ae5e129b15e82648
There are still issues with importing implicit versions. Switching to explicit versions while b/188871598 is worked out.
Bug: 242678729
Test: m; AIDL_TRANSITIVE_FREEZE=true m aidl-freeze-api && AIDL_FROZEN_REL=true m
Merged-In: Ide6a90716bf042fbb925357e110bc84ddb9e96fb
Change-Id: Ide6a90716bf042fbb925357e110bc84ddb9e96fb
(cherry picked from commit 8296aa824b)
This requires a version bump to android.media.audio.common.types.
cc_defaults and java_defaults are used in order to avoid explicitly updating version references in several Android.bp files when we do future version bumps.
Bug: 242678729
Test: m
Merged-In: Id17820f210f625e370992db4f9f85e37887b088b
Change-Id: Id17820f210f625e370992db4f9f85e37887b088b
(cherry picked from commit bf94fa32cb)
Replace 'platform_apis: true' with 'sdk_version: module_current'.
The former causes compiling against SDK source code,
this is not needed for the audio HAL.
Bug: 205884982
Test: m android.hardware.audio.service-aidl.example
Change-Id: I9b9c32707ac7276f5cd077681bd1f8122bc20feb
Merged-In: I9b9c32707ac7276f5cd077681bd1f8122bc20feb
(cherry picked from commit 714e959c89)
This patch adds necessary structures and prepares for implementing
data flow for audio I/O.
Also in this patch we clarify the relationship between audio patches
and buffer size for audio I/O, and between buffer size and latency.
Bug: 205884982
Bug: 233816848
Test: atest VtsHalAudioCoreTargetTest
Merged-In: I8522632607d4cf50a112225c19b5dd5ad8848591
Change-Id: I8522632607d4cf50a112225c19b5dd5ad8848591
(cherry picked from commit 68bee70442)
* changes:
audio: Add support for compressed offload
audio: Improve debug logging in the AIDL version, fix bugs
audio: Disable the C++ backend for android.hardware.audio.core
android.hardware.audio.core will need to use FMQ,
which does not support the C++ backend in the AIDL version.
Migrate VTS tests from the C++ backend to the NDK backend.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: Ia5d29126afdb4bb97dd063a032b96ab83b9ce36e
Change-Id: Ia5d29126afdb4bb97dd063a032b96ab83b9ce36e
(cherry picked from commit 8fcc442416)
Add methods 'IModule.connect/disconnectExternalDevice' which inform
audio HAL about connection / disconnection of an external
non-attached device. Add method 'getAudioRoutesForPort' to
retrieve only routes that include the specified port.
Update the behavior of 'getAudioPorts' and 'getAudioRoutes'
indicating that the result may change due to instantiation
of new device ports for connected external devices.
Clarify behavior of 'IModule.setAudioPortConfig' that it can not
work with device ports with no profiles.
Add debug flags structure 'ModuleDebug' and method
'IModule.setModuleDebug' to control the debugging aspects. VTS
tests use these flags to test HAL behavior which would otherwise
require human intervention.
Update the default implementation and VTS for the AIDL changes.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: Iad5f7009e283729206f88b6278c8992f7f8a92a2
Change-Id: Iad5f7009e283729206f88b6278c8992f7f8a92a2
... for the same reason as cc489264af
Bug: 225941299
Test: m
Merged-In: I269d61c8c441b3db0832f5450f5e5a84a5989a99
Change-Id: I269d61c8c441b3db0832f5450f5e5a84a5989a99
(cherry picked from commit 446519a370)
Background:
android.hardware.audio.common was frozen in the upstream tm-dev.
Previously, the interface had only V1 (as the in-development version)
and it was in the VNDK. However, after the freeze, it will have V1 and
V2, and only V1 will remain in the VNDK, because we can't have multiple
versions of the same AIDL interface in VNDK (it's just waste of memory).
android.hardware.audio.core is a new AIDL interface that doesn't exist
in TM. It is also a member of VNDK and imports the audio.common
interface. So far, the import has been done without an explicit version
number (i.e. `imports: ["android.hardware.audio.common"]`). As a result,
V1 was imported before the freeze, and V2 (the latest) will be imported
after the freeze.
Problem:
audio.core depending on audio.common-V2 is NOT allowed since the former
is a member of VNDK, but the latter isn't. VNDK should form a closure.
We are actually hitting this:
```
> error: hardware/interfaces/audio/aidl/Android.bp:71:1: module
"android.hardware.audio.core-V1-ndk" variant
"android_vendor.Tiramisu_arm64_armv8-a_static" (created by module
"android.hardware.audio.core-V1-ndk-generator" (created by module
"android.hardware.audio.core_interface")): (native:vendor:vndk) should
not link to "android.hardware.audio.common-V2-ndk" (native:vendor):
VNDK-core must only depend on VNDK-core or VNDK-SP
```
To fix this, make the dependency to audio.common to be explicit about
the version. This change can't be uploaded to tm-dev as audio.core
doesn't exist there, and must be submitted before the AIDL APIs are
frozen there.
Bug: 225941299
Test: m
Merged-In: Iadc96d558d5c7431b0a2b0cbd28b99319a24ee44
Change-Id: Iadc96d558d5c7431b0a2b0cbd28b99319a24ee44
(cherry picked from commit cc489264af)
This adds basic support for enumerating capabilities
of an audio module, creation of patches, and opening of
I/O streams.
Bug: 205884982
Test: atest VtsHalAudioCoreTargetTest
Merged-In: Ib1ef13c95d338b6ef1bde7d87dcd675fc1d35e85
Change-Id: Ib1ef13c95d338b6ef1bde7d87dcd675fc1d35e85
(cherry picked from commit ee27478264)
Some are still in VNDK because they are used in other VNDK libs.
Ignore-AOSP-First: some libs are still in internal master only.
Bug: 234181591
Test: m
Merged-In: If999df9c78a20df931177da11742b1c5de19bc08
Change-Id: If999df9c78a20df931177da11742b1c5de19bc08
(cherry picked from commit 5527adfd7f)
As part of the AIDL API freeze for TM, the V1 of
android.media.autio.common.types was frozen. As a result,
unversioned reference to the interface now refers to the V2
of the interface, yet to be frozen. This causes ODR violation
where V1 and V2 of the interfaces are both used in the
platform.
To fix that, replaced the unversioned reference explicitly
with the reference to V1.
Bug: 225941299
Test: m
Change-Id: I8c57c730bebfe88b182d42a4bb8acea32ac4aee8