* This allow VTS to test tetheroffload hal against all service
implmentations registered with different service name.
Bug: 64203181
Test: make vts
vts-tradefed run vts -m VtsHalTetherOffloadConfigV1_0Target
vts-tradefed run vts -m VtsHalTetherOffloadControlV1_0Target
Change-Id: I0b4f3cf4abd3ffbd15cef7c2126ce6252a65a28e
It used BOARD_SEPOLICY_VERS as a workaround, which is incorrect.
Test: m framework_compatibility_matrix.xml -j
Bug: 67920434
Change-Id: I029edd2f573740af272f8b767bb1ec5cc1dc0415
* 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
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
Return audio quality information during a voice call along with call
details from RIL. This information is expected to be used to display
HD audio indicator when wide band speech codec is notified.
This feature is necessary to fulfill some carriers requirement.
Test: manual - Checked that HD audio indicator is displayed on UI in
GSM/CDMA calls.
Bug: 30207043
Change-Id: Ic6518b7b5c37c4b9cfcd83bd0c5b836acd3f60da