Renamed various terms like, port, port_num to port_id, and
added a description that the id starts from 1.
Change-Id: I9229edff7fd75dd15e672e309369e237ca339238
Removes tx_status event type which turns out not in actual use.
This changes makes send_message() work in sychrnonous fashion
when called by HdmiControlService. HdmiControlService has io thread
dedicated to interact with HAL, hence no need to introduce
another async flow for HAL.
Change-Id: I8ae21b1149cd36bfd0f9da215c4f23b30f0c8d30
Added a few more API:
- is_connected
- get_port_info
- set_option
- set_audio_return_channel
Also added another event type (tx_status) that reports the status
of transmission. The status is reported in asynchronous fashion
since the send operation can take longer due to bus conflict.
Change-Id: I75decb8451a23f8a8eda0895d58f22c45227c0b3
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: I6a03b30cf90a8f6dca54831355be05682a6df96c
Inheritance of HAL object is performed by composing a child structure of a
single parent structure located at offset 0 followed by new data members
and function pointers in the child structure.
For example,
struct child {
struct parent common;
int a_data_member;
void (*a_method)(struct child *c, int v);
};
HAL code assumes this layout when accessing child structures given a pointer
to a parent structure such that users write code like the following...
void child_method(struct *parent, int v) {
struct child * c = (struct child*)parent;
// do stuff with c
}
Code above will break if a member is added before "common" in "struct child".
This change adds comments that describe the restriction on the location of
parent HAL objects within a derived HAL object. HAL objects that already
have comments that describe the required location of parent objects are not
modified.
Change-Id: Ibe4300275286ef275b2097534c84f1029d761d87
Previously it was HAL that was responsible for the logical address
allocation. The address allocation logic itself is based on the algorithm
specified in the CEC standard, is dependent neither on vendor nor
on hardware. This CL replaces the method 'allocate_logical_address',
'get_logical_address' with 'add_logical_address', so that the common
allocation logic will be implemented in the cec service and can be used by
all vendors without having them put the same logic in all HAL
implementations. HAL is supposed to be passed the allocated address
and use it to configure the chipset in this new definition.
The change in the service that implements the address allocation logic
will be done in a follow up CL.
Also removed the description in 'get_version' about version number.
It needs not be in the description since it is an implementation detail.
Change-Id: I33f31580792785bec38b7bd6997f91b89bfbb500
Also clarfieid the method description (allocate_logical_address),
update method signatures to use more appropriate type.
Change-Id: Ie5d13969308e77ca19b3dbde682ca968337ab41b
The new function allows the HDMI-CEC service to get the logical address
updated by HAL implementation.
Change-Id: I1a4c5f7b7773279091d5bd7c6971a8c9090a81ca
Additional parameter helps the caller avoid managing a static instance
variable. The parameter is used to pass the caller object itself.
Change-Id: I06cbcc7736031678f4638a0b5082d7b6a7ea51b6
Added here is the header file that defines HDMI-CEC HAL interface.
Its main purpose is to support major CEC features such as 'one touch
play', 'standby' for playback device. But basic skeleton for supporting
other kinds of devices(like TV) is also in place.
Change-Id: Iccbbec398bc675d69cb78ad6848ec57ac727cb8d