RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
draw.io Diagram | ||||
---|---|---|---|---|
|
Profiles | Description |
Discovery | Discover HDMI devices that support CEC and provide settop information to those devices |
Power | Synchronize settop power state with HDMI device power state |
Switching | Switch settop HDMI inputs to settop HDMI outputs |
Channel Change | Change channel on settop from HDMI device |
Audio | Control audio mute/volume on HDMI device from settop and vice versa |
User Input | Accept user input commands from HDMI device |
...
draw.io Diagram | ||||
---|---|---|---|---|
|
...
draw.io Diagram | ||||
---|---|---|---|---|
|
The Host interface allows libCEC implementation to interact with the host environment. Such interaction includes monitoring of the Power State change, the HDMI HotPlug events, or API to change the Host State. The Host Interface is delivered as a run-time plugin to the libCEC stack. This allows the CEC stack to run in any devices that implements the Host Interface.
...
The relation between Application, Connection and CEC-Bus is described in the figure.
draw.io Diagram | ||||
---|---|---|---|---|
|
CEC Daemon
...
In essence, there is only one physical CEC bus on a system. However, with the help of Connection, Logical CEC-Bus, and IARM-Bus, the CEC library can converge the CEC traffic from different Connections and Logical Buses before forwarding them to the single physical bus. This is illustrated by the diagram below.
draw.io Diagram | ||||
---|---|---|---|---|
|
In this diagram there are two applications (Receiver and CECDevMgr). Since both applications can only access the underlying physical CEC Bus via Connection API, they have no knowledge how the message are eventually delivered to the Physical Bus.
...
The message flow on Connections and Logical Buses are full duplex.
Following methods are used for DMI CEC module.
Name | Parameters | Description |
---|---|---|
setEnabled | enabled : boolean | Enables or disables CEC |
getEnabled | none | Returns true if CEC is enabled |
setName | name : string | Sets 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. |
getName | none | Returns 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. |
getCECAddresses | none | 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" : { "CECLogicalAddress" : { 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" |
Events notification:
Name | Content | Description |
---|---|---|
onMessage | message : String | Fired when a message is sent from an HDMI device. Message is a base64 encoded byte array of the raw CEC bytes. |
cecAddressesChanged | JSON object <CECAddresses> | Notify that address of the host CEC device has changed |
To know more about SoC/Application level APIs details use in RDK, refer the link RDK HDMI-CEC API Documentation