RDK Documentation (Open Sourced RDK Components)
Multi-App Support

Often , the application functionality (Record, Tune and Playback) is distributed across multiple components. In order for any component to have equivalent access to the HDMI-CEC bus, the library offers Multi-App support via IARM-Bus. This support is enabled by default, and can be disabled if desired.

In essence, there is only one physical CEC bus on asystem. 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.

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.

For both applications, its CEC messages flows from,

Connection --> Logical Bus--> CEC IARM Apaper--> IARM Bus---> (CECDaemonMain)

For CECDaemonMain, its CEC messages flows from,

IARM Bus --> CecIARMMgr --> Connection --> Logical Bus --> CEC Driver --> (Physical Bus)

The message flow on Connections and Logical Buses are full duplex.

Driver
Definition: Driver.hpp:45
Connection
The connection class provides APIs that allows the application to access CEC Bus. A connection is a t...
Definition: Connection.hpp:57
Bus
Definition: Bus.hpp:53