Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Source video from HDMI input

Design Details

Image Added

Application API Specification

...

The Driver Component access the HDMI-CEC SoC Driver via the CEC HAL API. The vendors are responsible in delivering a SoC Driver that conforms to the HAL API (see the header file hdmi_cec_driver.h)

HDMI-CEC Applications

The relation between Application, Connection and CEC-Bus is described in the figure.

Image Added

CEC Daemon

  • This daemon receives Raw Bytes from the SoC Driver and dispatches them into IARM Bus via CecIARMMgr, it also receives Raw Bytes from IARM Bus and send to the SoC Driver. It controls the only access point to the physical HDMI CEC Bus.

Receiver

  • This application receives Raw Bytes from IARM Bus and dispatch to Service Manager (which in turn may dispatch the bytes to Guide Application)

...

  • . It also receives Raw bytes from Service Manager and send to the IARM-Bus.

CECDevMgr

  • This application is a "sniffer" on the CEC Bus. It monitors all messages on the bus and construct a Device Map, which depicts the topology of all connected devices on the CEC Bus. Other applications can be developed similar to Receiver or CECDevMgr where the CEC Raw bytes (in form of CECFrame) are send/receive to/from IARM Bus. This pseudo CEC Driver implemented on IARM Bus is called CEC IARM Adapter in the diagram.

Design Details

...

Methods

NameParametersDescription
setEnabledenabled : booleanEnables or disables CEC
getEnablednoneReturns true if CEC is enabled
setNamename : stringSets the name of the STB device.  The default name is "STB".  It is recommended that the name of the device is set prior to enabling CEC.
getNamenoneReturns the name of the STB device
sendMessage

message : String

The message is a base64 encoded byte array of the raw CEC bytes.  The CEC message includes the device ID for the intended destination.

getCECAddressesnone

return the JSON object <CECAddresses> that is assigned to the local device. It does not contain the <CECAddresses> of other devices on the connected CEC network.

"CECAddresses" : {
"physicalAddress": Array of 4 bytes [byte0, byte1, byte2, byte3],
"logicalAddresses" : Array of <CECLogicalAddress>
}
"CECLogicalAddress" : {
"deviceType" : <string>
"logicalAddress": <integer>
}

The deviceType returned is part or all of devices types optionally set by XRE.

A CEC device can have multiple deviceTypes, if so an array of <CECLogicalAddress> with size more than one is returned.

Default deviceType is Tuner, and its logical Address is either 3, 6, 7, or 10.

In messages sent by XRE, XRE can only use the logicalAddress returned from CECAddresses.

Accepted deviceType are: "Tuner", "Record", "Playback", "AudioSystem", "VideoProcessor", "Switch"

...