This is a rewrite of HdmiCecManager that exposes API for CEC Playback
device control. HdmiCecManager will be removed together with
HdmiCecService once the migration is completed.
Replaced direct access to CEC commands with the following 2 API:
- oneTouchPlay
- queryDisplayStatus
Each method requires communication with other device on CEC bus,
hence might take some time to finish. The result at the end of
protocol exchange is reported through a callback provided as a
parameter to the method.
The callback is based on interface not abstract class since
it has only one method 'onComplete'.
Change-Id: I41e9d4571f890303282a79a803c86530d0b46974
ARC, Audio Return Channel is newly introduced in HDMI CEC 1.4.
Here is a list of new command
<Initiate ARC>
<Report ARC Initiated>
<Report ARC Terminated>
<Request ARC Initiation>
<Request ARC Termination>
<Terminate ARC>
Along with it replaced <Get OSD Name> with <Give OSD Name>
which is renamed in CEC 1.4.
Change-Id: If4a7aedef839c8413a8e3b5f66f3df0c7234104b
* Also @hide/@deprecate a bunch of other keys
* Move some classes into android.hardware.camera2.params
Bug: 14628001
Change-Id: I2db490a0849680a133a901403477a147b004fb28
* Improve existing marshalers:
- each managed/native type combination can be queried marshal support
- marshalers can recursively call other marshalers for nested types
- support marshaling/unmarshaling generic classes by using super type tokens
* Add new marshalers for:
- ColorSpaceTransform
- MeteringRectangle
- Parcelable
- Range<T>
- ReprocessFormatsMap
- RggbChannelVector
- SizeF
- StreamConfiguration
- StreamConfigurationDuration
Batteries included; so are unit tests.
Bug: 14628001
Change-Id: I38d3e646ccfb3953898cd6f750c33e4097328482
When the device is in low power mode all changes to brightness will be
scaled to half of the brightness that would be normally set when not in
low power mode.
Change-Id: I03be820ef64c1d5631ded35f7dfc2799e807226b
Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Adds new types to public API:
* ColorSpaceTransform
* Range<T>
* SizeF (android.util)
* MeteringRectangle
Minor changes to:
* Size (docs and move to android.util)
* Preconditions (@hide)
Adds helper class:
* HashCodeHelpers
Change-Id: Ied6749a19234f3af9da838f365f8d68d90251aaf
Logical address in CEC is to distinguish each logical device from others.
In order to allocate logical address for new device, CEC sends
<Polling Message> to CEC bus. <Polling Message> is a CEC message
which has the same address for both source and destination without
body frame. (10bits).
CEC allows one and more logical address for a device type.
For example, there are 3 logical address defined for recorder device(1, 2, 9).
Among logical address candidates for the given device type, CEC scans
first the previous logical address (preferred logical address) of device.
If a device has not been allocated any logical address, preferred address
will be 15 (Unregistered), which means scan address from the minimum address
number of type. For example for recorder device, it starts from 1.
If no devices acks to the <Polling Message> during scan, it will be the
logical address of the device.
Since logical address is determined by a series of sending <Polling Message>
it happens in IO thread with separate allocate logical address message
instead of individual sendCommand message.
Along with this, updated ADDR_FREE_USE(14) to ADDR_SPECIFIC_USE(14)
which is revised name on HDMI 1.4.
Change-Id: Ic96dcdbe4aaa3789cfed0352a88ca75369335a98
In order to manage info of all cec devices connected hdmi bus,
HdmiCecController should have data structure for them.
This change includes two major pieces.
1. HdmiCecDeviceInfo
It's data structure containing basic device information such as
logical address, physicall address, device type and vendor id.
It will not be available to thirdparty but some system component
like TIF needs this to update device information connected to
its hdmi ports.
2. Managing device list in HdmiCecController.
HdmiCecController is a host to manage all CEC device.
and we need to have logic add or remove as well as get it.
All cec devices are managed as sparsearray which uses logical address as key.
This change introduces internal api and the later change will have logic
to call these apis.
Change-Id: Idc2f189ac0bffe904e011ced0ac991f16da07db1
Feature action (or action) is a unit of CEC command flow that accomplish
a certain feature. This CL introduces an abstract class FeatureAction,
and a concrete one NewDeviceAction that is used to obtain detailed
information on a new logical device on the CEC bus.
Change-Id: I94a7e75fbb76fe547f07f9588a93c7ea5a85d856
* The bug is caused by the fact that we did not update the frame
tracker when the listener is null or camera is closed.
* This change fixes the bug 14151933.
Bug: 14151933
Change-Id: I00e3024e403503a056834be805c44604cb1a8a6d
Previously, the surface that backs a virtual display had to be set
at the time when the display was created. This change now makes
it possible to set or remove the surface later. The virtual display
is treated as if it were "off" while no surface is attached to it.
Change-Id: Ib4fdbbb8b4ee79f0fb9ceb648f9bda4a8fa6a2ca
* commit '8ebd66c259602f6b0be26fdfd3fe2f55538f6424':
Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor
* commit 'cd4c1c714c37a1bc7ba35ebd2509eca4f0f6a314':
Add stringType and requiredPermissions to SensorManager.java, as well as a permission for the heart rate sensor