# UniTAP.dev.ports.modules.hdcp.hdcp_tx

class HdcpSourceStatus:

Class `HdcpSourceStatus` contains information about HDCP 1.4 and 2.3 statuses. If you want to get object of one the status, use function `get`.

HdcpSourceStatus( port_io: UniTAP.libs.lib_tsi.tsi_io.PortIO, ci_status_control: int, caps_1x: UniTAP.dev.ports.modules.hdcp.types.HdcpHwSourceCaps, caps_2x: UniTAP.dev.ports.modules.hdcp.types.HdcpHwSourceCaps)
def get(self, hdcp_mode: Type[~HdcpStatusType]) -> ~HdcpStatusType:

Returns one of possible HDCP Status Type:

- Status1x (HDCP 1.4).
- StatusTx2x (HDCP 2.3).

Object contains info about:

- HDCP keys (HdcpSource1XKeys if HDCP type 1.4; HdcpSource2XKeys if HDCP type 2.3).
- Active state (True or False).
- Authenticated state (True or False).
- Capable state (True or False).

If HDCP type is 2.3, then it contains more information:

- KM stored state (True or False).
- Try to authenticate state (True or False).
- Try to encrypt state (True or False).
- Content level.

###### Returns:

> object of `HdcpStatusType` (`Status1x` or `StatusTx2x`)

class HdcpSourceConfig:

Class `HdcpSourceConfig` contains information about HDCP 1.4 and 2.3 configurations. If you want to set configuration, use function `set`. If you want to get current config, use function `get`.

HdcpSourceConfig( port_io: UniTAP.libs.lib_tsi.tsi_io.PortIO, caps_1x: UniTAP.dev.ports.modules.hdcp.types.HdcpHwSourceCaps, caps_2x: UniTAP.dev.ports.modules.hdcp.types.HdcpHwSourceCaps, status: HdcpSourceStatus)
def set(self, config: ~HdcpTxConfigType):

This function is used to set the HDCP on Source (TX - transmitter) side. Possible to load HDCP keys and enable/disable HDCP.

###### Arguments:

- config (HdcpTxConfigType) - one of the available HDCP config type: Config1x (HDCP 1.4), Config2x (HDCP 2.3)

def get(self, hdcp_mode: Type[~HdcpTxConfigType]) -> ~HdcpTxConfigType:

This function is used to get current HDCP configuration on Source (TX - transmitter) side.

###### Returns:

> object of HdcpTxConfigType - one of the available HDCP config type: Config1x (HDCP 1.4), Config2x (HDCP 2.3)

class HdcpSource:

Main class contains info of HDCP on Source (TX - transmitter) side. If you need to configurate HDCP, use `config` for getting object responsible for the configuration. If you need to read HDCP status, use `status` for getting object responsible for the reading current status.

HdcpSource( port_io: UniTAP.libs.lib_tsi.tsi_io.PortIO, ci_caps_control: int, ci_status_control: int)
config: HdcpSourceConfig

Should be used to configure HDCP on Source (TX - transmitter) role.

###### Returns:

> object of `HdcpSourceConfig`.

status: HdcpSourceStatus

Should be used to read HDCP current status onSource (TX - transmitter) role.

###### Returns:

> object of `HdcpSourceStatus`.