Better include path (#include <mapper-vts/2.0/MapperVts.h>), better
library naming, and move GraphicsMapperHidlEnvironment to where
tests are defined.
Test: VTS
Change-Id: I9fbf6515993ac11852b11ca6b8194a58afe5579a
* changes:
Audio V4: More fixes of the audio 2.0 API
Audio V4: Support query microphones information
Audio V4: Only expose one notification usage
Audio V4: Add new api in XSD
Audio V4: Copy audio_policy_configure.xsd 2.0 to 4.0
Audio V4: Forward tracks attributes to the hal
Audio V4: Remove deprecated function and enum
Audio V4: bitfield enum now use the bitfield class
Audio V4: Add MSD formats and Device
Audio V4: Add new Audio HAL API
Audio V4: Remove all non extensible enum value
Audio V4: Fix doc comments for hidl-doc
Audio V4: Fix documentation and useable/untestable bugs
Audio V4: Copy 2.0 .hal files in 4.0
Run update-makefiles.sh to create all HAL makefiles.
Test: update-makefiles.sh
Bug: 38184704
Change-Id: I2532c4b9d1f0f6252ceaffbfb0c5d0a615400c72
Signed-off-by: Kevin Rocard <krocard@google.com>
Remove unnecessary Result typedef.
Make bufferSizeFrames and burstSizeFrames unsigned
as they should not be negative.
Remove legacy AudioInterleave.
Remove implicit callflow annotation.
Make EffectConfigParameters a bitfield.
Bug: 38184704
Test: hardware/interfaces/update-makefiles.py
Change-Id: I33e6f7869d20ca0cad4123f32347754e5a514caa
Signed-off-by: Kevin Rocard <krocard@google.com>
Get list of all/currently active microphones from hardware.
Part of the device enumeration feature.
Bug: 64038649
Test: test/vts-testcase/hal/script/update_makefiles.py
Change-Id: I08051f1d6013672dea8f3866776864e87ff35297
Rebased for 4.0 by:
Signed-off-by: Kevin Rocard <krocard@google.com>
Originally written by:
Signed-off-by: Ricardo Garcia <rago@google.com>
Too many usages detail were previously exposed to the HAL.
All usages that should be handled identically by the HAL
are now the same value.
- All notification types are now the same usages
Test: build
Bug: 38184704
Change-Id: I2096f995e249ab02bc29449c6d1a65b521dc13f7
Signed-off-by: Kevin Rocard <krocard@google.com>
Allow multiple concurrent opened profiles.
Allow mixPort to declare their preferred usage.
Allow to declare the default devicePort for a device type.
Bug: 38184704
Test: xmllint --noout --schema hardware/interfaces/audio/4.0/config/audio_policy_configuration.xsd --xinclude out/target/product/taimen/vendor/etc/audio_policy_configuration.xml
Change-Id: If2afd9e83f8b023e6229496759dc525497af8d72
Signed-off-by: Kevin Rocard <krocard@google.com>
That will make it easier to review the changes between 2.0 and 4.0.
Bug: 38184704
Test: none
Change-Id: Icb36a5b6e74ad89fb05dfe3ceee7b7f81801918d
Signed-off-by: Kevin Rocard <krocard@google.com>
Forward to the HAL the audio usage, audio content types and volume
of playback tracks to the stream out they are playing to.
Forward to the HAL the audio source and volume of record tracks
to the stream in they are playing to.
This will allow the HAL to better tune its effects and remove the need
to inject a fake effect (volume listener) to get the tracks volume.
Bug: 38184704
Test: none
Change-Id: Iede0f7aa518608c3b3ce1497f059f672aac109b2
Signed-off-by: Kevin Rocard <krocard@google.com>
The debugDump function was deprecated by the introduction of the
debug method in the IBase.
AudioMode CURRENT and INVALID should not be passed to the
vendor.
Bug: 38184704
Test: none
Change-Id: I0e14c71ce7216524587a6ba28cae0cdb821bae23
Signed-off-by: Kevin Rocard <krocard@google.com>
The audio HAL has lots of enums were each value is a specific bit
pattern (usually a single bit) and are expected to be used as a
combination of value (kind of like a bitfield).
Nevertheless the 2.0 methods only had the enums themselves in their
signatures which leads the HIDL API checkers to warn that invalid values
were passed.
Currently, there are no way to express a value which is a combination
of enum values. The closest thing is the bitfield type.
Thus transition all enums combination to bitfield.
Note that AudioDevice as NOT been transition systematically
as both the enums and the combination are meaningful:
- the enum is one device
- the combination is a list of device.
Test: none
Bug: 38184704
Change-Id: I155cf7bc5d88fc5cf8954903d55aa8d7ca458a4b
Signed-off-by: Kevin Rocard <krocard@google.com>
* changes:
graphics: move libVtsHalGraphicsMapperTestUtils
graphics: make mapper default impl a header library
graphics: add mapper HAL support library
graphics: make allocator passthrough library header-only
Adds factoryReset(). This must be used by the HAL to clear the chip and
use the do a full initialization at the next init.
Adds closeForPowerOffCase(). There are vendor specific
configurations that are need during NFC power off to enable low battery
and power off use cases. This will distinguish cases where the user
turns NFC off because they do not want to use NFC and NFC is turned off
as a result of device switched off.
HCI_NETWORK_RESET event has been added to indicate something went wrong
on the firmware level and HCI network needs to be re-initialized.
Bug: 70294869
Bug: 70294551
Test: Run VtsHalNfcV1_1TargetTest
Change-Id: Ib981a56ac94e06b74bd901a159791f09ea16483a
Add MAT 1.0, 2.0, 2.1 audio formats
Add 5.1.2, 5.1.4, 7.1.2, 7.1.4 output channel masks
Add E_AC3_JOC audio format
Add MSD Device to allow an MSD HAL implementation separated from the
primary.
Bug: 38184704
Test: none
Change-Id: I2f488462614114e4c82149460b030585981ae15e
Original author:
Signed-off-by: Dean Wheatley <dwhea@dolby.com>
Ported to HAL 4.0:
Signed-off-by: Kevin Rocard <krocard@google.com>
Add new device to the device factory to allow vendors to split
their HAL implementations more.
AudioDevice bitfield is now 64bit to allow more devices to be added.
Add a new AudioDevice to support playing music to distant during voice
call.
A HAL can now declare if its MMAP buffer can be securely accessed
directly by untrusted apps.
Add AAC_XHE format.
Add BLE input source.
Bug: 38184704
Test: none
Change-Id: Ic2fbec4db71c7f688c8847ba39c72f51480c0727
Signed-off-by: Kevin Rocard <krocard@google.com>
The CNT, MAX enum values had two drawbacks:
- they were invalid enum value that were part of the enum
thus enum validity check would validate them although those values
are only expected to be use in loops/validation code.
- they are not extensible by vendors
The *_ALL enum values were not extensible by vendors.
Those values can instead be replaced by treble enum iterator and
helper functions.
Bug: 38184704
Test: none
Change-Id: I1a9527bb7311088e0abe22eceee92d21d9171ca4
Signed-off-by: Kevin Rocard <krocard@google.com>
hidl-doc does not support two consecutive documentation comments
/** ... */
/** ... */
In such case make the first one a non-doc comment.
This is a port of: http://android-review.googlesource.com/432140
Bug: 38184704
Test: none
Change-Id: I86cb10c655036ca49055ee007813c3e5af743eb5
Signed-off-by: Kevin Rocard <krocard@google.com>
Add missing documentation, especially for failure cases
and methods that are optional.
Add missing operation status for testability.
Add format for getSupported* methods as they could not
be implemented in 2.0 for multi-format stream (HDMI).
Test: compile
Bug: 38184704
Change-Id: I14ee5e02ef70a82df6de732f88b065810e9b032f
Signed-off-by: Kevin Rocard <krocard@google.com>
Move libVtsHalGraphicsMapperTestUtils from 2.0/vts/functional/ to
2.0/utils/vts/. Run clang-format.
Test: VTS
Change-Id: I1e87129cbdc12167160f7e2f1cd76478e88bbf41
Reimplement the default impl as a header-only library,
android.hardware.graphics.mapper@2.0-passthrough, based on the HAL
support library.
Effectively, this renames Gralloc[01]Mapper to Gralloc[01]Hal, and
make adjustments here and there to meet the requirements of the HAL
support library. This also adds GrallocLoader to load either of
Gralloc[01]Hal and create an IMapper instance.
libgrallocmapperincludes is renamed to follow the new naming and
include path conventions.
Test: boots and VTS
Change-Id: I924cadce9a10a6e544f99ceba63aadc38ec431ac
Add a header-only support library
android.hardware.graphics.mapper@2.0-hal that can be used by
implementations. There are two classes in the support library.
MapperHal is an abstract class to be implemented by implementations.
Mapper is an implementation of HIDL IMapper interface on top of
MapperHal.
An implementation can
class VendorHal : public MapperHal { ... };
auto mapper = std::make_unique<Mapper>();
mapper->init(std::make_unique<VendorHal>(...));
Or, if vendor extensions are to be added to the IMapper,
class MapperHalExt : public MapperHal { ... };
class VendorHal : public MapperHalExt { ... };
class MapperExt : public MapperImpl<IMapperExt, MapperHalExt> { ... };
auto mapper = std::make_unique<MapperExt>();
mapper->init(std::make_unique<VendorHal>(...));
Test: builds
Change-Id: Ib23c1f5977744f7e116bb93db53e882e2dad7ce3
android.hardware.graphics.allocator@2.0-passthrough should be a
header-only library to be fully reusable by vendor HALs.
This also allows us to switch from virtual inheritance to templates,
which is more straightforward. This changes nothing to the users
and we still have these relations
- AllocatorHal is an abstract class to be implemented by vendors or
the default implementations
- Gralloc[01]Hal are our default implementations
- Allocator implements HIDL IAllocator interface on top of
AllocatorHal
What we do not like about virtual inheritance is that, given
// abstract class B and D
class B {
virtual void foo() = 0;
virtual void bar() = 0;
};
class D : public virtual B {
// foo is superceded by fooEnhanced in D
void foo() { fooEnhanced(); }
virtual void fooEnhanced() = 0;
};
// an implementation of B
class BImpl : public virtual B {
void foo() {}
void bar() {}
};
// an implementation of D on top of BImpl
class DImpl : public virtual D, public virtual BImpl {
void fooEnhanced() {}
};
we get "no unique final overrider" becase both D and BImpl implement
foo. With non-virtual inheritance, on the other hand, we get "DImpl
is abstract" because foo is still pure virtual implemented in DImpl.
Templates solve the issue by allowing
namespace detail{
template<typename T>
class BImpl : public T { ... };
template<typename T>
class DImpl : public BImpl<T> { ... };
} // namespace detail
using BImpl = detail::BImpl<B>;
using DImpl = detail::DImpl<D>;
Test: boots
Change-Id: Iccb513e4fc751e9a687a1ed2d9fb2192c8324a50
That will ease review of the changes.
The only changes are:
- replace all @2.0 by 4.0
$ sed -i 's/@2\.0/@4\.0/g' */4.0/*.hal
- replace all licence 2016 by 2018
$ sed -i 's/2016/2018/g' */4.0/*.hal
Moving the .hal in a subfolder forces the package name and the
namespace to change.
This mean that the audio HAL 2.0 and 4.0 will not be consider
different version of the same HAL but two different HALs.
As a result to minimize code change due to tight deadline,
keep the 4.0 core in the audio folder.
Bug: 38184704
Test: hardware/interfaces/update-makefiles.sh
Change-Id: I7c7a826270c9933091f037b795806787e1284583
Signed-off-by: Kevin Rocard <krocard@google.com>