Version: 1.0
Status: ⚫⚫⚫
DisplayInfo plugin for Thunder framework.
This document describes purpose and functionality of the DisplayInfo plugin. It includes detailed specification about its configuration, methods and properties as well as sent notifications.
All identifiers of the interfaces described in this document are case-sensitive. Thus, unless stated otherwise, all keywords, entities, properties, relations and actions should be treated as such.
The table below provides and overview of acronyms used in this document and their definitions.
Acronym | Description |
---|---|
API | Application Programming Interface |
HTTP | Hypertext Transfer Protocol |
JSON | JavaScript Object Notation; a data interchange format |
JSON-RPC | A remote procedure call protocol encoded in JSON |
The table below provides and overview of terms and abbreviations used in this document and their definitions.
Term | Description |
---|---|
callsign | The name given to an instance of a plugin. One plugin can be instantiated multiple times, but each instance the instance name, callsign, must be unique. |
Ref ID | Description |
---|---|
HTTP | HTTP specification |
JSON-RPC | JSON-RPC 2.0 specification |
JSON | JSON specification |
Thunder | Thunder API Reference |
The DisplayInfo plugin allows retrieving of various display-related information.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].
The table below lists configuration options of the plugin.
Name | Type | M/O | Description |
---|---|---|---|
callsign | string | mandatory | Plugin instance name (default: DisplayInfo) |
classname | string | mandatory | Class name: DisplayInfo |
locator | string | mandatory | Library name: libThunderDisplayInfo.so |
startmode | string | mandatory | Determines in which state the plugin should be moved to at startup of the framework |
This plugin implements the following interfaces:
- IGraphicsProperties (IDisplayInfo.h) (version 1.0.0) (compliant format)
This interface uses legacy
lowercase
naming convention. With the next major release the naming convention will change tocamelCase
.
- IConnectionProperties (IDisplayInfo.h) (version 1.0.0) (uncompliant-extended format)
This interface uses legacy
lowercase
naming convention. With the next major release the naming convention will change tocamelCase
.
- IHDRProperties (IDisplayInfo.h) (version 1.0.0) (compliant format)
This interface uses legacy
lowercase
naming convention. With the next major release the naming convention will change tocamelCase
.
- IDisplayProperties (IDisplayInfo.h) (version 1.0.0) (compliant format)
This interface uses legacy
lowercase
naming convention. With the next major release the naming convention will change tocamelCase
.
The following methods are provided by the DisplayInfo plugin:
ConnectionProperties interface methods:
Method | Description |
---|---|
edid | TV's Extended Display Identification Data |
widthincentimeters | Horizontal size in centimeters |
heightincentimeters | Vertical size in centimeters |
edid method
TV's Extended Display Identification Data.
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.length | integer | mandatory | Length of EDID byte string |
Name | Type | M/O | Description |
---|---|---|---|
result | object | mandatory | ... |
result.length | integer | mandatory | Length of EDID byte string |
result.data | string (base64) | mandatory | EDID byte string |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.edid",
"params": {
"length": 0
}
}
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"length": 0,
"data": "..."
}
}
widthincentimeters method
Horizontal size in centimeters.
This method takes no parameters.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Width in cm |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.widthincentimeters"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
heightincentimeters method
Vertical size in centimeters.
This method takes no parameters.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | ... |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.heightincentimeters"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
The following properties are provided by the DisplayInfo plugin:
GraphicsProperties interface properties:
Property | R/W | Description |
---|---|---|
totalgpuram | read-only | Total GPU DRAM memory (in bytes) |
freegpuram | read-only | Free GPU DRAM memory (in bytes) |
ConnectionProperties interface properties:
Property | R/W | Description |
---|---|---|
isaudiopassthrough | read-only | Current audio passthrough status on HDMI |
connected | read-only | Current HDMI connection status |
width | read-only | Horizontal resolution of TV |
height | read-only | Vertical resolution of TV |
verticalfreq | read-only | Vertical Frequency |
hdcpprotection | read/write | HDCP protocol used for transmission |
portname | read-only | Video output port on the STB used for connection to TV |
HDRProperties interface properties:
Property | R/W | Description |
---|---|---|
tvcapabilities | read-only | HDR formats supported by TV |
stbcapabilities | read-only | HDR formats supported by STB |
hdrsetting | read-only | HDR format in use |
DisplayProperties interface properties:
Property | R/W | Description |
---|---|---|
colorspace | read-only | Provides access to the display's Colour space (chroma subsampling format) |
framerate | read-only | Provides access to Frame Rate |
colourdepth | read-only | Provides access to display's colour Depth |
colorimetry | read-only | Provides access to display's colorimetry |
quantizationrange | read-only | Provides access to display's Qauntization Range |
eotf | read-only | Provides access to display's Electro optical transfer function |
totalgpuram property
Provides access to the total GPU DRAM memory (in bytes).
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Total GPU DRAM memory (in bytes) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.totalgpuram"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
freegpuram property
Provides access to the free GPU DRAM memory (in bytes).
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Free GPU DRAM memory (in bytes) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.freegpuram"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
isaudiopassthrough property
Provides access to the current audio passthrough status on HDMI.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Enabled/Disabled |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.isaudiopassthrough"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": false
}
connected property
Provides access to the current HDMI connection status.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | boolean | mandatory | Connected/Disconnected |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.connected"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": false
}
width property
Provides access to the horizontal resolution of TV.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Width of TV in pixels |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.width"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
height property
Provides access to the vertical resolution of TV.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Height of TV in pixels |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.height"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
verticalfreq property
Provides access to the vertical Frequency.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Vertical freq |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.verticalfreq"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
hdcpprotection property
Provides access to the HDCP protocol used for transmission.
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | HDCP protocol used for transmission (must be one of the following: Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted) |
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Protocol (must be one of the following: Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdcpprotection"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "HdcpUnencrypted"
}
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdcpprotection",
"params": "HdcpUnencrypted"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "null"
}
portname property
Provides access to the video output port on the STB used for connection to TV.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Video output port name |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.portname"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "..."
}
tvcapabilities property
Provides access to the HDR formats supported by TV.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | array | mandatory | HDR formats supported by TV |
result[#] | string | mandatory | ... (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.tvcapabilities"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"HdrOff"
]
}
stbcapabilities property
Provides access to the HDR formats supported by STB.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | array | mandatory | HDR formats supported by STB |
result[#] | string | mandatory | ... (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.stbcapabilities"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"HdrOff"
]
}
hdrsetting property
Provides access to the HDR format in use.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | HDR format (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdrsetting"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "HdrOff"
}
colorspace property
Provides access to the provides access to the display's Colour space (chroma subsampling format).
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Colour space (must be one of the following: FormatOther, FormatRgb444, FormatUnknown, FormatYcbcr420, FormatYcbcr422, FormatYcbcr444) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colorspace"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "FormatUnknown"
}
framerate property
Provides access to the provides access to Frame Rate.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Frame rate (must be one of the following: Framerate11988, Framerate120, Framerate144, Framerate23976, Framerate24, Framerate25, Framerate2997, Framerate30, Framerate47952, Framerate48, Framerate50, Framerate5994, Framerate60, FramerateUnknown) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.framerate"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "FramerateUnknown"
}
colourdepth property
Provides access to the provides access to display's colour Depth.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Colour depth (must be one of the following: Colordepth10Bit, Colordepth12Bit, Colordepth8Bit, ColordepthUnknown) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colourdepth"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "ColordepthUnknown"
}
colorimetry property
Provides access to the provides access to display's colorimetry.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | array | mandatory | Display colorimetry |
result[#] | string | mandatory | ... (must be one of the following: ColorimetryBt2020rgbYcbcr, ColorimetryBt2020yccbcbrc, ColorimetryBt709, ColorimetryOprgb, ColorimetryOpycc601, ColorimetryOther, ColorimetrySmpte170m, ColorimetrySycc601, ColorimetryUnknown, ColorimetryXvycc601, ColorimetryXvycc709) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colorimetry"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"ColorimetryUnknown"
]
}
quantizationrange property
Provides access to the provides access to display's Qauntization Range.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Quantization range (must be one of the following: QuantizationrangeFull, QuantizationrangeLimited, QuantizationrangeUnknown) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.quantizationrange"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "QuantizationrangeUnknown"
}
eotf property
Provides access to the provides access to display's Electro optical transfer function.
This property is read-only.
Name | Type | M/O | Description |
---|---|---|---|
result | string | mandatory | Display's EOTF (must be one of the following: EotfBt1886, EotfBt2100, EotfOther, EotfSmpteSt2084, EotfUnknown) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.eotf"
}
{
"jsonrpc": "2.0",
"id": 42,
"result": "EotfUnknown"
}
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.
The following events are provided by the DisplayInfo plugin:
ConnectionProperties interface events:
Notification | Description |
---|---|
updated | Signal changes on the display update |
updated notification
Signal changes on the display update..
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.event | string | mandatory | Source of this event (must be one of the following: HdcpChange, HdmiChange, PostResolutionChange, PreResolutionChange) |
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.register",
"params": {
"event": "updated",
"id": "myid"
}
}
{
"jsonrpc": "2.0",
"method": "myid.updated",
"params": {
"event": "PreResolutionChange"
}
}