Display Info Plugin
Version: 1.0
Status:
DisplayInfo plugin for Thunder framework.
Table of Contents
Introduction
Scope
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.
Case Sensitivity
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.
Acronyms, Abbreviations and Terms
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. |
References
Ref ID | Description |
---|---|
HTTP | HTTP specification |
JSON-RPC | JSON-RPC 2.0 specification |
JSON | JSON specification |
Thunder | Thunder API Reference |
Description
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].
Configuration
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 |
Interfaces
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
.
Methods
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.
Parameters
Name | Type | M/O | Description |
---|---|---|---|
params | object | mandatory | ... |
params.length | integer | mandatory | Length of EDID byte string |
Result
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 |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.edid",
"params": {
"length": 0
}
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": {
"length": 0,
"data": "..."
}
}
widthincentimeters method
Horizontal size in centimeters.
Parameters
This method takes no parameters.
Result
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | Width in cm |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.widthincentimeters"
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
heightincentimeters method
Vertical size in centimeters.
Parameters
This method takes no parameters.
Result
Name | Type | M/O | Description |
---|---|---|---|
result | integer | mandatory | ... |
Example
Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.heightincentimeters"
}
Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
Properties
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.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Total GPU DRAM memory (in bytes) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.totalgpuram"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
freegpuram property
Provides access to the free GPU DRAM memory (in bytes).
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Free GPU DRAM memory (in bytes) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.freegpuram"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
isaudiopassthrough property
Provides access to the current audio passthrough status on HDMI.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | boolean | mandatory | Enabled/Disabled |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.isaudiopassthrough"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": false
}
connected property
Provides access to the current HDMI connection status.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | boolean | mandatory | Connected/Disconnected |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.connected"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": false
}
width property
Provides access to the horizontal resolution of TV.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Width of TV in pixels |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.width"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
height property
Provides access to the vertical resolution of TV.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Height of TV in pixels |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.height"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
verticalfreq property
Provides access to the vertical Frequency.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | integer | mandatory | Vertical freq |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.verticalfreq"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": 0
}
hdcpprotection property
Provides access to the HDCP protocol used for transmission.
Value
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 |
---|---|---|---|
(property) | string | mandatory | Protocol (must be one of the following: Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdcpprotection"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "Hdcp1x"
}
Set Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdcpprotection",
"params": "Hdcp1x"
}
Set Response
{
"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.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Video output port name |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.portname"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "..."
}
tvcapabilities property
Provides access to the HDR formats supported by TV.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | HDR formats supported by TV |
(property)[#] | string | mandatory | ... (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.tvcapabilities"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"Hdr10"
]
}
stbcapabilities property
Provides access to the HDR formats supported by STB.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | HDR formats supported by STB |
(property)[#] | string | mandatory | ... (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.stbcapabilities"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"Hdr10"
]
}
hdrsetting property
Provides access to the HDR format in use.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | HDR format (must be one of the following: Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdrsetting"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "Hdr10"
}
colorspace property
Provides access to the provides access to the display's Colour space (chroma subsampling format).
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Colour space (must be one of the following: FormatOther, FormatRgb444, FormatUnknown, FormatYcbcr420, FormatYcbcr422, FormatYcbcr444) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colorspace"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "FormatOther"
}
framerate property
Provides access to the provides access to Frame Rate.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Frame rate (must be one of the following: Framerate11988, Framerate120, Framerate144, Framerate23976, Framerate24, Framerate25, Framerate2997, Framerate30, Framerate47952, Framerate48, Framerate50, Framerate5994, Framerate60, FramerateUnknown) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.framerate"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "Framerate23976"
}
colourdepth property
Provides access to the provides access to display's colour Depth.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Colour depth (must be one of the following: Colordepth10Bit, Colordepth12Bit, Colordepth8Bit, ColordepthUnknown) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colourdepth"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "Colordepth8Bit"
}
colorimetry property
Provides access to the provides access to display's colorimetry.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | array | mandatory | Display colorimetry |
(property)[#] | string | mandatory | ... (must be one of the following: ColorimetryBt2020rgbYcbcr, ColorimetryBt2020yccbcbrc, ColorimetryBt709, ColorimetryOprgb, ColorimetryOpycc601, ColorimetryOther, ColorimetrySmpte170m, ColorimetrySycc601, ColorimetryUnknown, ColorimetryXvycc601, ColorimetryXvycc709) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.colorimetry"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": [
"ColorimetryOther"
]
}
quantizationrange property
Provides access to the provides access to display's Qauntization Range.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Quantization range (must be one of the following: QuantizationrangeFull, QuantizationrangeLimited, QuantizationrangeUnknown) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.quantizationrange"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "QuantizationrangeLimited"
}
eotf property
Provides access to the provides access to display's Electro optical transfer function.
This property is read-only.
Value
Name | Type | M/O | Description |
---|---|---|---|
(property) | string | mandatory | Display's EOTF (must be one of the following: EotfBt1886, EotfBt2100, EotfOther, EotfSmpteSt2084, EotfUnknown) |
Example
Get Request
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.eotf"
}
Get Response
{
"jsonrpc": "2.0",
"id": 42,
"result": "EotfOther"
}
Notifications
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..
Notification Parameters
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) |
Example
Registration
{
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.register",
"params": {
"event": "updated",
"id": "myid"
}
}
Notification
{
"jsonrpc": "2.0",
"method": "myid.updated",
"params": {
"event": "PostResolutionChange"
}
}
The client ID parameter is passed within the notification designator, i.e.
<client-id>.updated
.