diff --git a/DeviceIdentification/doc/DeviceIdentificationPlugin.md b/DeviceIdentification/doc/DeviceIdentificationPlugin.md
index a377dad5..e7f4c1a3 100644
--- a/DeviceIdentification/doc/DeviceIdentificationPlugin.md
+++ b/DeviceIdentification/doc/DeviceIdentificationPlugin.md
@@ -1,5 +1,5 @@
-
+
# Device Identification Plugin
**Version: 1.0.0**
@@ -12,24 +12,25 @@ DeviceIdentification interface for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Properties](#head.Properties)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
-
+
# Introduction
-
+
## Scope
-This document describes purpose and functionality of the DeviceIdentification interface (version 1.0.0). It includes detailed specification about its properties provided.
+This document describes purpose and functionality of the DeviceIdentification interface (version 1.0.0). It includes detailed specification about its methods and properties provided.
-
+
## 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.
@@ -47,7 +48,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -57,12 +58,70 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
DeviceIdentification JSON-RPC interface.
-
+
+# Methods
+
+The following methods are provided by the DeviceIdentification interface:
+
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *deviceidentification, exists*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": ".1.exists",
+ "params": {
+ "method": "deviceidentification"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
# Properties
The following properties are provided by the DeviceIdentification interface:
@@ -71,10 +130,10 @@ DeviceIdentification interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [deviceidentification](#property.deviceidentification) | read-only | Get device paltform specific information |
+| [deviceidentification](#property_deviceidentification) | read-only | Get device paltform specific information |
-
-## *deviceidentification [property](#head.Properties)*
+
+## *deviceidentification [property](#head_Properties)*
Provides access to the get device paltform specific information.
@@ -103,7 +162,7 @@ Provides access to the get device paltform specific information.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "DeviceIdentification.1.deviceidentification"
+ "method": ".1.deviceidentification"
}
```
diff --git a/DeviceInfo/doc/DeviceInfoPlugin.md b/DeviceInfo/doc/DeviceInfoPlugin.md
index b321e233..c6b7b746 100644
--- a/DeviceInfo/doc/DeviceInfoPlugin.md
+++ b/DeviceInfo/doc/DeviceInfoPlugin.md
@@ -1,5 +1,5 @@
-
+
# Device Info Plugin
**Version: 1.0**
@@ -10,27 +10,27 @@ DeviceInfo plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the DeviceInfo plugin. It includes detailed specification about its configuration, methods and properties provided.
-
+
## 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.
@@ -48,7 +48,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -58,14 +58,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The DeviceInfo plugin allows retrieving of various device-related information.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -92,31 +92,134 @@ The table below lists configuration options of the plugin.
| systemIntegratorName | string | mandatory | System Integrator Name |
| platformName | string | mandatory | Platform Name |
-
+
# Interfaces
This plugin implements the following interfaces:
- [DeviceInfo.json](https://github.com/rdkcentral/ThunderInterfaces/blob/master/jsonrpc/DeviceInfo.json) (version 1.0.0) (uncompliant-extended format)
-
+
# Methods
The following methods are provided by the DeviceInfo plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+
DeviceInfo interface methods:
| Method | Description |
| :-------- | :-------- |
-| [supportedresolutions](#method.supportedresolutions) | Supported resolutions on the selected video display port |
-| [defaultresolution](#method.defaultresolution) | Default resolution on the selected video display port |
-| [supportedhdcp](#method.supportedhdcp) | Supported hdcp version on the selected video display port |
-| [audiocapabilities](#method.audiocapabilities) | Audio capabilities for the specified audio port |
-| [ms12capabilities](#method.ms12capabilities) | Audio ms12 capabilities for the specified audio port |
-| [supportedms12audioprofiles](#method.supportedms12audioprofiles) | Supported ms12 audio profiles for the specified audio port |
+| [supportedresolutions](#method_supportedresolutions) | Supported resolutions on the selected video display port |
+| [defaultresolution](#method_defaultresolution) | Default resolution on the selected video display port |
+| [supportedhdcp](#method_supportedhdcp) | Supported hdcp version on the selected video display port |
+| [audiocapabilities](#method_audiocapabilities) | Audio capabilities for the specified audio port |
+| [ms12capabilities](#method_ms12capabilities) | Audio ms12 capabilities for the specified audio port |
+| [supportedms12audioprofiles](#method_supportedms12audioprofiles) | Supported ms12 audio profiles for the specified audio port |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DeviceInfo.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
-
-## *supportedresolutions [method](#head.Methods)*
+### Description
+
+This method will return *True* for the following methods/properties: *deviceaudiocapabilities, devicevideocapabilities, deviceinfo, systeminfo, addresses, socketinfo, supportedaudioports, supportedvideodisplays, hostedid, firmwareversion, serialnumber, make, modelid, modelname, modelyear, friendlyname, platformname, devicetype, distributorid, versions, exists, supportedresolutions, defaultresolution, supportedhdcp, audiocapabilities, ms12capabilities, supportedms12audioprofiles*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DeviceInfo.1.exists",
+ "params": {
+ "method": "deviceaudiocapabilities"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *supportedresolutions [method](#head_Methods)*
Supported resolutions on the selected video display port.
@@ -170,8 +273,8 @@ Supported resolutions on the selected video display port.
}
```
-
-## *defaultresolution [method](#head.Methods)*
+
+## *defaultresolution [method](#head_Methods)*
Default resolution on the selected video display port.
@@ -222,8 +325,8 @@ Default resolution on the selected video display port.
}
```
-
-## *supportedhdcp [method](#head.Methods)*
+
+## *supportedhdcp [method](#head_Methods)*
Supported hdcp version on the selected video display port.
@@ -274,8 +377,8 @@ Supported hdcp version on the selected video display port.
}
```
-
-## *audiocapabilities [method](#head.Methods)*
+
+## *audiocapabilities [method](#head_Methods)*
Audio capabilities for the specified audio port.
@@ -329,8 +432,8 @@ Audio capabilities for the specified audio port.
}
```
-
-## *ms12capabilities [method](#head.Methods)*
+
+## *ms12capabilities [method](#head_Methods)*
Audio ms12 capabilities for the specified audio port.
@@ -384,8 +487,8 @@ Audio ms12 capabilities for the specified audio port.
}
```
-
-## *supportedms12audioprofiles [method](#head.Methods)*
+
+## *supportedms12audioprofiles [method](#head_Methods)*
Supported ms12 audio profiles for the specified audio port.
@@ -439,7 +542,7 @@ Supported ms12 audio profiles for the specified audio port.
}
```
-
+
# Properties
The following properties are provided by the DeviceInfo plugin:
@@ -448,28 +551,28 @@ DeviceInfo interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [deviceaudiocapabilities](#property.deviceaudiocapabilities) | read-only | Audio capabilities of the device |
-| [devicevideocapabilities](#property.devicevideocapabilities) | read-only | Video capabilities of the device |
-| [deviceinfo](#property.deviceinfo) | read-only | Device meta data |
-| [systeminfo](#property.systeminfo) | read-only | System general information |
-| [addresses](#property.addresses) | read-only | Network interface addresses |
-| [socketinfo](#property.socketinfo) | read-only | Socket information |
-| [supportedaudioports](#property.supportedaudioports) | read-only | Audio ports supported on the device (all ports that are physically present) |
-| [supportedvideodisplays](#property.supportedvideodisplays) | read-only | Video ports supported on the device (all ports that are physically present) |
-| [hostedid](#property.hostedid) | read-only | EDID of the host |
-| [firmwareversion](#property.firmwareversion) | read-only | Versions maintained in version |
-| [serialnumber](#property.serialnumber) | read-only | Serial number set by manufacturer |
-| [make](#property.make) | read-only | Device manufacturer |
-| [modelid](#property.modelid) | read-only | Device model number or SKU |
-| [modelname](#property.modelname) | read-only | Device model name |
-| [modelyear](#property.modelyear) | read-only | Device model year |
-| [friendlyname](#property.friendlyname) | read-only | Device friendly name |
-| [platformname](#property.platformname) | read-only | Device Platform name |
-| [devicetype](#property.devicetype) | read-only | Device type |
-| [distributorid](#property.distributorid) | read-only | Partner ID or distributor ID for device |
-
-
-## *deviceaudiocapabilities [property](#head.Properties)*
+| [deviceaudiocapabilities](#property_deviceaudiocapabilities) | read-only | Audio capabilities of the device |
+| [devicevideocapabilities](#property_devicevideocapabilities) | read-only | Video capabilities of the device |
+| [deviceinfo](#property_deviceinfo) | read-only | Device meta data |
+| [systeminfo](#property_systeminfo) | read-only | System general information |
+| [addresses](#property_addresses) | read-only | Network interface addresses |
+| [socketinfo](#property_socketinfo) | read-only | Socket information |
+| [supportedaudioports](#property_supportedaudioports) | read-only | Audio ports supported on the device (all ports that are physically present) |
+| [supportedvideodisplays](#property_supportedvideodisplays) | read-only | Video ports supported on the device (all ports that are physically present) |
+| [hostedid](#property_hostedid) | read-only | EDID of the host |
+| [firmwareversion](#property_firmwareversion) | read-only | Versions maintained in version |
+| [serialnumber](#property_serialnumber) | read-only | Serial number set by manufacturer |
+| [make](#property_make) | read-only | Device manufacturer |
+| [modelid](#property_modelid) | read-only | Device model number or SKU |
+| [modelname](#property_modelname) | read-only | Device model name |
+| [modelyear](#property_modelyear) | read-only | Device model year |
+| [friendlyname](#property_friendlyname) | read-only | Device friendly name |
+| [platformname](#property_platformname) | read-only | Device Platform name |
+| [devicetype](#property_devicetype) | read-only | Device type |
+| [distributorid](#property_distributorid) | read-only | Partner ID or distributor ID for device |
+
+
+## *deviceaudiocapabilities [property](#head_Properties)*
Provides access to the audio capabilities of the device.
@@ -477,20 +580,18 @@ Provides access to the audio capabilities of the device.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Audio capabilities of the device |
-| result.audiooutputcapabilities | array | mandatory | An array of audiooutputcapabilities |
-| result.audiooutputcapabilities[#] | object | mandatory | Audio capabilities of the output |
-| result.audiooutputcapabilities[#]?.audioPort | string | optional | Audio Output support (must be one of the following: *ANALOG, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SPDIF0*) |
-| result.audiooutputcapabilities[#].audiocapabilities | array | mandatory | Audio capabilities for the specified audio port |
-| result.audiooutputcapabilities[#].audiocapabilities[#] | string | mandatory | Audio capability (must be one of the following: *ATMOS, DAPv2, DOLBY DIGITAL, DOLBY DIGITAL PLUS, Dual Audio Decode, MS12, none*) |
-| result.audiooutputcapabilities[#].ms12capabilities | array | mandatory | Audio ms12 capabilities for the specified audio port |
-| result.audiooutputcapabilities[#].ms12capabilities[#] | string | mandatory | MS12 audio capability (must be one of the following: *Dialogue Enhancer, Dolby Volume, Inteligent Equalizer, none*) |
-| result.audiooutputcapabilities[#].ms12profiles | array | mandatory | Audio ms12 profiles for the specified audio port |
-| result.audiooutputcapabilities[#].ms12profiles[#] | string | mandatory | MS12 Profile (must be one of the following: *Movie, Music, None, Voice*) |
+| (property) | object | mandatory | Audio capabilities of the device |
+| (property).audiooutputcapabilities | array | mandatory | An array of audiooutputcapabilities |
+| (property).audiooutputcapabilities[#] | object | mandatory | Audio capabilities of the output |
+| (property).audiooutputcapabilities[#]?.audioPort | string | optional | Audio Output support (must be one of the following: *ANALOG, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SPDIF0*) |
+| (property).audiooutputcapabilities[#].audiocapabilities | array | mandatory | Audio capabilities for the specified audio port |
+| (property).audiooutputcapabilities[#].audiocapabilities[#] | string | mandatory | Audio capability (must be one of the following: *ATMOS, DAPv2, DOLBY DIGITAL, DOLBY DIGITAL PLUS, Dual Audio Decode, MS12, none*) |
+| (property).audiooutputcapabilities[#].ms12capabilities | array | mandatory | Audio ms12 capabilities for the specified audio port |
+| (property).audiooutputcapabilities[#].ms12capabilities[#] | string | mandatory | MS12 audio capability (must be one of the following: *Dialogue Enhancer, Dolby Volume, Inteligent Equalizer, none*) |
+| (property).audiooutputcapabilities[#].ms12profiles | array | mandatory | Audio ms12 profiles for the specified audio port |
+| (property).audiooutputcapabilities[#].ms12profiles[#] | string | mandatory | MS12 Profile (must be one of the following: *Movie, Music, None, Voice*) |
### Example
@@ -529,8 +630,8 @@ Provides access to the audio capabilities of the device.
}
```
-
-## *devicevideocapabilities [property](#head.Properties)*
+
+## *devicevideocapabilities [property](#head_Properties)*
Provides access to the video capabilities of the device.
@@ -538,22 +639,20 @@ Provides access to the video capabilities of the device.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Video capabilities of the device |
-| result.hostedid | string | mandatory | EDID of the host |
-| result.hdr | boolean | mandatory | Is HDR supported by this device |
-| result.atmos | boolean | mandatory | Is Atmos supported by this device |
-| result.cec | boolean | mandatory | Is CEC supported by this device |
-| result.videooutputcapabilities | array | mandatory | An array of videooutputcapabilities |
-| result.videooutputcapabilities[#] | object | mandatory | Video capabilities of the output |
-| result.videooutputcapabilities[#].hdcp | string | mandatory | HDCP support (must be one of the following: *1.4, 2.0, 2.1, 2.2, unavailable*) |
-| result.videooutputcapabilities[#]?.videoDisplay | string | optional | Video Output support (must be one of the following: *COMPONET, COMPOSITE, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SCART_RGB, SVIDEO*) |
-| result.videooutputcapabilities[#].output_resolutions | array | mandatory | Supported resolutions |
-| result.videooutputcapabilities[#].output_resolutions[#] | string | mandatory | Resolution supported by the device (must be one of the following: *1080i, 1080i25, 1080i50, 1080i60, 1080p, 1080p24, 1080p25, 1080p30, 1080p50, 1080p60, 2160p24, 2160p25, 2160p30, 2160p50, 2160p60, 4320p30, 4320p60, 480i, 480p, 576i, 576p, 576p50, 720p, 720p24, 720p25, 720p30, 720p50, 720p60, unknown*) |
-| result.videooutputcapabilities[#].defaultresolution | string | mandatory | Default resolution (must be one of the following: *1080i, 1080i25, 1080i50, 1080i60, 1080p, 1080p24, 1080p25, 1080p30, 1080p50, 1080p60, 2160p24, 2160p25, 2160p30, 2160p50, 2160p60, 4320p30, 4320p60, 480i, 480p, 576i, 576p, 576p50, 720p, 720p24, 720p25, 720p30, 720p50, 720p60, unknown*) |
+| (property) | object | mandatory | Video capabilities of the device |
+| (property).hostedid | string | mandatory | EDID of the host |
+| (property).hdr | boolean | mandatory | Is HDR supported by this device |
+| (property).atmos | boolean | mandatory | Is Atmos supported by this device |
+| (property).cec | boolean | mandatory | Is CEC supported by this device |
+| (property).videooutputcapabilities | array | mandatory | An array of videooutputcapabilities |
+| (property).videooutputcapabilities[#] | object | mandatory | Video capabilities of the output |
+| (property).videooutputcapabilities[#].hdcp | string | mandatory | HDCP support (must be one of the following: *1.4, 2.0, 2.1, 2.2, unavailable*) |
+| (property).videooutputcapabilities[#]?.videoDisplay | string | optional | Video Output support (must be one of the following: *COMPONET, COMPOSITE, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SCART_RGB, SVIDEO*) |
+| (property).videooutputcapabilities[#].output_resolutions | array | mandatory | Supported resolutions |
+| (property).videooutputcapabilities[#].output_resolutions[#] | string | mandatory | Resolution supported by the device (must be one of the following: *1080i, 1080i25, 1080i50, 1080i60, 1080p, 1080p24, 1080p25, 1080p30, 1080p50, 1080p60, 2160p24, 2160p25, 2160p30, 2160p50, 2160p60, 4320p30, 4320p60, 480i, 480p, 576i, 576p, 576p50, 720p, 720p24, 720p25, 720p30, 720p50, 720p60, unknown*) |
+| (property).videooutputcapabilities[#].defaultresolution | string | mandatory | Default resolution (must be one of the following: *1080i, 1080i25, 1080i50, 1080i60, 1080p, 1080p24, 1080p25, 1080p30, 1080p50, 1080p60, 2160p24, 2160p25, 2160p30, 2160p50, 2160p60, 4320p30, 4320p60, 480i, 480p, 576i, 576p, 576p50, 720p, 720p24, 720p25, 720p30, 720p50, 720p60, unknown*) |
### Example
@@ -592,8 +691,8 @@ Provides access to the video capabilities of the device.
}
```
-
-## *deviceinfo [property](#head.Properties)*
+
+## *deviceinfo [property](#head_Properties)*
Provides access to the device meta data.
@@ -601,20 +700,18 @@ Provides access to the device meta data.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device meta data |
-| result?.devicetype | string | optional | Device type |
-| result?.friendlyname | string | optional | Friendly name |
-| result?.distributorid | string | optional | Partner ID or distributor ID for device |
-| result?.make | string | optional | Device manufacturer |
-| result?.modelname | string | optional | Model Name |
-| result?.modelyear | integer | optional | Model Year |
-| result?.platformname | string | optional | Platform name |
-| result?.serialnumber | string | optional | Device serial number |
-| result?.sku | string | optional | Device model number or SKU |
+| (property) | object | mandatory | Device meta data |
+| (property)?.devicetype | string | optional | Device type |
+| (property)?.friendlyname | string | optional | Friendly name |
+| (property)?.distributorid | string | optional | Partner ID or distributor ID for device |
+| (property)?.make | string | optional | Device manufacturer |
+| (property)?.modelname | string | optional | Model Name |
+| (property)?.modelyear | integer | optional | Model Year |
+| (property)?.platformname | string | optional | Platform name |
+| (property)?.serialnumber | string | optional | Device serial number |
+| (property)?.sku | string | optional | Device model number or SKU |
### Example
@@ -648,8 +745,8 @@ Provides access to the device meta data.
}
```
-
-## *systeminfo [property](#head.Properties)*
+
+## *systeminfo [property](#head_Properties)*
Provides access to the system general information.
@@ -657,25 +754,23 @@ Provides access to the system general information.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | System general information |
-| result.version | string | mandatory | Software version (in form *version#hashtag*) |
-| result.uptime | integer | mandatory | System uptime (in seconds) |
-| result.totalram | integer | mandatory | Total installed system RAM memory (in bytes) |
-| result.freeram | integer | mandatory | Free system RAM memory (in bytes) |
-| result.totalswap | integer | mandatory | Total swap space (in bytes) |
-| result.freeswap | integer | mandatory | Swap space still available (in bytes) |
-| result.devicename | string | mandatory | Host name |
-| result.cpuload | string | mandatory | Current CPU load (percentage) |
-| result.cpuloadavg | object | mandatory | CPU load average |
-| result.cpuloadavg.avg1min | integer | mandatory | 1min cpuload average |
-| result.cpuloadavg.avg5min | integer | mandatory | 5min cpuload average |
-| result.cpuloadavg.avg15min | integer | mandatory | 15min cpuload average |
-| result.serialnumber | string | mandatory | Device serial number |
-| result.time | string | mandatory | Current system date and time |
+| (property) | object | mandatory | System general information |
+| (property).version | string | mandatory | Software version (in form *version#hashtag*) |
+| (property).uptime | integer | mandatory | System uptime (in seconds) |
+| (property).totalram | integer | mandatory | Total installed system RAM memory (in bytes) |
+| (property).freeram | integer | mandatory | Free system RAM memory (in bytes) |
+| (property).totalswap | integer | mandatory | Total swap space (in bytes) |
+| (property).freeswap | integer | mandatory | Swap space still available (in bytes) |
+| (property).devicename | string | mandatory | Host name |
+| (property).cpuload | string | mandatory | Current CPU load (percentage) |
+| (property).cpuloadavg | object | mandatory | CPU load average |
+| (property).cpuloadavg.avg1min | integer | mandatory | 1min cpuload average |
+| (property).cpuloadavg.avg5min | integer | mandatory | 5min cpuload average |
+| (property).cpuloadavg.avg15min | integer | mandatory | 15min cpuload average |
+| (property).serialnumber | string | mandatory | Device serial number |
+| (property).time | string | mandatory | Current system date and time |
### Example
@@ -715,8 +810,8 @@ Provides access to the system general information.
}
```
-
-## *addresses [property](#head.Properties)*
+
+## *addresses [property](#head_Properties)*
Provides access to the network interface addresses.
@@ -724,16 +819,14 @@ Provides access to the network interface addresses.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Network interface addresses |
-| result[#] | object | mandatory | *...* |
-| result[#].name | string | mandatory | Interface name |
-| result[#].mac | string | mandatory | Interface MAC address |
-| result[#]?.ip | array | optional | An array of Interface IP address |
-| result[#]?.ip[#] | string | optional | Interface IP address |
+| (property) | array | mandatory | Network interface addresses |
+| (property)[#] | object | mandatory | *...* |
+| (property)[#].name | string | mandatory | Interface name |
+| (property)[#].mac | string | mandatory | Interface MAC address |
+| (property)[#]?.ip | array | optional | An array of Interface IP address |
+| (property)[#]?.ip[#] | string | mandatory | Interface IP address |
### Example
@@ -765,8 +858,8 @@ Provides access to the network interface addresses.
}
```
-
-## *socketinfo [property](#head.Properties)*
+
+## *socketinfo [property](#head_Properties)*
Provides access to the socket information.
@@ -774,17 +867,15 @@ Provides access to the socket information.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Socket information |
-| result?.total | integer | optional | Number of total |
-| result?.open | integer | optional | Number of open |
-| result?.link | integer | optional | Number of link |
-| result?.exception | integer | optional | Number of exception |
-| result?.shutdown | integer | optional | Number of shutdown |
-| result.runs | integer | mandatory | Number of runs |
+| (property) | object | mandatory | Socket information |
+| (property)?.total | integer | optional | Number of total |
+| (property)?.open | integer | optional | Number of open |
+| (property)?.link | integer | optional | Number of link |
+| (property)?.exception | integer | optional | Number of exception |
+| (property)?.shutdown | integer | optional | Number of shutdown |
+| (property).runs | integer | mandatory | Number of runs |
### Example
@@ -815,8 +906,8 @@ Provides access to the socket information.
}
```
-
-## *supportedaudioports [property](#head.Properties)*
+
+## *supportedaudioports [property](#head_Properties)*
Provides access to the audio ports supported on the device (all ports that are physically present).
@@ -824,13 +915,11 @@ Provides access to the audio ports supported on the device (all ports that are p
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Audio ports supported on the device (all ports that are physically present) |
-| result.supportedAudioPorts | array | mandatory | Audio Output support |
-| result.supportedAudioPorts[#] | string | mandatory | Audio output supported by the device (must be one of the following: *ANALOG, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SPDIF0*) |
+| (property) | object | mandatory | Audio ports supported on the device (all ports that are physically present) |
+| (property).supportedAudioPorts | array | mandatory | Audio Output support |
+| (property).supportedAudioPorts[#] | string | mandatory | Audio output supported by the device (must be one of the following: *ANALOG, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SPDIF0*) |
### Errors
@@ -864,8 +953,8 @@ Provides access to the audio ports supported on the device (all ports that are p
}
```
-
-## *supportedvideodisplays [property](#head.Properties)*
+
+## *supportedvideodisplays [property](#head_Properties)*
Provides access to the video ports supported on the device (all ports that are physically present).
@@ -873,13 +962,11 @@ Provides access to the video ports supported on the device (all ports that are p
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Video ports supported on the device (all ports that are physically present) |
-| result.supportedVideoDisplays | array | mandatory | Video Output support |
-| result.supportedVideoDisplays[#] | string | mandatory | Video output supported by the device (must be one of the following: *COMPONET, COMPOSITE, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SCART_RGB, SVIDEO*) |
+| (property) | object | mandatory | Video ports supported on the device (all ports that are physically present) |
+| (property).supportedVideoDisplays | array | mandatory | Video Output support |
+| (property).supportedVideoDisplays[#] | string | mandatory | Video output supported by the device (must be one of the following: *COMPONET, COMPOSITE, DISPLAYPORT, HDMI0, HDMI1, OTHER, RF_MODULATOR, SCART_RGB, SVIDEO*) |
### Errors
@@ -913,8 +1000,8 @@ Provides access to the video ports supported on the device (all ports that are p
}
```
-
-## *hostedid [property](#head.Properties)*
+
+## *hostedid [property](#head_Properties)*
Provides access to the EDID of the host.
@@ -922,12 +1009,10 @@ Provides access to the EDID of the host.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | EDID of the host |
-| result.EDID | string | mandatory | A base64 encoded byte array string representing the EDID |
+| (property) | object | mandatory | EDID of the host |
+| (property).EDID | string | mandatory | A base64 encoded byte array string representing the EDID |
### Errors
@@ -959,8 +1044,8 @@ Provides access to the EDID of the host.
}
```
-
-## *firmwareversion [property](#head.Properties)*
+
+## *firmwareversion [property](#head_Properties)*
Provides access to the versions maintained in version.txt.
@@ -968,15 +1053,13 @@ Provides access to the versions maintained in version.txt.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Versions maintained in version.txt |
-| result.imagename | string | mandatory | Name of firmware image |
-| result?.sdk | string | optional | SDK version string |
-| result?.mediarite | string | optional | Mediarite value |
-| result?.yocto | string | optional | Yocto version (must be one of the following: *daisy, dunfell, kirkstone, morty*) |
+| (property) | object | mandatory | Versions maintained in version.txt |
+| (property).imagename | string | mandatory | Name of firmware image |
+| (property)?.sdk | string | optional | SDK version string |
+| (property)?.mediarite | string | optional | Mediarite value |
+| (property)?.yocto | string | optional | Yocto version (must be one of the following: *daisy, dunfell, kirkstone, morty*) |
### Errors
@@ -1011,8 +1094,8 @@ Provides access to the versions maintained in version.txt.
}
```
-
-## *serialnumber [property](#head.Properties)*
+
+## *serialnumber [property](#head_Properties)*
Provides access to the serial number set by manufacturer.
@@ -1020,12 +1103,10 @@ Provides access to the serial number set by manufacturer.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Serial number set by manufacturer |
-| result.serialnumber | string | mandatory | Device Serial Number |
+| (property) | object | mandatory | Serial number set by manufacturer |
+| (property).serialnumber | string | mandatory | Device Serial Number |
### Errors
@@ -1057,8 +1138,8 @@ Provides access to the serial number set by manufacturer.
}
```
-
-## *make [property](#head.Properties)*
+
+## *make [property](#head_Properties)*
Provides access to the device manufacturer.
@@ -1066,12 +1147,10 @@ Provides access to the device manufacturer.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device manufacturer |
-| result.make | string | mandatory | Device manufacturer (must be one of the following: *Amlogic_Inc, Pioneer, arris, cisco, commscope, element, hisense, llama, pace, platco, raspberrypi_org, samsung, sercomm, sky, technicolor*) |
+| (property) | object | mandatory | Device manufacturer |
+| (property).make | string | mandatory | Device manufacturer (must be one of the following: *Amlogic_Inc, Pioneer, arris, cisco, commscope, element, hisense, llama, pace, platco, raspberrypi_org, samsung, sercomm, sky, technicolor*) |
### Errors
@@ -1103,8 +1182,8 @@ Provides access to the device manufacturer.
}
```
-
-## *modelid [property](#head.Properties)*
+
+## *modelid [property](#head_Properties)*
Provides access to the device model number or SKU.
@@ -1112,12 +1191,10 @@ Provides access to the device model number or SKU.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device model number or SKU |
-| result.sku | string | mandatory | Device model number or SKU (must be one of the following: *AX013AN, AX014AN, AX061AEI, CMXI11BEI, CS011AN, CXD01ANI, ELTE11MWR, HSTP11MWR, HSTP11MWRFX50, LS301, MX011AN, PI, PITU11MWR, PLTL11AEI, PX001AN, PX013AN, PX022AN, PX032ANI, PX051AEI, PXD01ANI, SCXI11AIC, SCXI11BEI, SKTL11AEI, SKXI11ADS, SKXI11AIS, SKXI11ANS, SX022AN, TX061AEI, XUSHTB11MWR, XUSHTC11MWR, XUSPTC11MWR, ZWCN11MWI*) |
+| (property) | object | mandatory | Device model number or SKU |
+| (property).sku | string | mandatory | Device model number or SKU (must be one of the following: *AX013AN, AX014AN, AX061AEI, CMXI11BEI, CS011AN, CXD01ANI, ELTE11MWR, HSTP11MWR, HSTP11MWRFX50, LS301, MX011AN, PI, PITU11MWR, PLTL11AEI, PX001AN, PX013AN, PX022AN, PX032ANI, PX051AEI, PXD01ANI, SCXI11AIC, SCXI11BEI, SKTL11AEI, SKXI11ADS, SKXI11AIS, SKXI11ANS, SX022AN, TX061AEI, XUSHTB11MWR, XUSHTC11MWR, XUSPTC11MWR, ZWCN11MWI*) |
### Errors
@@ -1149,8 +1226,8 @@ Provides access to the device model number or SKU.
}
```
-
-## *modelname [property](#head.Properties)*
+
+## *modelname [property](#head_Properties)*
Provides access to the device model name.
@@ -1158,12 +1235,10 @@ Provides access to the device model name.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device model name |
-| result.model | string | mandatory | Device model name |
+| (property) | object | mandatory | Device model name |
+| (property).model | string | mandatory | Device model name |
### Errors
@@ -1195,8 +1270,8 @@ Provides access to the device model name.
}
```
-
-## *modelyear [property](#head.Properties)*
+
+## *modelyear [property](#head_Properties)*
Provides access to the device model year.
@@ -1204,12 +1279,10 @@ Provides access to the device model year.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device model year |
-| result.year | integer | mandatory | Device model year |
+| (property) | object | mandatory | Device model year |
+| (property).year | integer | mandatory | Device model year |
### Errors
@@ -1241,8 +1314,8 @@ Provides access to the device model year.
}
```
-
-## *friendlyname [property](#head.Properties)*
+
+## *friendlyname [property](#head_Properties)*
Provides access to the device friendly name.
@@ -1250,12 +1323,10 @@ Provides access to the device friendly name.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device friendly name |
-| result.name | string | mandatory | Device friendly name |
+| (property) | object | mandatory | Device friendly name |
+| (property).name | string | mandatory | Device friendly name |
### Errors
@@ -1287,8 +1358,8 @@ Provides access to the device friendly name.
}
```
-
-## *platformname [property](#head.Properties)*
+
+## *platformname [property](#head_Properties)*
Provides access to the device Platform name.
@@ -1296,12 +1367,10 @@ Provides access to the device Platform name.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device Platform name |
-| result.name | string | mandatory | Device Platform name |
+| (property) | object | mandatory | Device Platform name |
+| (property).name | string | mandatory | Device Platform name |
### Errors
@@ -1333,8 +1402,8 @@ Provides access to the device Platform name.
}
```
-
-## *devicetype [property](#head.Properties)*
+
+## *devicetype [property](#head_Properties)*
Provides access to the device type.
@@ -1342,12 +1411,10 @@ Provides access to the device type.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Device type |
-| result.devicetype | string | mandatory | Device type (must be one of the following: *IpStb, QamIpStb, hybrid, mediaclient, tv*) |
+| (property) | object | mandatory | Device type |
+| (property).devicetype | string | mandatory | Device type (must be one of the following: *IpStb, QamIpStb, hybrid, mediaclient, tv*) |
### Errors
@@ -1379,8 +1446,8 @@ Provides access to the device type.
}
```
-
-## *distributorid [property](#head.Properties)*
+
+## *distributorid [property](#head_Properties)*
Provides access to the partner ID or distributor ID for device.
@@ -1388,12 +1455,10 @@ Provides access to the partner ID or distributor ID for device.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Partner ID or distributor ID for device |
-| result.distributorid | string | mandatory | Partner ID or distributor ID for device (must be one of the following: *MIT, charter, charter-dev, comcast, cox, cox-dev, cox-hospitality, cox-qa, rogers, rogers-dev, shaw, shaw-dev, sky-de, sky-deu, sky-deu-dev, sky-it, sky-it-dev, sky-italia, sky-uk, sky-uk-dev, videotron, xglobal*) |
+| (property) | object | mandatory | Partner ID or distributor ID for device |
+| (property).distributorid | string | mandatory | Partner ID or distributor ID for device (must be one of the following: *MIT, charter, charter-dev, comcast, cox, cox-dev, cox-hospitality, cox-qa, rogers, rogers-dev, shaw, shaw-dev, sky-de, sky-deu, sky-deu-dev, sky-it, sky-it-dev, sky-italia, sky-uk, sky-uk-dev, videotron, xglobal*) |
### Errors
diff --git a/DisplayInfo/doc/DisplayInfoPlugin.md b/DisplayInfo/doc/DisplayInfoPlugin.md
index ea9f8a1d..cd97e9f5 100644
--- a/DisplayInfo/doc/DisplayInfoPlugin.md
+++ b/DisplayInfo/doc/DisplayInfoPlugin.md
@@ -1,5 +1,5 @@
-
+
# Display Info Plugin
**Version: 1.0**
@@ -10,28 +10,28 @@ DisplayInfo plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# 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.
@@ -49,7 +49,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -59,14 +59,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | 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](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -78,7 +78,7 @@ The table below lists configuration options of the plugin.
| 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:
@@ -95,21 +95,236 @@ This plugin implements the following interfaces:
- IDisplayProperties ([IDisplayInfo.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/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 to ```camelCase```.
-
+
# Methods
The following methods are provided by the DisplayInfo plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
ConnectionProperties interface methods:
| Method | Description |
| :-------- | :-------- |
-| [edid](#method.edid) | TV's Extended Display Identification Data |
-| [widthincentimeters](#method.widthincentimeters) | Horizontal size in centimeters |
-| [heightincentimeters](#method.heightincentimeters) | Vertical size in centimeters |
+| [edid](#method_edid) | TV's Extended Display Identification Data |
+| [widthincentimeters](#method_widthincentimeters) | Horizontal size in centimeters |
+| [heightincentimeters](#method_heightincentimeters) | Vertical size in centimeters |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DisplayInfo.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *totalgpuram, freegpuram, isaudiopassthrough, connected, width, height, verticalfreq, hdcpprotection, portname, tvcapabilities, stbcapabilities, hdrsetting, colorspace, framerate, colourdepth, colorimetry, quantizationrange, eotf, versions, exists, register, unregister, edid, widthincentimeters, heightincentimeters*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DisplayInfo.1.exists",
+ "params": {
+ "method": "totalgpuram"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[updated](#notification_updated)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
-
-## *edid [method](#head.Methods)*
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DisplayInfo.1.register",
+ "params": {
+ "event": "updated",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[updated](#notification_updated)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "DisplayInfo.1.unregister",
+ "params": {
+ "event": "updated",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *edid [method](#head_Methods)*
TV's Extended Display Identification Data.
@@ -156,8 +371,8 @@ TV's Extended Display Identification Data.
}
```
-
-## *widthincentimeters [method](#head.Methods)*
+
+## *widthincentimeters [method](#head_Methods)*
Horizontal size in centimeters.
@@ -193,8 +408,8 @@ This method takes no parameters.
}
```
-
-## *heightincentimeters [method](#head.Methods)*
+
+## *heightincentimeters [method](#head_Methods)*
Vertical size in centimeters.
@@ -230,7 +445,7 @@ This method takes no parameters.
}
```
-
+
# Properties
The following properties are provided by the DisplayInfo plugin:
@@ -239,42 +454,42 @@ GraphicsProperties interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [totalgpuram](#property.totalgpuram) | read-only | Total GPU DRAM memory (in bytes) |
-| [freegpuram](#property.freegpuram) | read-only | Free GPU DRAM memory (in bytes) |
+| [totalgpuram](#property_totalgpuram) | read-only | Total GPU DRAM memory (in bytes) |
+| [freegpuram](#property_freegpuram) | read-only | Free GPU DRAM memory (in bytes) |
ConnectionProperties interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [isaudiopassthrough](#property.isaudiopassthrough) | read-only | Current audio passthrough status on HDMI |
-| [connected](#property.connected) | read-only | Current HDMI connection status |
-| [width](#property.width) | read-only | Horizontal resolution of TV |
-| [height](#property.height) | read-only | Vertical resolution of TV |
-| [verticalfreq](#property.verticalfreq) | read-only | Vertical Frequency |
-| [hdcpprotection](#property.hdcpprotection) | read/write | HDCP protocol used for transmission |
-| [portname](#property.portname) | read-only | Video output port on the STB used for connection to TV |
+| [isaudiopassthrough](#property_isaudiopassthrough) | read-only | Current audio passthrough status on HDMI |
+| [connected](#property_connected) | read-only | Current HDMI connection status |
+| [width](#property_width) | read-only | Horizontal resolution of TV |
+| [height](#property_height) | read-only | Vertical resolution of TV |
+| [verticalfreq](#property_verticalfreq) | read-only | Vertical Frequency |
+| [hdcpprotection](#property_hdcpprotection) | read/write | HDCP protocol used for transmission |
+| [portname](#property_portname) | read-only | Video output port on the STB used for connection to TV |
HDRProperties interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [tvcapabilities](#property.tvcapabilities) | read-only | HDR formats supported by TV |
-| [stbcapabilities](#property.stbcapabilities) | read-only | HDR formats supported by STB |
-| [hdrsetting](#property.hdrsetting) | read-only | HDR format in use |
+| [tvcapabilities](#property_tvcapabilities) | read-only | HDR formats supported by TV |
+| [stbcapabilities](#property_stbcapabilities) | read-only | HDR formats supported by STB |
+| [hdrsetting](#property_hdrsetting) | read-only | HDR format in use |
DisplayProperties interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [colorspace](#property.colorspace) | read-only | Provides access to the display's Colour space (chroma subsampling format) |
-| [framerate](#property.framerate) | read-only | Provides access to Frame Rate |
-| [colourdepth](#property.colourdepth) | read-only | Provides access to display's colour Depth |
-| [colorimetry](#property.colorimetry) | read-only | Provides access to display's colorimetry |
-| [quantizationrange](#property.quantizationrange) | read-only | Provides access to display's Qauntization Range |
-| [eotf](#property.eotf) | read-only | Provides access to display's Electro optical transfer function |
+| [colorspace](#property_colorspace) | read-only | Provides access to the display's Colour space (chroma subsampling format) |
+| [framerate](#property_framerate) | read-only | Provides access to Frame Rate |
+| [colourdepth](#property_colourdepth) | read-only | Provides access to display's colour Depth |
+| [colorimetry](#property_colorimetry) | read-only | Provides access to display's colorimetry |
+| [quantizationrange](#property_quantizationrange) | read-only | Provides access to display's Qauntization Range |
+| [eotf](#property_eotf) | read-only | Provides access to display's Electro optical transfer function |
-
-## *totalgpuram [property](#head.Properties)*
+
+## *totalgpuram [property](#head_Properties)*
Provides access to the total GPU DRAM memory (in bytes).
@@ -282,11 +497,9 @@ Provides access to the total GPU DRAM memory (in bytes).
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Total GPU DRAM memory (in bytes) |
+| (property) | integer | mandatory | Total GPU DRAM memory (in bytes) |
### Example
@@ -310,8 +523,8 @@ Provides access to the total GPU DRAM memory (in bytes).
}
```
-
-## *freegpuram [property](#head.Properties)*
+
+## *freegpuram [property](#head_Properties)*
Provides access to the free GPU DRAM memory (in bytes).
@@ -319,11 +532,9 @@ Provides access to the free GPU DRAM memory (in bytes).
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Free GPU DRAM memory (in bytes) |
+| (property) | integer | mandatory | Free GPU DRAM memory (in bytes) |
### Example
@@ -347,8 +558,8 @@ Provides access to the free GPU DRAM memory (in bytes).
}
```
-
-## *isaudiopassthrough [property](#head.Properties)*
+
+## *isaudiopassthrough [property](#head_Properties)*
Provides access to the current audio passthrough status on HDMI.
@@ -356,11 +567,9 @@ Provides access to the current audio passthrough status on HDMI.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | Enabled/Disabled |
+| (property) | boolean | mandatory | Enabled/Disabled |
### Example
@@ -384,8 +593,8 @@ Provides access to the current audio passthrough status on HDMI.
}
```
-
-## *connected [property](#head.Properties)*
+
+## *connected [property](#head_Properties)*
Provides access to the current HDMI connection status.
@@ -393,11 +602,9 @@ Provides access to the current HDMI connection status.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | Connected/Disconnected |
+| (property) | boolean | mandatory | Connected/Disconnected |
### Example
@@ -421,8 +628,8 @@ Provides access to the current HDMI connection status.
}
```
-
-## *width [property](#head.Properties)*
+
+## *width [property](#head_Properties)*
Provides access to the horizontal resolution of TV.
@@ -430,11 +637,9 @@ Provides access to the horizontal resolution of TV.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Width of TV in pixels |
+| (property) | integer | mandatory | Width of TV in pixels |
### Example
@@ -458,8 +663,8 @@ Provides access to the horizontal resolution of TV.
}
```
-
-## *height [property](#head.Properties)*
+
+## *height [property](#head_Properties)*
Provides access to the vertical resolution of TV.
@@ -467,11 +672,9 @@ Provides access to the vertical resolution of TV.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Height of TV in pixels |
+| (property) | integer | mandatory | Height of TV in pixels |
### Example
@@ -495,8 +698,8 @@ Provides access to the vertical resolution of TV.
}
```
-
-## *verticalfreq [property](#head.Properties)*
+
+## *verticalfreq [property](#head_Properties)*
Provides access to the vertical Frequency.
@@ -504,11 +707,9 @@ Provides access to the vertical Frequency.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Vertical freq |
+| (property) | integer | mandatory | Vertical freq |
### Example
@@ -532,8 +733,8 @@ Provides access to the vertical Frequency.
}
```
-
-## *hdcpprotection [property](#head.Properties)*
+
+## *hdcpprotection [property](#head_Properties)*
Provides access to the HDCP protocol used for transmission.
@@ -543,11 +744,9 @@ Provides access to the HDCP protocol used for transmission.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | HDCP protocol used for transmission (must be one of the following: *Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted*) |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Protocol (must be one of the following: *Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted*) |
+| (property) | string | mandatory | Protocol (must be one of the following: *Hdcp1x, Hdcp2x, HdcpAuto, HdcpUnencrypted*) |
### Example
@@ -567,7 +766,7 @@ Provides access to the HDCP protocol used for transmission.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "HdcpUnencrypted"
+ "result": "Hdcp1x"
}
```
@@ -578,7 +777,7 @@ Provides access to the HDCP protocol used for transmission.
"jsonrpc": "2.0",
"id": 42,
"method": "DisplayInfo.1.hdcpprotection",
- "params": "HdcpUnencrypted"
+ "params": "Hdcp1x"
}
```
@@ -592,8 +791,8 @@ Provides access to the HDCP protocol used for transmission.
}
```
-
-## *portname [property](#head.Properties)*
+
+## *portname [property](#head_Properties)*
Provides access to the video output port on the STB used for connection to TV.
@@ -601,11 +800,9 @@ Provides access to the video output port on the STB used for connection to TV.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Video output port name |
+| (property) | string | mandatory | Video output port name |
### Example
@@ -629,8 +826,8 @@ Provides access to the video output port on the STB used for connection to TV.
}
```
-
-## *tvcapabilities [property](#head.Properties)*
+
+## *tvcapabilities [property](#head_Properties)*
Provides access to the HDR formats supported by TV.
@@ -638,12 +835,10 @@ Provides access to the HDR formats supported by TV.
### Value
-### Result
-
| 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*) |
+| (property) | array | mandatory | HDR formats supported by TV |
+| (property)[#] | string | mandatory | *...* (must be one of the following: *Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor*) |
### Example
@@ -664,13 +859,13 @@ Provides access to the HDR formats supported by TV.
"jsonrpc": "2.0",
"id": 42,
"result": [
- "HdrOff"
+ "Hdr10"
]
}
```
-
-## *stbcapabilities [property](#head.Properties)*
+
+## *stbcapabilities [property](#head_Properties)*
Provides access to the HDR formats supported by STB.
@@ -678,12 +873,10 @@ Provides access to the HDR formats supported by STB.
### Value
-### Result
-
| 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*) |
+| (property) | array | mandatory | HDR formats supported by STB |
+| (property)[#] | string | mandatory | *...* (must be one of the following: *Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor*) |
### Example
@@ -704,13 +897,13 @@ Provides access to the HDR formats supported by STB.
"jsonrpc": "2.0",
"id": 42,
"result": [
- "HdrOff"
+ "Hdr10"
]
}
```
-
-## *hdrsetting [property](#head.Properties)*
+
+## *hdrsetting [property](#head_Properties)*
Provides access to the HDR format in use.
@@ -718,11 +911,9 @@ Provides access to the HDR format in use.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | HDR format (must be one of the following: *Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor*) |
+| (property) | string | mandatory | HDR format (must be one of the following: *Hdr10, Hdr10plus, HdrDolbyvision, HdrHlg, HdrOff, HdrTechnicolor*) |
### Example
@@ -742,12 +933,12 @@ Provides access to the HDR format in use.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "HdrOff"
+ "result": "Hdr10"
}
```
-
-## *colorspace [property](#head.Properties)*
+
+## *colorspace [property](#head_Properties)*
Provides access to the provides access to the display's Colour space (chroma subsampling format).
@@ -755,11 +946,9 @@ Provides access to the provides access to the display's Colour space (chroma sub
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Colour space (must be one of the following: *FormatOther, FormatRgb444, FormatUnknown, FormatYcbcr420, FormatYcbcr422, FormatYcbcr444*) |
+| (property) | string | mandatory | Colour space (must be one of the following: *FormatOther, FormatRgb444, FormatUnknown, FormatYcbcr420, FormatYcbcr422, FormatYcbcr444*) |
### Example
@@ -779,12 +968,12 @@ Provides access to the provides access to the display's Colour space (chroma sub
{
"jsonrpc": "2.0",
"id": 42,
- "result": "FormatUnknown"
+ "result": "FormatOther"
}
```
-
-## *framerate [property](#head.Properties)*
+
+## *framerate [property](#head_Properties)*
Provides access to the provides access to Frame Rate.
@@ -792,11 +981,9 @@ Provides access to the provides access to Frame Rate.
### Value
-### Result
-
| 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*) |
+| (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
@@ -816,12 +1003,12 @@ Provides access to the provides access to Frame Rate.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "FramerateUnknown"
+ "result": "Framerate23976"
}
```
-
-## *colourdepth [property](#head.Properties)*
+
+## *colourdepth [property](#head_Properties)*
Provides access to the provides access to display's colour Depth.
@@ -829,11 +1016,9 @@ Provides access to the provides access to display's colour Depth.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Colour depth (must be one of the following: *Colordepth10Bit, Colordepth12Bit, Colordepth8Bit, ColordepthUnknown*) |
+| (property) | string | mandatory | Colour depth (must be one of the following: *Colordepth10Bit, Colordepth12Bit, Colordepth8Bit, ColordepthUnknown*) |
### Example
@@ -853,12 +1038,12 @@ Provides access to the provides access to display's colour Depth.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "ColordepthUnknown"
+ "result": "Colordepth8Bit"
}
```
-
-## *colorimetry [property](#head.Properties)*
+
+## *colorimetry [property](#head_Properties)*
Provides access to the provides access to display's colorimetry.
@@ -866,12 +1051,10 @@ Provides access to the provides access to display's colorimetry.
### Value
-### Result
-
| 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*) |
+| (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
@@ -892,13 +1075,13 @@ Provides access to the provides access to display's colorimetry.
"jsonrpc": "2.0",
"id": 42,
"result": [
- "ColorimetryUnknown"
+ "ColorimetryOther"
]
}
```
-
-## *quantizationrange [property](#head.Properties)*
+
+## *quantizationrange [property](#head_Properties)*
Provides access to the provides access to display's Qauntization Range.
@@ -906,11 +1089,9 @@ Provides access to the provides access to display's Qauntization Range.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Quantization range (must be one of the following: *QuantizationrangeFull, QuantizationrangeLimited, QuantizationrangeUnknown*) |
+| (property) | string | mandatory | Quantization range (must be one of the following: *QuantizationrangeFull, QuantizationrangeLimited, QuantizationrangeUnknown*) |
### Example
@@ -930,12 +1111,12 @@ Provides access to the provides access to display's Qauntization Range.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "QuantizationrangeUnknown"
+ "result": "QuantizationrangeLimited"
}
```
-
-## *eotf [property](#head.Properties)*
+
+## *eotf [property](#head_Properties)*
Provides access to the provides access to display's Electro optical transfer function.
@@ -943,11 +1124,9 @@ Provides access to the provides access to display's Electro optical transfer fun
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Display's EOTF (must be one of the following: *EotfBt1886, EotfBt2100, EotfOther, EotfSmpteSt2084, EotfUnknown*) |
+| (property) | string | mandatory | Display's EOTF (must be one of the following: *EotfBt1886, EotfBt2100, EotfOther, EotfSmpteSt2084, EotfUnknown*) |
### Example
@@ -967,11 +1146,11 @@ Provides access to the provides access to display's Electro optical transfer fun
{
"jsonrpc": "2.0",
"id": 42,
- "result": "EotfUnknown"
+ "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](#ref.Thunder)] for information on how to register for a notification.
@@ -982,10 +1161,10 @@ ConnectionProperties interface events:
| Notification | Description |
| :-------- | :-------- |
-| [updated](#notification.updated) | Signal changes on the display update |
+| [updated](#notification_updated) | Signal changes on the display update |
-
-## *updated [notification](#head.Notifications)*
+
+## *updated [notification](#head_Notifications)*
Signal changes on the display update..
@@ -1019,8 +1198,10 @@ Signal changes on the display update..
"jsonrpc": "2.0",
"method": "myid.updated",
"params": {
- "event": "PreResolutionChange"
+ "event": "PostResolutionChange"
}
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.updated``.
+
diff --git a/LocationSync/doc/LocationSyncPlugin.md b/LocationSync/doc/LocationSyncPlugin.md
index d2f27d69..ce8ad054 100644
--- a/LocationSync/doc/LocationSyncPlugin.md
+++ b/LocationSync/doc/LocationSyncPlugin.md
@@ -1,5 +1,5 @@
-
+
# Location Sync Plugin
**Version: 1.0**
@@ -10,28 +10,28 @@ LocationSync plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the LocationSync 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.
@@ -49,7 +49,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -59,14 +59,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The LocationSync plugin provides geo-location functionality.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -83,7 +83,7 @@ The table below lists configuration options of the plugin.
| configuration?.source | string | optional | URI of the Location Server (default:"http://jsonip.metrological.com/?maf=true") |
| configuration?.timezone | string | optional | With this the timezone can be overridden, otherwise taken from location (note can als be overriden with JSONRPC call) |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -94,19 +94,234 @@ This plugin implements the following interfaces:
- ILocationSync ([ILocationSync.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/ILocationSync.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the LocationSync plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
LocationSync interface methods:
| Method | Description |
| :-------- | :-------- |
-| [sync](#method.sync) | Synchronize the location |
+| [sync](#method_sync) | Synchronize the location |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "LocationSync.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *timezone, location, versions, exists, register, unregister, sync*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "LocationSync.1.exists",
+ "params": {
+ "method": "timezone"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[timezonechanged](#notification_timezonechanged), [updated](#notification_updated)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "LocationSync.1.register",
+ "params": {
+ "event": "timezonechanged",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[timezonechanged](#notification_timezonechanged), [updated](#notification_updated)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
-
-## *sync [method](#head.Methods)*
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "LocationSync.1.unregister",
+ "params": {
+ "event": "timezonechanged",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *sync [method](#head_Methods)*
Synchronize the location.
@@ -151,7 +366,7 @@ This method takes no parameters.
}
```
-
+
# Properties
The following properties are provided by the LocationSync plugin:
@@ -160,16 +375,16 @@ TimeZone interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [timezone](#property.timezone) | read/write | TimeZone for system |
+| [timezone](#property_timezone) | read/write | TimeZone for system |
LocationSync interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [location](#property.location) | read-only | Get information about the location |
+| [location](#property_location) | read-only | Get information about the location |
-
-## *timezone [property](#head.Properties)*
+
+## *timezone [property](#head_Properties)*
Provides access to the timeZone for system.
@@ -222,8 +437,8 @@ Provides access to the timeZone for system.
}
```
-
-## *location [property](#head.Properties)*
+
+## *location [property](#head_Properties)*
Provides access to the get information about the location.
@@ -231,16 +446,14 @@ Provides access to the get information about the location.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Get information about the location |
-| result?.city | string | optional | City name |
-| result?.country | string | optional | Country name |
-| result?.region | string | optional | Region name |
-| result?.timezone | string | optional | *(deprecated)* Time zone information |
-| result?.publicip | string | optional | *(deprecated)* Public IP |
+| (property) | object | mandatory | Get information about the location |
+| (property)?.city | string | optional | City name |
+| (property)?.country | string | optional | Country name |
+| (property)?.region | string | optional | Region name |
+| (property)?.timezone | string | optional | *(deprecated)* Time zone information |
+| (property)?.publicip | string | optional | *(deprecated)* Public IP |
### Errors
@@ -274,7 +487,7 @@ Provides access to the get information about the location.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
@@ -285,16 +498,16 @@ TimeZone interface events:
| Notification | Description |
| :-------- | :-------- |
-| [timezonechanged](#notification.timezonechanged) | TimeZone was set for the system |
+| [timezonechanged](#notification_timezonechanged) | TimeZone was set for the system |
LocationSync interface events:
| Notification | Description |
| :-------- | :-------- |
-| [updated](#notification.updated) / [locationchange](#notification.updated) | Signals a location change |
+| [updated](#notification_updated) / [locationchange](#notification_updated) | Signals a location change |
-
-## *timezonechanged [notification](#head.Notifications)*
+
+## *timezonechanged [notification](#head_Notifications)*
TimeZone was set for the system.
@@ -330,8 +543,10 @@ TimeZone was set for the system.
}
```
-
-## *updated [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.timezonechanged``.
+
+
+## *updated [notification](#head_Notifications)*
Signals a location change.
@@ -366,3 +581,5 @@ This notification carries no parameters.
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.updated``.
+
diff --git a/MessageControl/doc/MessageControlPlugin.md b/MessageControl/doc/MessageControlPlugin.md
index 83c0fa12..420e8677 100644
--- a/MessageControl/doc/MessageControlPlugin.md
+++ b/MessageControl/doc/MessageControlPlugin.md
@@ -1,5 +1,5 @@
-
+
# MessageControl Plugin
**Version: 1.0**
@@ -10,27 +10,27 @@ MessageControl plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the MessageControl plugin. It includes detailed specification about its configuration, methods and properties provided.
-
+
## 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.
@@ -48,7 +48,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -58,14 +58,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The MessageControl plugin allows reading of the traces from Thunder, and controlling them tracing and logging. Allows for outputting logging messages to the websocket.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -84,8 +84,9 @@ The table below lists configuration options of the plugin.
| remote | object | optional | *...* |
| remote.port | integer | mandatory | Port |
| remote?.bindig | string | optional | Binding address |
+| remote.interface | string | mandatory | Interface |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -93,19 +94,122 @@ This plugin implements the following interfaces:
- IMessageControl ([IMessageControl.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IMessageControl.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the MessageControl plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+
MessageControl interface methods:
| Method | Description |
| :-------- | :-------- |
-| [enable](#method.enable) | Enables/disables a message control |
+| [enable](#method_enable) | Enables/disables a message control |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "MessageControl.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
-
-## *enable [method](#head.Methods)*
+### Description
+
+This method will return *True* for the following methods/properties: *modules, controls, versions, exists, enable*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "MessageControl.1.exists",
+ "params": {
+ "method": "modules"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *enable [method](#head_Methods)*
Enables/disables a message control.
@@ -135,7 +239,7 @@ Enables/disables a message control.
"id": 42,
"method": "MessageControl.1.enable",
"params": {
- "type": "Invalid",
+ "type": "Tracing",
"category": "Information",
"module": "Plugin_BluetoothControl",
"enabled": false
@@ -153,7 +257,7 @@ Enables/disables a message control.
}
```
-
+
# Properties
The following properties are provided by the MessageControl plugin:
@@ -162,11 +266,11 @@ MessageControl interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [modules](#property.modules) | read-only | Retrieves a list of current message modules |
-| [controls](#property.controls) | read-only | Retrieves a list of current message controls for a specific module |
+| [modules](#property_modules) | read-only | Retrieves a list of current message modules |
+| [controls](#property_controls) | read-only | Retrieves a list of current message controls for a specific module |
-
-## *modules [property](#head.Properties)*
+
+## *modules [property](#head_Properties)*
Provides access to the retrieves a list of current message modules.
@@ -174,12 +278,10 @@ Provides access to the retrieves a list of current message modules.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Retrieves a list of current message modules |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | Retrieves a list of current message modules |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -205,14 +307,14 @@ Provides access to the retrieves a list of current message modules.
}
```
-
-## *controls [property](#head.Properties)*
+
+## *controls [property](#head_Properties)*
Provides access to the retrieves a list of current message controls for a specific module.
> This property is **read-only**.
-> The *module* parameter shall be passed as the index to the property, e.g. ``MessageControl.1.controls@``.
+> The *module* parameter shall be passed as the index to the property, i.e. ``controls@``.
### Index
@@ -222,16 +324,14 @@ Provides access to the retrieves a list of current message controls for a specif
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Retrieves a list of current message controls for a specific module |
-| result[#] | object | mandatory | *...* |
-| result[#].type | string | mandatory | Type of message (must be one of the following: *Assert, Invalid, Logging, OperationalStream, Reporting, Tracing*) |
-| result[#].category | string | mandatory | Name of the message category |
-| result[#].module | string | mandatory | Name of the module the message is originating from |
-| result[#].enabled | boolean | mandatory | Denotes if the control is enabled (true) or disabled (false) |
+| (property) | array | mandatory | Retrieves a list of current message controls for a specific module |
+| (property)[#] | object | mandatory | *...* |
+| (property)[#].type | string | mandatory | Type of message (must be one of the following: *Assert, Invalid, Logging, OperationalStream, Reporting, Tracing*) |
+| (property)[#].category | string | mandatory | Name of the message category |
+| (property)[#].module | string | mandatory | Name of the module the message is originating from |
+| (property)[#].enabled | boolean | mandatory | Denotes if the control is enabled (true) or disabled (false) |
### Example
@@ -253,7 +353,7 @@ Provides access to the retrieves a list of current message controls for a specif
"id": 42,
"result": [
{
- "type": "Invalid",
+ "type": "Tracing",
"category": "Information",
"module": "Plugin_BluetoothControl",
"enabled": false
diff --git a/Messenger/doc/MessengerPlugin.md b/Messenger/doc/MessengerPlugin.md
index ba1d29d0..fb637796 100644
--- a/Messenger/doc/MessengerPlugin.md
+++ b/Messenger/doc/MessengerPlugin.md
@@ -1,5 +1,5 @@
-
+
# Messenger Plugin
**Version: 1.0**
@@ -10,27 +10,27 @@ Messenger plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the Messenger plugin. It includes detailed specification about its configuration, methods provided and notifications sent.
-
+
## 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.
@@ -48,7 +48,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -58,14 +58,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The Messenger allows exchanging text messages between users gathered in virtual rooms. The rooms are dynamically created and destroyed based on user attendance. Upon joining a room the client receives a unique token (room ID) to be used for sending and receiving the messages.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -77,29 +77,244 @@ The table below lists configuration options of the plugin.
| locator | string | mandatory | Library name: *libThunderMessenger.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:
-- IMessenger ([IMessenger.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IMessenger.h)) (version 1.0.0) (compliant format)
+- JSONRPC::IMessenger ([IMessenger.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IMessenger.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the Messenger plugin:
-Messenger interface methods:
+Built-in methods:
| Method | Description |
| :-------- | :-------- |
-| [join](#method.join) | Joins a messaging room |
-| [leave](#method.leave) | Leaves a messaging room |
-| [send](#method.send) | Sends a message to a messaging room |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
-
-## *join [method](#head.Methods)*
+JSONRPC Messenger interface methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [join](#method_join) | Joins a messaging room |
+| [leave](#method_leave) | Leaves a messaging room |
+| [send](#method_send) | Sends a message to a messaging room |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Messenger.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *versions, exists, register, unregister, join, leave, send*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Messenger.1.exists",
+ "params": {
+ "method": "versions"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[roomupdate](#notification_roomupdate), [userupdate](#notification_userupdate), [message](#notification_message)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Messenger.1.register",
+ "params": {
+ "event": "roomupdate",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[roomupdate](#notification_roomupdate), [userupdate](#notification_userupdate), [message](#notification_message)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Messenger.1.unregister",
+ "params": {
+ "event": "roomupdate",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *join [method](#head_Methods)*
Joins a messaging room.
@@ -116,7 +331,7 @@ If the specified room does not exist, then it will be created.
| params.user | string | mandatory | Name of ther user to join as |
| params?.secure | string | optional | Denotes if the room is secure (by default not secure) (must be one of the following: *insecure, secure*) |
| params?.acl | array | optional | List of URL origins with possible wildcards |
-| params?.acl[#] | string | optional | *...* |
+| params?.acl[#] | string | mandatory | *...* |
### Result
@@ -144,7 +359,7 @@ If the specified room does not exist, then it will be created.
"params": {
"room": "Lounge",
"user": "Bob",
- "secure": "insecure",
+ "secure": "secure",
"acl": [
"..."
]
@@ -162,8 +377,8 @@ If the specified room does not exist, then it will be created.
}
```
-
-## *leave [method](#head.Methods)*
+
+## *leave [method](#head_Methods)*
Leaves a messaging room.
@@ -215,8 +430,8 @@ The room ID becomes invalid after this call. If there are no more users, the roo
}
```
-
-## *send [method](#head.Methods)*
+
+## *send [method](#head_Methods)*
Sends a message to a messaging room.
@@ -266,23 +481,23 @@ Sends a message to a messaging room.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
The following events are provided by the Messenger plugin:
-Messenger interface events:
+JSONRPC Messenger interface events:
| Notification | Description |
| :-------- | :-------- |
-| [roomupdate](#notification.roomupdate) | Notifies of room status changes |
-| [userupdate](#notification.userupdate) | Notifies of user status changes |
-| [message](#notification.message) | Notifies of messages sent the the room |
+| [roomupdate](#notification_roomupdate) | Notifies of room status changes |
+| [userupdate](#notification_userupdate) | Notifies of user status changes |
+| [message](#notification_message) | Notifies of messages sent the the room |
-
-## *roomupdate [notification](#head.Notifications)*
+
+## *roomupdate [notification](#head_Notifications)*
Notifies of room status changes.
@@ -290,7 +505,7 @@ Notifies of room status changes.
Immediately after registering to this notification the listener will sequentially receive updates of all rooms that have been created so far.
-> If applicable, this notification may be sent out during registration, reflecting the current status.
+> This notification may also be triggered by client registration.
### Notification Parameters
@@ -325,14 +540,16 @@ Immediately after registering to this notification the listener will sequentiall
"method": "myid.roomupdate",
"params": {
"room": "Lounge",
- "action": "created",
- "secure": "insecure"
+ "action": "destroyed",
+ "secure": "secure"
}
}
```
-
-## *userupdate [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.roomupdate``.
+
+
+## *userupdate [notification](#head_Notifications)*
Notifies of user status changes.
@@ -340,11 +557,11 @@ Notifies of user status changes.
Immediately after registering to this notification the listener will sequentially receive updates of all users that have joined the room so far.
-> If applicable, this notification may be sent out during registration, reflecting the current status.
+> This notification may also be triggered by client registration.
### Parameters
-> The *roomId* parameter shall be passed within the client ID during registration, e.g. *1e217990dd1cd4f66124.myid*
+> The *roomId* parameter shall be passed within the *id* parameter to the ``register`` call, i.e. ``.``.
### Notification Parameters
@@ -378,21 +595,23 @@ Immediately after registering to this notification the listener will sequentiall
"method": "1e217990dd1cd4f66124.myid.userupdate",
"params": {
"user": "Bob",
- "action": "joined"
+ "action": "left"
}
}
```
-> The *roomId* parameter is passed within the designator, e.g. *1e217990dd1cd4f66124.myid.userupdate*.
+> The *client ID* parameter is passed within the notification designator, i.e. ``..userupdate``.
-
-## *message [notification](#head.Notifications)*
+> The *roomId* parameter is passed within the notification designator, i.e. ``..userupdate``.
+
+
+## *message [notification](#head_Notifications)*
Notifies of messages sent the the room.
### Parameters
-> The *roomId* parameter shall be passed within the client ID during registration, e.g. *1e217990dd1cd4f66124.myid*
+> The *roomId* parameter shall be passed within the *id* parameter to the ``register`` call, i.e. ``.``.
### Notification Parameters
@@ -431,5 +650,7 @@ Notifies of messages sent the the room.
}
```
-> The *roomId* parameter is passed within the designator, e.g. *1e217990dd1cd4f66124.myid.message*.
+> The *client ID* parameter is passed within the notification designator, i.e. ``..message``.
+
+> The *roomId* parameter is passed within the notification designator, i.e. ``..message``.
diff --git a/Monitor/doc/MonitorPlugin.md b/Monitor/doc/MonitorPlugin.md
index c94144f9..078f4329 100644
--- a/Monitor/doc/MonitorPlugin.md
+++ b/Monitor/doc/MonitorPlugin.md
@@ -1,5 +1,5 @@
-
+
# Monitor Plugin
**Version: 1.0**
@@ -10,28 +10,28 @@ Monitor plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the Monitor 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.
@@ -49,7 +49,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -59,14 +59,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The Monitor plugin provides a watchdog-like functionality for framework processes.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -79,7 +79,7 @@ The table below lists configuration options of the plugin.
| startmode | string | mandatory | Determines in which state the plugin should be moved to at startup of the framework |
| configuration | object | optional | *...* |
| configuration?.observables | array | optional | List of observable plugin details |
-| configuration?.observables[#] | object | optional | *...* |
+| configuration?.observables[#] | object | mandatory | *...* |
| configuration?.observables[#]?.callsign | string | optional | Callsign of the plugin to be monitored |
| configuration?.observables[#]?.memory | integer | optional | Interval(in seconds) for a memory measurement |
| configuration?.observables[#]?.memorylimit | integer | optional | Memory threshold in bytes |
@@ -88,7 +88,7 @@ The table below lists configuration options of the plugin.
| configuration?.observables[#]?.restart?.window | integer | optional | Time period(in seconds) within which failures must happen for the limit to be considered crossed |
| configuration?.observables[#]?.restart?.limit | integer | optional | Maximum number or restarts to be attempted |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -97,26 +97,241 @@ This plugin implements the following interfaces:
- IMemoryMonitor ([IMemoryMonitor.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IMemoryMonitor.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the Monitor plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
Monitor interface methods:
| Method | Description |
| :-------- | :-------- |
-| [restartlimits](#method.restartlimits) | Sets new restart limits for a service |
-| [resetstats](#method.resetstats) | Resets memory and process statistics for a single service watched by the Monitor |
+| [restartlimits](#method_restartlimits) | Sets new restart limits for a service |
+| [resetstats](#method_resetstats) | Resets memory and process statistics for a single service watched by the Monitor |
MemoryMonitor interface methods:
| Method | Description |
| :-------- | :-------- |
-| [resetstatistics](#method.resetstatistics) | Resets memory statistics for a given service |
+| [resetstatistics](#method_resetstatistics) | Resets memory statistics for a given service |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Monitor.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *status, restartinglimits, observables, measurementdata, versions, exists, register, unregister, restartlimits, resetstats, resetstatistics*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Monitor.1.exists",
+ "params": {
+ "method": "status"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
-
-## *restartlimits [method](#head.Methods)*
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[action](#notification_action), [statuschanged](#notification_statuschanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Monitor.1.register",
+ "params": {
+ "event": "action",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[action](#notification_action), [statuschanged](#notification_statuschanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Monitor.1.unregister",
+ "params": {
+ "event": "action",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *restartlimits [method](#head_Methods)*
Sets new restart limits for a service.
@@ -165,8 +380,8 @@ Sets new restart limits for a service.
}
```
-
-## *resetstats [method](#head.Methods)*
+
+## *resetstats [method](#head_Methods)*
Resets memory and process statistics for a single service watched by the Monitor.
@@ -269,8 +484,8 @@ Resets memory and process statistics for a single service watched by the Monitor
}
```
-
-## *resetstatistics [method](#head.Methods)*
+
+## *resetstatistics [method](#head_Methods)*
Resets memory statistics for a given service.
@@ -312,7 +527,7 @@ Resets memory statistics for a given service.
}
```
-
+
# Properties
The following properties are provided by the Monitor plugin:
@@ -321,24 +536,24 @@ Monitor interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [status](#property.status) | read-only | Service statistics |
+| [status](#property_status) | read-only | Service statistics |
MemoryMonitor interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [restartinglimits](#property.restartinglimits) | read/write | Limits of restarting of a service |
-| [observables](#property.observables) | read-only | List of services watched by the Monitor |
-| [measurementdata](#property.measurementdata) | read-only | Memory statistics for a given service |
+| [restartinglimits](#property_restartinglimits) | read/write | Limits of restarting of a service |
+| [observables](#property_observables) | read-only | List of services watched by the Monitor |
+| [measurementdata](#property_measurementdata) | read-only | Memory statistics for a given service |
-
-## *status [property](#head.Properties)*
+
+## *status [property](#head_Properties)*
Provides access to the service statistics.
> This property is **read-only**.
-> The *callsign* parameter shall be passed as the index to the property, e.g. ``Monitor.1.status@``.
+> The *callsign* parameter shall be passed as the index to the property, i.e. ``status@``.
### Index
@@ -348,39 +563,37 @@ Provides access to the service statistics.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Service statistics |
-| result[#] | object | mandatory | *...* |
-| result[#].measurements | object | mandatory | Measurements for the service |
-| result[#].measurements.resident | object | mandatory | Resident memory measurement |
-| result[#].measurements.resident.min | integer | mandatory | Minimal value measured |
-| result[#].measurements.resident.max | integer | mandatory | Maximal value measured |
-| result[#].measurements.resident.average | integer | mandatory | Average of all measurements |
-| result[#].measurements.resident.last | integer | mandatory | Last measured value |
-| result[#].measurements.allocated | object | mandatory | Allocated memory measurement |
-| result[#].measurements.allocated.min | integer | mandatory | Minimal value measured |
-| result[#].measurements.allocated.max | integer | mandatory | Maximal value measured |
-| result[#].measurements.allocated.average | integer | mandatory | Average of all measurements |
-| result[#].measurements.allocated.last | integer | mandatory | Last measured value |
-| result[#].measurements.shared | object | mandatory | Shared memory measurement |
-| result[#].measurements.shared.min | integer | mandatory | Minimal value measured |
-| result[#].measurements.shared.max | integer | mandatory | Maximal value measured |
-| result[#].measurements.shared.average | integer | mandatory | Average of all measurements |
-| result[#].measurements.shared.last | integer | mandatory | Last measured value |
-| result[#].measurements.process | object | mandatory | Processes measurement |
-| result[#].measurements.process.min | integer | mandatory | Minimal value measured |
-| result[#].measurements.process.max | integer | mandatory | Maximal value measured |
-| result[#].measurements.process.average | integer | mandatory | Average of all measurements |
-| result[#].measurements.process.last | integer | mandatory | Last measured value |
-| result[#].measurements.operational | boolean | mandatory | Whether the service is up and running |
-| result[#].measurements.count | integer | mandatory | Number of measurements |
-| result[#].observable | string | mandatory | A callsign of the watched service |
-| result[#].restart | object | mandatory | Restart limits for failures applying to the service |
-| result[#].restart.limit | integer | mandatory | Maximum number or restarts to be attempted |
-| result[#].restart.window | integer | mandatory | Time period (in seconds) within which failures must happen for the limit to be considered crossed |
+| (property) | array | mandatory | Service statistics |
+| (property)[#] | object | mandatory | *...* |
+| (property)[#].measurements | object | mandatory | Measurements for the service |
+| (property)[#].measurements.resident | object | mandatory | Resident memory measurement |
+| (property)[#].measurements.resident.min | integer | mandatory | Minimal value measured |
+| (property)[#].measurements.resident.max | integer | mandatory | Maximal value measured |
+| (property)[#].measurements.resident.average | integer | mandatory | Average of all measurements |
+| (property)[#].measurements.resident.last | integer | mandatory | Last measured value |
+| (property)[#].measurements.allocated | object | mandatory | Allocated memory measurement |
+| (property)[#].measurements.allocated.min | integer | mandatory | Minimal value measured |
+| (property)[#].measurements.allocated.max | integer | mandatory | Maximal value measured |
+| (property)[#].measurements.allocated.average | integer | mandatory | Average of all measurements |
+| (property)[#].measurements.allocated.last | integer | mandatory | Last measured value |
+| (property)[#].measurements.shared | object | mandatory | Shared memory measurement |
+| (property)[#].measurements.shared.min | integer | mandatory | Minimal value measured |
+| (property)[#].measurements.shared.max | integer | mandatory | Maximal value measured |
+| (property)[#].measurements.shared.average | integer | mandatory | Average of all measurements |
+| (property)[#].measurements.shared.last | integer | mandatory | Last measured value |
+| (property)[#].measurements.process | object | mandatory | Processes measurement |
+| (property)[#].measurements.process.min | integer | mandatory | Minimal value measured |
+| (property)[#].measurements.process.max | integer | mandatory | Maximal value measured |
+| (property)[#].measurements.process.average | integer | mandatory | Average of all measurements |
+| (property)[#].measurements.process.last | integer | mandatory | Last measured value |
+| (property)[#].measurements.operational | boolean | mandatory | Whether the service is up and running |
+| (property)[#].measurements.count | integer | mandatory | Number of measurements |
+| (property)[#].observable | string | mandatory | A callsign of the watched service |
+| (property)[#].restart | object | mandatory | Restart limits for failures applying to the service |
+| (property)[#].restart.limit | integer | mandatory | Maximum number or restarts to be attempted |
+| (property)[#].restart.window | integer | mandatory | Time period (in seconds) within which failures must happen for the limit to be considered crossed |
### Example
@@ -440,12 +653,12 @@ Provides access to the service statistics.
}
```
-
-## *restartinglimits [property](#head.Properties)*
+
+## *restartinglimits [property](#head_Properties)*
Provides access to the limits of restarting of a service.
-> The *callsign* parameter shall be passed as the index to the property, e.g. ``Monitor.1.restartinglimits@``.
+> The *callsign* parameter shall be passed as the index to the property, i.e. ``restartinglimits@``.
### Index
@@ -462,13 +675,11 @@ Provides access to the limits of restarting of a service.
| (property).value.limit | integer | mandatory | Maximum number or restarts to be attempted |
| (property).value.window | integer | mandatory | Time period (in seconds) within which failures must happen for the limit to be considered crossed |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Limits of restarting of a service |
-| result.limit | integer | mandatory | Maximum number or restarts to be attempted |
-| result.window | integer | mandatory | Time period (in seconds) within which failures must happen for the limit to be considered crossed |
+| (property) | object | mandatory | Limits of restarting of a service |
+| (property).limit | integer | mandatory | Maximum number or restarts to be attempted |
+| (property).window | integer | mandatory | Time period (in seconds) within which failures must happen for the limit to be considered crossed |
### Example
@@ -478,7 +689,7 @@ Provides access to the limits of restarting of a service.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "Monitor.1.restartinglimits@xyz"
+ "method": "Monitor.1.restartinglimits@WebServer"
}
```
@@ -501,7 +712,7 @@ Provides access to the limits of restarting of a service.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "Monitor.1.restartinglimits@xyz",
+ "method": "Monitor.1.restartinglimits@WebServer",
"params": {
"value": {
"limit": 3,
@@ -521,8 +732,8 @@ Provides access to the limits of restarting of a service.
}
```
-
-## *observables [property](#head.Properties)*
+
+## *observables [property](#head_Properties)*
Provides access to the list of services watched by the Monitor.
@@ -530,12 +741,10 @@ Provides access to the list of services watched by the Monitor.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | List of monitored services |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | List of monitored services |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -561,14 +770,14 @@ Provides access to the list of services watched by the Monitor.
}
```
-
-## *measurementdata [property](#head.Properties)*
+
+## *measurementdata [property](#head_Properties)*
Provides access to the memory statistics for a given service.
> This property is **read-only**.
-> The *callsign* parameter shall be passed as the index to the property, e.g. ``Monitor.1.measurementdata@``.
+> The *callsign* parameter shall be passed as the index to the property, i.e. ``measurementdata@``.
### Index
@@ -578,33 +787,31 @@ Provides access to the memory statistics for a given service.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Statistics for the requested callsign |
-| result.resident | object | mandatory | Resident memory measurement |
-| result.resident.min | integer | mandatory | Minimal value measured |
-| result.resident.max | integer | mandatory | Maximal value measured |
-| result.resident.average | integer | mandatory | Average of all measurements |
-| result.resident.last | integer | mandatory | Last measured value |
-| result.allocated | object | mandatory | Allocated memory measurement |
-| result.allocated.min | integer | mandatory | Minimal value measured |
-| result.allocated.max | integer | mandatory | Maximal value measured |
-| result.allocated.average | integer | mandatory | Average of all measurements |
-| result.allocated.last | integer | mandatory | Last measured value |
-| result.shared | object | mandatory | Shared memory measurement |
-| result.shared.min | integer | mandatory | Minimal value measured |
-| result.shared.max | integer | mandatory | Maximal value measured |
-| result.shared.average | integer | mandatory | Average of all measurements |
-| result.shared.last | integer | mandatory | Last measured value |
-| result.process | object | mandatory | Processes measurement |
-| result.process.min | integer | mandatory | Minimal value measured |
-| result.process.max | integer | mandatory | Maximal value measured |
-| result.process.average | integer | mandatory | Average of all measurements |
-| result.process.last | integer | mandatory | Last measured value |
-| result.operational | boolean | mandatory | Whether the service is up and running |
-| result.count | integer | mandatory | Number of measurements |
+| (property) | object | mandatory | Statistics for the requested callsign |
+| (property).resident | object | mandatory | Resident memory measurement |
+| (property).resident.min | integer | mandatory | Minimal value measured |
+| (property).resident.max | integer | mandatory | Maximal value measured |
+| (property).resident.average | integer | mandatory | Average of all measurements |
+| (property).resident.last | integer | mandatory | Last measured value |
+| (property).allocated | object | mandatory | Allocated memory measurement |
+| (property).allocated.min | integer | mandatory | Minimal value measured |
+| (property).allocated.max | integer | mandatory | Maximal value measured |
+| (property).allocated.average | integer | mandatory | Average of all measurements |
+| (property).allocated.last | integer | mandatory | Last measured value |
+| (property).shared | object | mandatory | Shared memory measurement |
+| (property).shared.min | integer | mandatory | Minimal value measured |
+| (property).shared.max | integer | mandatory | Maximal value measured |
+| (property).shared.average | integer | mandatory | Average of all measurements |
+| (property).shared.last | integer | mandatory | Last measured value |
+| (property).process | object | mandatory | Processes measurement |
+| (property).process.min | integer | mandatory | Minimal value measured |
+| (property).process.max | integer | mandatory | Maximal value measured |
+| (property).process.average | integer | mandatory | Average of all measurements |
+| (property).process.last | integer | mandatory | Last measured value |
+| (property).operational | boolean | mandatory | Whether the service is up and running |
+| (property).count | integer | mandatory | Number of measurements |
### Example
@@ -614,7 +821,7 @@ Provides access to the memory statistics for a given service.
{
"jsonrpc": "2.0",
"id": 42,
- "method": "Monitor.1.measurementdata@xyz"
+ "method": "Monitor.1.measurementdata@WebServer"
}
```
@@ -655,7 +862,7 @@ Provides access to the memory statistics for a given service.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
@@ -666,16 +873,16 @@ Monitor interface events:
| Notification | Description |
| :-------- | :-------- |
-| [action](#notification.action) | Signals an action taken by the Monitor |
+| [action](#notification_action) | Signals an action taken by the Monitor |
MemoryMonitor interface events:
| Notification | Description |
| :-------- | :-------- |
-| [statuschanged](#notification.statuschanged) | Signals an action taken by the Monitor |
+| [statuschanged](#notification_statuschanged) | Signals an action taken by the Monitor |
-
-## *action [notification](#head.Notifications)*
+
+## *action [notification](#head_Notifications)*
Signals an action taken by the Monitor.
@@ -718,8 +925,10 @@ Signals an action taken by the Monitor.
}
```
-
-## *statuschanged [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.action``.
+
+
+## *statuschanged [notification](#head_Notifications)*
Signals an action taken by the Monitor.
@@ -762,3 +971,5 @@ Signals an action taken by the Monitor.
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.statuschanged``.
+
diff --git a/OpenCDMi/doc/OpenCDMiPlugin.md b/OpenCDMi/doc/OpenCDMiPlugin.md
index dfdf9d44..9e5f4c00 100644
--- a/OpenCDMi/doc/OpenCDMiPlugin.md
+++ b/OpenCDMi/doc/OpenCDMiPlugin.md
@@ -1,5 +1,5 @@
-
+
# OpenCDMi Plugin
**Version: 1.0**
@@ -10,26 +10,27 @@ OCDM plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
-This document describes purpose and functionality of the OCDM plugin. It includes detailed specification about its configuration, properties provided and notifications sent.
+This document describes purpose and functionality of the OCDM 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.
@@ -47,7 +48,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -57,7 +58,7 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -74,13 +75,13 @@ The table below lists configuration options of the plugin.
| configuration?.sharepath | string | optional | Sharepath |
| configuration?.sharesize | string | optional | Sharesize |
| configuration?.systems | array | optional | List of key systems |
-| configuration?.systems[#] | object | optional | System properties |
+| configuration?.systems[#] | object | mandatory | System properties |
| configuration?.systems[#]?.name | string | optional | Name |
| configuration?.systems[#]?.designators | array | optional | *...* |
-| configuration?.systems[#]?.designators[#] | object | optional | Designator |
+| configuration?.systems[#]?.designators[#] | object | mandatory | Designator |
| configuration?.systems[#]?.designators[#].name | string | mandatory | *...* |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -89,7 +90,227 @@ This plugin implements the following interfaces:
- IOpenCDM ([IOCDM.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IOCDM.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
+# Methods
+
+The following methods are provided by the OCDM plugin:
+
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "OCDM.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *drms, keysystems, sessions, systems, designators, versions, exists, register, unregister*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "OCDM.1.exists",
+ "params": {
+ "method": "drms"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[drmalreadyinitialized](#notification_drmalreadyinitialized), [drminitializationstatus](#notification_drminitializationstatus)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "OCDM.1.register",
+ "params": {
+ "event": "drmalreadyinitialized",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[drmalreadyinitialized](#notification_drmalreadyinitialized), [drminitializationstatus](#notification_drminitializationstatus)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "OCDM.1.unregister",
+ "params": {
+ "event": "drmalreadyinitialized",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
# Properties
The following properties are provided by the OCDM plugin:
@@ -98,19 +319,19 @@ OCDM interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [drms](#property.drms) | read-only | Supported DRM systems |
-| [keysystems](#property.keysystems) | read-only | DRM key systems |
-| [sessions](#property.sessions) | read-only | Active sessions enumerator |
+| [drms](#property_drms) | read-only | Supported DRM systems |
+| [keysystems](#property_keysystems) | read-only | DRM key systems |
+| [sessions](#property_sessions) | read-only | Active sessions enumerator |
OpenCDM interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [systems](#property.systems) | read-only | Supported DRM systems |
-| [designators](#property.designators) | read-only | Designators of a specified DRM system |
+| [systems](#property_systems) | read-only | Supported DRM systems |
+| [designators](#property_designators) | read-only | Designators of a specified DRM system |
-
-## *drms [property](#head.Properties)*
+
+## *drms [property](#head_Properties)*
Provides access to the supported DRM systems.
@@ -118,15 +339,13 @@ Provides access to the supported DRM systems.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Supported DRM systems |
-| result[#] | object | mandatory | *...* |
-| result[#].name | string | mandatory | Name of the DRM |
-| result[#].keysystems | array | mandatory | Key system identifier list |
-| result[#].keysystems[#] | string | mandatory | Identifier of a key system |
+| (property) | array | mandatory | Supported DRM systems |
+| (property)[#] | object | mandatory | *...* |
+| (property)[#].name | string | mandatory | Name of the DRM |
+| (property)[#].keysystems | array | mandatory | Key system identifier list |
+| (property)[#].keysystems[#] | string | mandatory | Identifier of a key system |
### Example
@@ -157,14 +376,14 @@ Provides access to the supported DRM systems.
}
```
-
-## *keysystems [property](#head.Properties)*
+
+## *keysystems [property](#head_Properties)*
Provides access to the DRM key systems.
> This property is **read-only**.
-> The *drm system* parameter shall be passed as the index to the property, e.g. ``OCDM.1.keysystems@``.
+> The *drm system* parameter shall be passed as the index to the property, i.e. ``keysystems@``.
### Index
@@ -174,12 +393,10 @@ Provides access to the DRM key systems.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | DRM key systems |
-| result[#] | string | mandatory | Identifier of a key system |
+| (property) | array | mandatory | DRM key systems |
+| (property)[#] | string | mandatory | Identifier of a key system |
### Errors
@@ -211,8 +428,8 @@ Provides access to the DRM key systems.
}
```
-
-## *sessions [property](#head.Properties)*
+
+## *sessions [property](#head_Properties)*
Provides access to the active sessions enumerator.
@@ -220,13 +437,11 @@ Provides access to the active sessions enumerator.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Active sessions enumerator |
-| result[#] | object | mandatory | *...* |
-| result[#].drm | string | mandatory | Name of the DRM system |
+| (property) | array | mandatory | Active sessions enumerator |
+| (property)[#] | object | mandatory | *...* |
+| (property)[#].drm | string | mandatory | Name of the DRM system |
### Example
@@ -254,8 +469,8 @@ Provides access to the active sessions enumerator.
}
```
-
-## *systems [property](#head.Properties)*
+
+## *systems [property](#head_Properties)*
Provides access to the supported DRM systems.
@@ -263,12 +478,10 @@ Provides access to the supported DRM systems.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Supported DRM systems |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | Supported DRM systems |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -294,14 +507,14 @@ Provides access to the supported DRM systems.
}
```
-
-## *designators [property](#head.Properties)*
+
+## *designators [property](#head_Properties)*
Provides access to the designators of a specified DRM system.
> This property is **read-only**.
-> The *keysystem* parameter shall be passed as the index to the property, e.g. ``OCDM.1.designators@``.
+> The *keysystem* parameter shall be passed as the index to the property, i.e. ``designators@``.
### Index
@@ -311,12 +524,10 @@ Provides access to the designators of a specified DRM system.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Designators of a specified DRM system |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | Designators of a specified DRM system |
+| (property)[#] | string | mandatory | *...* |
### Errors
@@ -348,7 +559,7 @@ Provides access to the designators of a specified DRM system.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
@@ -359,11 +570,11 @@ OCDM interface events:
| Notification | Description |
| :-------- | :-------- |
-| [drmalreadyinitialized](#notification.drmalreadyinitialized) | Signals that the specified DRM system could not be initialized because it is already initialized by another process |
-| [drminitializationstatus](#notification.drminitializationstatus) | Notifies about DRM initialization status |
+| [drmalreadyinitialized](#notification_drmalreadyinitialized) | Signals that the specified DRM system could not be initialized because it is already initialized by another process |
+| [drminitializationstatus](#notification_drminitializationstatus) | Notifies about DRM initialization status |
-
-## *drmalreadyinitialized [notification](#head.Notifications)*
+
+## *drmalreadyinitialized [notification](#head_Notifications)*
Signals that the specified DRM system could not be initialized because it is already initialized by another process.
@@ -406,8 +617,10 @@ When this event is received, the application owning given DRM system should rele
}
```
-
-## *drminitializationstatus [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.drmalreadyinitialized``.
+
+
+## *drminitializationstatus [notification](#head_Notifications)*
Notifies about DRM initialization status.
@@ -452,3 +665,5 @@ Register to this event to be notified about DRM retrying status busy/failure/suc
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.drminitializationstatus``.
+
diff --git a/Packager/doc/PackagerPlugin.md b/Packager/doc/PackagerPlugin.md
index d5b6412b..ce742cd7 100644
--- a/Packager/doc/PackagerPlugin.md
+++ b/Packager/doc/PackagerPlugin.md
@@ -1,5 +1,5 @@
-
+
# Packager Plugin
**Version: 1.0**
@@ -10,26 +10,26 @@ Packager plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the Packager plugin. It includes detailed specification about its configuration and methods provided.
-
+
## 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.
@@ -47,7 +47,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -57,14 +57,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The Packager plugin allows installation of OPKG, IPKG and DEB packages to the system from a remote repository.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -76,7 +76,7 @@ The table below lists configuration options of the plugin.
| locator | string | mandatory | Library name: *libThunderPackager.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:
@@ -84,20 +84,123 @@ This plugin implements the following interfaces:
- IPackager ([IPackager.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IPackager.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the Packager plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+
Packager interface methods:
| Method | Description |
| :-------- | :-------- |
-| [install](#method.install) | Install a package given by a name, an URL or a file path |
-| [synchronizerepository](#method.synchronizerepository) / [::](#method.synchronizerepository) | Synchronize repository manifest with a repository |
+| [install](#method_install) | Install a package given by a name, an URL or a file path |
+| [synchronizerepository](#method_synchronizerepository) / [synchronize](#method_synchronizerepository) | Synchronize repository manifest with a repository |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Packager.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *versions, exists, install, synchronizerepository*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "Packager.1.exists",
+ "params": {
+ "method": "versions"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
-
-## *install [method](#head.Methods)*
+
+## *install [method](#head_Methods)*
Install a package given by a name, an URL or a file path.
@@ -150,12 +253,12 @@ Install a package given by a name, an URL or a file path.
}
```
-
-## *synchronizerepository [method](#head.Methods)*
+
+## *synchronizerepository [method](#head_Methods)*
Synchronize repository manifest with a repository.
-> ``::`` is an alternative name for this method.
+> ``synchronize`` is an alternative name for this method. This name is **deprecated** and may be removed in the future. It is not recommended for use in new implementations.
### Parameters
diff --git a/PerformanceMetrics/doc/PerformanceMetricsPlugin.md b/PerformanceMetrics/doc/PerformanceMetricsPlugin.md
index 905d8622..e2e08e81 100644
--- a/PerformanceMetrics/doc/PerformanceMetricsPlugin.md
+++ b/PerformanceMetrics/doc/PerformanceMetricsPlugin.md
@@ -1,5 +1,5 @@
-
+
# PerformanceMetrics Plugin
**Version: 1.0**
@@ -10,24 +10,24 @@ PerformanceMetrics plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the PerformanceMetrics plugin. It includes detailed specification about its configuration.
-
+
## 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.
@@ -45,7 +45,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -55,14 +55,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The Performance Metrics plugin can output metrics on a plugin (e.g. uptime, resource usage).
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
diff --git a/PlayerInfo/doc/PlayerInfoPlugin.md b/PlayerInfo/doc/PlayerInfoPlugin.md
index c175ddb1..863e5b93 100644
--- a/PlayerInfo/doc/PlayerInfoPlugin.md
+++ b/PlayerInfo/doc/PlayerInfoPlugin.md
@@ -1,5 +1,5 @@
-
+
# Player Info Plugin
**Version: 1.0**
@@ -10,27 +10,28 @@ PlayerInfo plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
-This document describes purpose and functionality of the PlayerInfo plugin. It includes detailed specification about its configuration, properties provided and notifications sent.
+This document describes purpose and functionality of the PlayerInfo 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.
@@ -48,7 +49,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -58,14 +59,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The PlayerInfo plugin helps to get system supported Audio Video codecs.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -77,7 +78,7 @@ The table below lists configuration options of the plugin.
| locator | string | mandatory | Library name: *libWPEPlayerInfo.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:
@@ -88,7 +89,227 @@ This plugin implements the following interfaces:
- Dolby::IOutput ([IDolby.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IDolby.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
+# Methods
+
+The following methods are provided by the PlayerInfo plugin:
+
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "PlayerInfo.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *audiocodecs, videocodecs, resolution, isaudioequivalenceenabled, dolbyatmossupported, dolbysoundmode, dolbyatmosoutput, dolbymode, versions, exists, register, unregister*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "PlayerInfo.1.exists",
+ "params": {
+ "method": "audiocodecs"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[soundmodechanged](#notification_soundmodechanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "PlayerInfo.1.register",
+ "params": {
+ "event": "soundmodechanged",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[soundmodechanged](#notification_soundmodechanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "PlayerInfo.1.unregister",
+ "params": {
+ "event": "soundmodechanged",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
# Properties
The following properties are provided by the PlayerInfo plugin:
@@ -97,22 +318,22 @@ PlayerProperties interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [audiocodecs](#property.audiocodecs) | read-only | Query Audio Codecs List |
-| [videocodecs](#property.videocodecs) | read-only | Query Video Codecs List |
-| [resolution](#property.resolution) | read-only | Current Video playback resolution |
-| [isaudioequivalenceenabled](#property.isaudioequivalenceenabled) | read-only | Checks Loudness Equivalence in platform |
+| [audiocodecs](#property_audiocodecs) | read-only | Query Audio Codecs List |
+| [videocodecs](#property_videocodecs) | read-only | Query Video Codecs List |
+| [resolution](#property_resolution) | read-only | Current Video playback resolution |
+| [isaudioequivalenceenabled](#property_isaudioequivalenceenabled) | read-only | Checks Loudness Equivalence in platform |
Dolby Output interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [dolbyatmossupported](#property.dolbyatmossupported) / [dolby_atmosmetadata](#property.dolbyatmossupported) | read-only | Atmos capabilities of Sink |
-| [dolbysoundmode](#property.dolbysoundmode) / [dolby_soundmode](#property.dolbysoundmode) | read-only | Sound Mode - Mono/Stereo/Surround |
-| [dolbyatmosoutput](#property.dolbyatmosoutput) / [dolby_enableatmosoutput](#property.dolbyatmosoutput) | write-only | Enable Atmos Audio Output |
-| [dolbymode](#property.dolbymode) / [dolby_mode](#property.dolbymode) | read/write | Dolby Mode |
+| [dolbyatmossupported](#property_dolbyatmossupported) / [dolby_atmosmetadata](#property_dolbyatmossupported) | read-only | Atmos capabilities of Sink |
+| [dolbysoundmode](#property_dolbysoundmode) / [dolby_soundmode](#property_dolbysoundmode) | read-only | Sound Mode - Mono/Stereo/Surround |
+| [dolbyatmosoutput](#property_dolbyatmosoutput) / [dolby_enableatmosoutput](#property_dolbyatmosoutput) | write-only | Enable Atmos Audio Output |
+| [dolbymode](#property_dolbymode) / [dolby_mode](#property_dolbymode) | read/write | Dolby Mode |
-
-## *audiocodecs [property](#head.Properties)*
+
+## *audiocodecs [property](#head_Properties)*
Provides access to the query Audio Codecs List.
@@ -120,12 +341,10 @@ Provides access to the query Audio Codecs List.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Query Audio Codecs List |
-| result[#] | string | mandatory | *...* (must be one of the following: *AudioAac, AudioAc3, AudioAc3Plus, AudioDts, AudioMpeg1, AudioMpeg2, AudioMpeg3, AudioMpeg4, AudioOpus, AudioUndefined, AudioVorbisOgg, AudioWav*) |
+| (property) | array | mandatory | Query Audio Codecs List |
+| (property)[#] | string | mandatory | *...* (must be one of the following: *AudioAac, AudioAc3, AudioAc3Plus, AudioDts, AudioMpeg1, AudioMpeg2, AudioMpeg3, AudioMpeg4, AudioOpus, AudioUndefined, AudioVorbisOgg, AudioWav*) |
### Example
@@ -146,13 +365,13 @@ Provides access to the query Audio Codecs List.
"jsonrpc": "2.0",
"id": 42,
"result": [
- "AudioUndefined"
+ "AudioAac"
]
}
```
-
-## *videocodecs [property](#head.Properties)*
+
+## *videocodecs [property](#head_Properties)*
Provides access to the query Video Codecs List.
@@ -160,12 +379,10 @@ Provides access to the query Video Codecs List.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | Query Video Codecs List |
-| result[#] | string | mandatory | *...* (must be one of the following: *VideoH263, VideoH264, VideoH265, VideoH26510, VideoMpeg, VideoMpeg2, VideoMpeg4, VideoUndefined, VideoVp10, VideoVp8, VideoVp9*) |
+| (property) | array | mandatory | Query Video Codecs List |
+| (property)[#] | string | mandatory | *...* (must be one of the following: *VideoH263, VideoH264, VideoH265, VideoH26510, VideoMpeg, VideoMpeg2, VideoMpeg4, VideoUndefined, VideoVp10, VideoVp8, VideoVp9*) |
### Example
@@ -186,13 +403,13 @@ Provides access to the query Video Codecs List.
"jsonrpc": "2.0",
"id": 42,
"result": [
- "VideoUndefined"
+ "VideoH263"
]
}
```
-
-## *resolution [property](#head.Properties)*
+
+## *resolution [property](#head_Properties)*
Provides access to the current Video playback resolution.
@@ -200,11 +417,9 @@ Provides access to the current Video playback resolution.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Current Video playback resolution (must be one of the following: *Resolution1080i, Resolution1080i24, Resolution1080i25, Resolution1080i30, Resolution1080i50, Resolution1080p, Resolution1080p24, Resolution1080p25, Resolution1080p30, Resolution1080p50, Resolution2160p, Resolution2160p24, Resolution2160p25, Resolution2160p30, Resolution2160p50, Resolution2160p60, Resolution480i, Resolution480i24, Resolution480i25, Resolution480i30, Resolution480i50, Resolution480p, Resolution480p24, Resolution480p25, Resolution480p30, Resolution480p50, Resolution576i, Resolution576i24, Resolution576i25, Resolution576i30, Resolution576i50, Resolution576p, Resolution576p24, Resolution576p25, Resolution576p30, Resolution576p50, Resolution720p, Resolution720p24, Resolution720p25, Resolution720p30, Resolution720p50, ResolutionUnknown*) |
+| (property) | string | mandatory | Current Video playback resolution (must be one of the following: *Resolution1080i, Resolution1080i24, Resolution1080i25, Resolution1080i30, Resolution1080i50, Resolution1080p, Resolution1080p24, Resolution1080p25, Resolution1080p30, Resolution1080p50, Resolution2160p, Resolution2160p24, Resolution2160p25, Resolution2160p30, Resolution2160p50, Resolution2160p60, Resolution480i, Resolution480i24, Resolution480i25, Resolution480i30, Resolution480i50, Resolution480p, Resolution480p24, Resolution480p25, Resolution480p30, Resolution480p50, Resolution576i, Resolution576i24, Resolution576i25, Resolution576i30, Resolution576i50, Resolution576p, Resolution576p24, Resolution576p25, Resolution576p30, Resolution576p50, Resolution720p, Resolution720p24, Resolution720p25, Resolution720p30, Resolution720p50, ResolutionUnknown*) |
### Example
@@ -224,12 +439,12 @@ Provides access to the current Video playback resolution.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "ResolutionUnknown"
+ "result": "Resolution480i24"
}
```
-
-## *isaudioequivalenceenabled [property](#head.Properties)*
+
+## *isaudioequivalenceenabled [property](#head_Properties)*
Provides access to the checks Loudness Equivalence in platform.
@@ -237,11 +452,9 @@ Provides access to the checks Loudness Equivalence in platform.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | Checks Loudness Equivalence in platform |
+| (property) | boolean | mandatory | Checks Loudness Equivalence in platform |
### Example
@@ -265,8 +478,8 @@ Provides access to the checks Loudness Equivalence in platform.
}
```
-
-## *dolbyatmossupported [property](#head.Properties)*
+
+## *dolbyatmossupported [property](#head_Properties)*
Provides access to the atmos capabilities of Sink.
@@ -276,11 +489,9 @@ Provides access to the atmos capabilities of Sink.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | Atmos capabilities of Sink |
+| (property) | boolean | mandatory | Atmos capabilities of Sink |
### Example
@@ -304,8 +515,8 @@ Provides access to the atmos capabilities of Sink.
}
```
-
-## *dolbysoundmode [property](#head.Properties)*
+
+## *dolbysoundmode [property](#head_Properties)*
Provides access to the sound Mode - Mono/Stereo/Surround.
@@ -315,11 +526,9 @@ Provides access to the sound Mode - Mono/Stereo/Surround.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Sound Mode - Mono/Stereo/Surround (must be one of the following: *Dolbydigital, Dolbydigitalplus, Mono, Passthru, SoundmodeAuto, Stereo, Surround, Unknown*) |
+| (property) | string | mandatory | Sound Mode - Mono/Stereo/Surround (must be one of the following: *Dolbydigital, Dolbydigitalplus, Mono, Passthru, SoundmodeAuto, Stereo, Surround, Unknown*) |
### Example
@@ -339,12 +548,12 @@ Provides access to the sound Mode - Mono/Stereo/Surround.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "Unknown"
+ "result": "Mono"
}
```
-
-## *dolbyatmosoutput [property](#head.Properties)*
+
+## *dolbyatmosoutput [property](#head_Properties)*
Provides access to the enable Atmos Audio Output.
@@ -381,8 +590,8 @@ Provides access to the enable Atmos Audio Output.
}
```
-
-## *dolbymode [property](#head.Properties)*
+
+## *dolbymode [property](#head_Properties)*
Provides access to the dolby Mode.
@@ -394,11 +603,9 @@ Provides access to the dolby Mode.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | Dolby mode type (must be one of the following: *Auto, DigitalAc3, DigitalPassthrough, DigitalPcm, DigitalPlus, Ms12*) |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Dolby mode type (must be one of the following: *Auto, DigitalAc3, DigitalPassthrough, DigitalPcm, DigitalPlus, Ms12*) |
+| (property) | string | mandatory | Dolby mode type (must be one of the following: *Auto, DigitalAc3, DigitalPassthrough, DigitalPcm, DigitalPlus, Ms12*) |
### Example
@@ -418,7 +625,7 @@ Provides access to the dolby Mode.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "DigitalPcm"
+ "result": "DigitalPlus"
}
```
@@ -429,7 +636,7 @@ Provides access to the dolby Mode.
"jsonrpc": "2.0",
"id": 42,
"method": "PlayerInfo.1.dolbymode",
- "params": "DigitalPcm"
+ "params": "DigitalPlus"
}
```
@@ -443,7 +650,7 @@ Provides access to the dolby Mode.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
@@ -454,10 +661,10 @@ Dolby Output interface events:
| Notification | Description |
| :-------- | :-------- |
-| [soundmodechanged](#notification.soundmodechanged) / [dolby_audiomodechanged](#notification.soundmodechanged) | Signal audio mode change |
+| [soundmodechanged](#notification_soundmodechanged) / [dolby_audiomodechanged](#notification_soundmodechanged) | Signal audio mode change |
-
-## *soundmodechanged [notification](#head.Notifications)*
+
+## *soundmodechanged [notification](#head_Notifications)*
Signal audio mode change.
@@ -494,9 +701,11 @@ Signal audio mode change.
"jsonrpc": "2.0",
"method": "myid.soundmodechanged",
"params": {
- "mode": "Unknown",
+ "mode": "Mono",
"enabled": false
}
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.soundmodechanged``.
+
diff --git a/README.md b/README.md
index dcb030ae..9f67cbed 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
# ThunderNanoServicesRDK
-
+* BridgeLink
* [DeviceIdentification](DeviceIdentification/doc/DeviceIdentificationPlugin.md)
* [DeviceInfo](DeviceInfo/doc/DeviceInfoPlugin.md)
* [DisplayInfo](DisplayInfo/doc/DisplayInfoPlugin.md)
diff --git a/SecurityAgent/doc/SecurityAgentPlugin.md b/SecurityAgent/doc/SecurityAgentPlugin.md
index 8b9a6936..51ab45aa 100644
--- a/SecurityAgent/doc/SecurityAgentPlugin.md
+++ b/SecurityAgent/doc/SecurityAgentPlugin.md
@@ -1,5 +1,5 @@
-
+
# Security Agent Plugin
**Version: 1.0**
@@ -10,26 +10,26 @@ SecurityAgent plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the SecurityAgent plugin. It includes detailed specification about its configuration and methods provided.
-
+
## 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.
@@ -47,7 +47,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -57,14 +57,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
Security Agent of thunder is responsible to allow or block access to the Thunder API.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -79,7 +79,7 @@ The table below lists configuration options of the plugin.
| configuration?.acl | string | optional | ACL |
| configuration?.connector | string | optional | Connector |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -87,19 +87,122 @@ This plugin implements the following interfaces:
- ISecurityAgent ([ISecurityAgent.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/ISecurityAgent.h)) (version 1.0.0) (compliant format)
> This interface uses legacy ```lowercase``` naming convention. With the next major release the naming convention will change to ```camelCase```.
-
+
# Methods
The following methods are provided by the SecurityAgent plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+
SecurityAgent interface methods:
| Method | Description |
| :-------- | :-------- |
-| [validate](#method.validate) | Validates a token |
+| [validate](#method_validate) | Validates a token |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "SecurityAgent.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *versions, exists, validate*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "SecurityAgent.1.exists",
+ "params": {
+ "method": "versions"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
-
-## *validate [method](#head.Methods)*
+
+## *validate [method](#head_Methods)*
Validates a token.
@@ -108,13 +211,13 @@ Validates a token.
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
| params | object | mandatory | *...* |
-| params.token | string | mandatory | *...* |
+| params.token | string | mandatory | Token that will be validated |
### Result
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | *...* |
+| result | boolean | mandatory | Tells whether token's signature is correct |
### Example
@@ -126,7 +229,7 @@ Validates a token.
"id": 42,
"method": "SecurityAgent.1.validate",
"params": {
- "token": "..."
+ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
}
}
```
diff --git a/WebKitBrowser/doc/WebKitBrowserPlugin.md b/WebKitBrowser/doc/WebKitBrowserPlugin.md
index 28876a8f..856339af 100644
--- a/WebKitBrowser/doc/WebKitBrowserPlugin.md
+++ b/WebKitBrowser/doc/WebKitBrowserPlugin.md
@@ -1,5 +1,5 @@
-
+
# WebKit Browser Plugin
**Version: 1.0**
@@ -10,28 +10,28 @@ WebKitBrowser plugin for Thunder framework.
### Table of Contents
-- [Introduction](#head.Introduction)
-- [Description](#head.Description)
-- [Configuration](#head.Configuration)
-- [Interfaces](#head.Interfaces)
-- [Methods](#head.Methods)
-- [Properties](#head.Properties)
-- [Notifications](#head.Notifications)
+- [Introduction](#head_Introduction)
+- [Description](#head_Description)
+- [Configuration](#head_Configuration)
+- [Interfaces](#head_Interfaces)
+- [Methods](#head_Methods)
+- [Properties](#head_Properties)
+- [Notifications](#head_Notifications)
-
+
# Introduction
-
+
## Scope
This document describes purpose and functionality of the WebKitBrowser 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.
@@ -49,7 +49,7 @@ The table below provides and overview of terms and abbreviations used in this do
| :-------- | :-------- |
| 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 |
@@ -59,14 +59,14 @@ The table below provides and overview of terms and abbreviations used in this do
| [JSON](http://www.json.org/) | JSON specification |
| [Thunder](https://github.com/WebPlatformForEmbedded/Thunder/blob/master/doc/WPE%20-%20API%20-%20Thunder.docx) | Thunder API Reference |
-
+
# Description
The WebKitBrowser plugin provides web browsing functionality based on the WebKit engine.
The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [[Thunder](#ref.Thunder)].
-
+
# Configuration
The table below lists configuration options of the plugin.
@@ -95,7 +95,7 @@ The table below lists configuration options of the plugin.
| configuration?.whitelist | object | optional | *...* |
| configuration?.whitelist?.origin | string | optional | Origin domain allowed to access domains in domain |
| configuration?.whitelist?.domain | array | optional | *...* |
-| configuration?.whitelist?.domain[#] | string | optional | Domain allowed to access from origin |
+| configuration?.whitelist?.domain[#] | string | mandatory | Domain allowed to access from origin |
| configuration?.whitelist?.subdomain | string | optional | Whether it is also OK to access subdomains of domains listed in domain |
| configuration?.localstorageenabled | boolean | optional | Controls the local storage availability |
| configuration?.logtosystemconsoleenabled | boolean | optional | Enable page logging to system console (stderr) |
@@ -103,7 +103,7 @@ The table below lists configuration options of the plugin.
| configuration?.watchdoghangthresholdtinseconds | integer | optional | The amount of time to give a process to recover before declaring a hang state |
| configuration?.loadblankpageonsuspendenabled | boolean | optional | Load 'about:blank' before suspending the page |
-
+
# Interfaces
This plugin implements the following interfaces:
@@ -124,33 +124,248 @@ This plugin implements the following interfaces:
- IBrowserCookieJar ([IBrowser.h](https://github.com/rdkcentral/ThunderInterfaces/blob/master/interfaces/IBrowser.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 to ```camelCase```.
-
+
# Methods
The following methods are provided by the WebKitBrowser plugin:
+Built-in methods:
+
+| Method | Description |
+| :-------- | :-------- |
+| [versions](#method_versions) | Retrieves a list of JSON-RPC interfaces offered by this service |
+| [exists](#method_exists) | Checks if a JSON-RPC method or property exists |
+| [register](#method_register) | Registers for an asynchronous JSON-RPC notification |
+| [unregister](#method_unregister) | Unregisters from an asynchronous JSON-RPC notification |
+
WebBrowser interface methods:
| Method | Description |
| :-------- | :-------- |
-| [collectgarbage](#method.collectgarbage) | Initiate garbage collection |
+| [collectgarbage](#method_collectgarbage) | Initiate garbage collection |
WebBrowserExt interface methods:
| Method | Description |
| :-------- | :-------- |
-| [delete](#method.delete) / [deletedir](#method.delete) | Removes contents of a directory from the persistent storage |
+| [delete](#method_delete) / [deletedir](#method_delete) | Removes contents of a directory from the persistent storage |
BrowserScripting interface methods:
| Method | Description |
| :-------- | :-------- |
-| [runjavascript](#method.runjavascript) | Run javascript in main frame |
-| [adduserscript](#method.adduserscript) | Add user script to be executed at document start |
-| [removealluserscripts](#method.removealluserscripts) | Remove all user scripts |
+| [runjavascript](#method_runjavascript) | Run javascript in main frame |
+| [adduserscript](#method_adduserscript) | Add user script to be executed at document start |
+| [removealluserscripts](#method_removealluserscripts) | Remove all user scripts |
+
+
+## *versions [method](#head_Methods)*
+
+Retrieves a list of JSON-RPC interfaces offered by this service.
+
+### Parameters
+
+This method takes no parameters.
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | array | mandatory | A list ofsinterfaces with their version numbers
*Array length must be at most 255 elements.* |
+| result[#] | object | mandatory | *...* |
+| result[#].name | string | mandatory | Name of the interface |
+| result[#].major | integer | mandatory | Major part of version number |
+| result[#].minor | integer | mandatory | Minor part of version number |
+| result[#].patch | integer | mandatory | Patch part of version version number |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "WebKitBrowser.1.versions"
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": [
+ {
+ "name": "JMyInterface",
+ "major": 1,
+ "minor": 0,
+ "patch": 0
+ }
+ ]
+}
+```
+
+
+## *exists [method](#head_Methods)*
+
+Checks if a JSON-RPC method or property exists.
+
+### Description
+
+This method will return *True* for the following methods/properties: *url, visibility, fps, headers, useragent, localstorageenabled, httpcookieacceptpolicy, bridgereply, bridgeevent, languages, userScripts, userStyleSheets, securityprofile, mixedcontentpolicy, cookiejar, versions, exists, register, unregister, collectgarbage, deletedir, runjavascript, adduserscript, removealluserscripts*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.method | string | mandatory | Name of the method or property to look up |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | boolean | mandatory | Denotes if the method exists or not |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "WebKitBrowser.1.exists",
+ "params": {
+ "method": "url"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": false
+}
+```
+
+
+## *register [method](#head_Methods)*
+
+Registers for an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[loadfinished](#notification_loadfinished), [loadfailed](#notification_loadfailed), [urlchange](#notification_urlchange), [visibilitychange](#notification_visibilitychange), [pageclosure](#notification_pageclosure), [bridgequery](#notification_bridgequery), [cookiejarchanged](#notification_cookiejarchanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_REGISTERED``` | Failed to register for the notification (e.g. already registered) |
-
-## *collectgarbage [method](#head.Methods)*
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "WebKitBrowser.1.register",
+ "params": {
+ "event": "loadfinished",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *unregister [method](#head_Methods)*
+
+Unregisters from an asynchronous JSON-RPC notification.
+
+### Description
+
+This method supports the following event names: *[loadfinished](#notification_loadfinished), [loadfailed](#notification_loadfailed), [urlchange](#notification_urlchange), [visibilitychange](#notification_visibilitychange), [pageclosure](#notification_pageclosure), [bridgequery](#notification_bridgequery), [cookiejarchanged](#notification_cookiejarchanged)*.
+
+### Parameters
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| params | object | mandatory | *...* |
+| params.event | string | mandatory | Name of the notification to register for |
+| params.id | string | mandatory | Client identifier |
+
+### Result
+
+| Name | Type | M/O | Description |
+| :-------- | :-------- | :-------- | :-------- |
+| result | null | mandatory | Always null |
+
+### Errors
+
+| Message | Description |
+| :-------- | :-------- |
+| ```ERROR_FAILED_UNREGISTERED``` | Failed to unregister from the notification (e.g. not yet registered) |
+
+### Example
+
+#### Request
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "method": "WebKitBrowser.1.unregister",
+ "params": {
+ "event": "loadfinished",
+ "id": "myapp"
+ }
+}
+```
+
+#### Response
+
+```json
+{
+ "jsonrpc": "2.0",
+ "id": 42,
+ "result": null
+}
+```
+
+
+## *collectgarbage [method](#head_Methods)*
Initiate garbage collection.
@@ -186,8 +401,8 @@ This method takes no parameters.
}
```
-
-## *delete [method](#head.Methods)*
+
+## *delete [method](#head_Methods)*
Removes contents of a directory from the persistent storage.
@@ -237,8 +452,8 @@ Removes contents of a directory from the persistent storage.
}
```
-
-## *runjavascript [method](#head.Methods)*
+
+## *runjavascript [method](#head_Methods)*
Run javascript in main frame.
@@ -280,8 +495,8 @@ Run javascript in main frame.
}
```
-
-## *adduserscript [method](#head.Methods)*
+
+## *adduserscript [method](#head_Methods)*
Add user script to be executed at document start.
@@ -325,8 +540,8 @@ Add user script to be executed at document start.
}
```
-
-## *removealluserscripts [method](#head.Methods)*
+
+## *removealluserscripts [method](#head_Methods)*
Remove all user scripts.
@@ -362,7 +577,7 @@ This method takes no parameters.
}
```
-
+
# Properties
The following properties are provided by the WebKitBrowser plugin:
@@ -371,44 +586,44 @@ WebBrowser interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [url](#property.url) | read/write | Page loaded in the browser |
-| [visibility](#property.visibility) | read/write | Browser window visibility state |
-| [fps](#property.fps) | read-only | Current framerate the browser is rendering at |
-| [headers](#property.headers) | read/write | Headers to send on all requests that the browser makes |
-| [useragent](#property.useragent) | read/write | UserAgent string used by the browser |
-| [localstorageenabled](#property.localstorageenabled) | read/write | Controls the local storage availability |
-| [httpcookieacceptpolicy](#property.httpcookieacceptpolicy) | read/write | HTTP cookies accept policy |
-| [bridgereply](#property.bridgereply) | write-only | Response for legacy $badger |
-| [bridgeevent](#property.bridgeevent) | write-only | Send legacy $badger event |
+| [url](#property_url) | read/write | Page loaded in the browser |
+| [visibility](#property_visibility) | read/write | Browser window visibility state |
+| [fps](#property_fps) | read-only | Current framerate the browser is rendering at |
+| [headers](#property_headers) | read/write | Headers to send on all requests that the browser makes |
+| [useragent](#property_useragent) | read/write | UserAgent string used by the browser |
+| [localstorageenabled](#property_localstorageenabled) | read/write | Controls the local storage availability |
+| [httpcookieacceptpolicy](#property_httpcookieacceptpolicy) | read/write | HTTP cookies accept policy |
+| [bridgereply](#property_bridgereply) | write-only | Response for legacy $badger |
+| [bridgeevent](#property_bridgeevent) | write-only | Send legacy $badger event |
WebBrowserExt interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [languages](#property.languages) | read/write | User preferred languages |
+| [languages](#property_languages) | read/write | User preferred languages |
BrowserResources interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [userScripts](#property.userScripts) | read/write | User scripts used by the browser |
-| [userStyleSheets](#property.userStyleSheets) | read/write | User style sheets used by the browser |
+| [userScripts](#property_userScripts) | read/write | User scripts used by the browser |
+| [userStyleSheets](#property_userStyleSheets) | read/write | User style sheets used by the browser |
BrowserSecurity interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [securityprofile](#property.securityprofile) | read/write | Security profile for secure connections |
-| [mixedcontentpolicy](#property.mixedcontentpolicy) | read/write | Mixed content policy |
+| [securityprofile](#property_securityprofile) | read/write | Security profile for secure connections |
+| [mixedcontentpolicy](#property_mixedcontentpolicy) | read/write | Mixed content policy |
BrowserCookieJar interface properties:
| Property | R/W | Description |
| :-------- | :-------- | :-------- |
-| [cookiejar](#property.cookiejar) | read/write | Get/Set CookieJar config details |
+| [cookiejar](#property_cookiejar) | read/write | Get/Set CookieJar config details |
-
-## *url [property](#head.Properties)*
+
+## *url [property](#head_Properties)*
Provides access to the page loaded in the browser.
@@ -418,11 +633,9 @@ Provides access to the page loaded in the browser.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | Page loaded in the browser |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Loaded URL |
+| (property) | string | mandatory | Loaded URL |
### Example
@@ -467,8 +680,8 @@ Provides access to the page loaded in the browser.
}
```
-
-## *visibility [property](#head.Properties)*
+
+## *visibility [property](#head_Properties)*
Provides access to the browser window visibility state.
@@ -478,11 +691,9 @@ Provides access to the browser window visibility state.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | Browser window visibility state (must be one of the following: *hidden, visible*) |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Visiblity state (must be one of the following: *hidden, visible*) |
+| (property) | string | mandatory | Visiblity state (must be one of the following: *hidden, visible*) |
### Example
@@ -502,7 +713,7 @@ Provides access to the browser window visibility state.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "hidden"
+ "result": "visible"
}
```
@@ -513,7 +724,7 @@ Provides access to the browser window visibility state.
"jsonrpc": "2.0",
"id": 42,
"method": "WebKitBrowser.1.visibility",
- "params": "hidden"
+ "params": "visible"
}
```
@@ -527,8 +738,8 @@ Provides access to the browser window visibility state.
}
```
-
-## *fps [property](#head.Properties)*
+
+## *fps [property](#head_Properties)*
Provides access to the current framerate the browser is rendering at.
@@ -536,11 +747,9 @@ Provides access to the current framerate the browser is rendering at.
### Value
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | integer | mandatory | Current FPS |
+| (property) | integer | mandatory | Current FPS |
### Example
@@ -564,8 +773,8 @@ Provides access to the current framerate the browser is rendering at.
}
```
-
-## *headers [property](#head.Properties)*
+
+## *headers [property](#head_Properties)*
Provides access to the headers to send on all requests that the browser makes.
@@ -575,11 +784,9 @@ Provides access to the headers to send on all requests that the browser makes.
| :-------- | :-------- | :-------- | :-------- |
| (property) | opaque object | mandatory | Headers to send on all requests that the browser makes |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | opaque object | mandatory | Single string containing a list of headers |
+| (property) | opaque object | mandatory | Single string containing a list of headers |
### Example
@@ -624,8 +831,8 @@ Provides access to the headers to send on all requests that the browser makes.
}
```
-
-## *useragent [property](#head.Properties)*
+
+## *useragent [property](#head_Properties)*
Provides access to the userAgent string used by the browser.
@@ -635,11 +842,9 @@ Provides access to the userAgent string used by the browser.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | UserAgent string used by the browser |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | UserAgent value |
+| (property) | string | mandatory | UserAgent value |
### Example
@@ -684,8 +889,8 @@ Provides access to the userAgent string used by the browser.
}
```
-
-## *localstorageenabled [property](#head.Properties)*
+
+## *localstorageenabled [property](#head_Properties)*
Provides access to the controls the local storage availability.
@@ -695,11 +900,9 @@ Provides access to the controls the local storage availability.
| :-------- | :-------- | :-------- | :-------- |
| (property) | boolean | mandatory | Controls the local storage availability |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | boolean | mandatory | Controls the local storage availability |
+| (property) | boolean | mandatory | Controls the local storage availability |
### Example
@@ -744,8 +947,8 @@ Provides access to the controls the local storage availability.
}
```
-
-## *httpcookieacceptpolicy [property](#head.Properties)*
+
+## *httpcookieacceptpolicy [property](#head_Properties)*
Provides access to the HTTP cookies accept policy.
@@ -755,11 +958,9 @@ Provides access to the HTTP cookies accept policy.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | HTTP cookies accept policy (must be one of the following: *always, exclusivelyfrommaindocumentdomain, never, onlyfrommaindocumentdomain*) |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | HTTP Cookie Accept Policy Type (must be one of the following: *always, exclusivelyfrommaindocumentdomain, never, onlyfrommaindocumentdomain*) |
+| (property) | string | mandatory | HTTP Cookie Accept Policy Type (must be one of the following: *always, exclusivelyfrommaindocumentdomain, never, onlyfrommaindocumentdomain*) |
### Example
@@ -790,7 +991,7 @@ Provides access to the HTTP cookies accept policy.
"jsonrpc": "2.0",
"id": 42,
"method": "WebKitBrowser.1.httpcookieacceptpolicy",
- "params": "always"
+ "params": "never"
}
```
@@ -804,8 +1005,8 @@ Provides access to the HTTP cookies accept policy.
}
```
-
-## *bridgereply [property](#head.Properties)*
+
+## *bridgereply [property](#head_Properties)*
Provides access to the response for legacy $badger.
@@ -840,8 +1041,8 @@ Provides access to the response for legacy $badger.
}
```
-
-## *bridgeevent [property](#head.Properties)*
+
+## *bridgeevent [property](#head_Properties)*
Provides access to the send legacy $badger event.
@@ -876,8 +1077,8 @@ Provides access to the send legacy $badger event.
}
```
-
-## *languages [property](#head.Properties)*
+
+## *languages [property](#head_Properties)*
Provides access to the user preferred languages.
@@ -888,12 +1089,10 @@ Provides access to the user preferred languages.
| (property) | array | mandatory | User preferred languages |
| (property)[#] | string | mandatory | *...* |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | List of langauges preferred by the user |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | List of langauges preferred by the user |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -942,8 +1141,8 @@ Provides access to the user preferred languages.
}
```
-
-## *userScripts [property](#head.Properties)*
+
+## *userScripts [property](#head_Properties)*
Provides access to the user scripts used by the browser.
@@ -954,12 +1153,10 @@ Provides access to the user scripts used by the browser.
| (property) | array | mandatory | User scripts used by the browser |
| (property)[#] | string | mandatory | *...* |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | JSON array containing URIs pointing to user scripts, supported protocols: file:// |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | JSON array containing URIs pointing to user scripts, supported protocols: file:// |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -1008,8 +1205,8 @@ Provides access to the user scripts used by the browser.
}
```
-
-## *userStyleSheets [property](#head.Properties)*
+
+## *userStyleSheets [property](#head_Properties)*
Provides access to the user style sheets used by the browser.
@@ -1020,12 +1217,10 @@ Provides access to the user style sheets used by the browser.
| (property) | array | mandatory | User style sheets used by the browser |
| (property)[#] | string | mandatory | *...* |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | array | mandatory | JSON array containing URIs pointing to user style sheets, supported protocols: file:// |
-| result[#] | string | mandatory | *...* |
+| (property) | array | mandatory | JSON array containing URIs pointing to user style sheets, supported protocols: file:// |
+| (property)[#] | string | mandatory | *...* |
### Example
@@ -1074,8 +1269,8 @@ Provides access to the user style sheets used by the browser.
}
```
-
-## *securityprofile [property](#head.Properties)*
+
+## *securityprofile [property](#head_Properties)*
Provides access to the security profile for secure connections.
@@ -1085,11 +1280,9 @@ Provides access to the security profile for secure connections.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | Security profile for secure connections |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Security profile for secure connections |
+| (property) | string | mandatory | Security profile for secure connections |
### Example
@@ -1134,8 +1327,8 @@ Provides access to the security profile for secure connections.
}
```
-
-## *mixedcontentpolicy [property](#head.Properties)*
+
+## *mixedcontentpolicy [property](#head_Properties)*
Provides access to the mixed content policy.
@@ -1145,11 +1338,9 @@ Provides access to the mixed content policy.
| :-------- | :-------- | :-------- | :-------- |
| (property) | string | mandatory | Mixed content policy (must be one of the following: *allowed, blocked*) |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | string | mandatory | Mixed content policy type (must be one of the following: *allowed, blocked*) |
+| (property) | string | mandatory | Mixed content policy type (must be one of the following: *allowed, blocked*) |
### Example
@@ -1169,7 +1360,7 @@ Provides access to the mixed content policy.
{
"jsonrpc": "2.0",
"id": 42,
- "result": "allowed"
+ "result": "blocked"
}
```
@@ -1180,7 +1371,7 @@ Provides access to the mixed content policy.
"jsonrpc": "2.0",
"id": 42,
"method": "WebKitBrowser.1.mixedcontentpolicy",
- "params": "allowed"
+ "params": "blocked"
}
```
@@ -1194,8 +1385,8 @@ Provides access to the mixed content policy.
}
```
-
-## *cookiejar [property](#head.Properties)*
+
+## *cookiejar [property](#head_Properties)*
Provides access to the get/Set CookieJar config details.
@@ -1208,14 +1399,12 @@ Provides access to the get/Set CookieJar config details.
| (property).checksum | integer | mandatory | The checksum of the string used for payload creation |
| (property).payload | string | mandatory | Base64 string representation of compressed and encrypted cookies |
-### Result
-
| Name | Type | M/O | Description |
| :-------- | :-------- | :-------- | :-------- |
-| result | object | mandatory | Config info CookieJar |
-| result.version | integer | mandatory | Version of payload format |
-| result.checksum | integer | mandatory | The checksum of the string used for payload creation |
-| result.payload | string | mandatory | Base64 string representation of compressed and encrypted cookies |
+| (property) | object | mandatory | Config info CookieJar |
+| (property).version | integer | mandatory | Version of payload format |
+| (property).checksum | integer | mandatory | The checksum of the string used for payload creation |
+| (property).payload | string | mandatory | Base64 string representation of compressed and encrypted cookies |
### Example
@@ -1268,7 +1457,7 @@ Provides access to the get/Set CookieJar config details.
}
```
-
+
# Notifications
Notifications are autonomous events triggered by the internals of the implementation and broadcasted via JSON-RPC to all registered observers. Refer to [[Thunder](#ref.Thunder)] for information on how to register for a notification.
@@ -1279,21 +1468,21 @@ WebBrowser interface events:
| Notification | Description |
| :-------- | :-------- |
-| [loadfinished](#notification.loadfinished) | Initial HTML document has been completely loaded and parsed |
-| [loadfailed](#notification.loadfailed) | Browser failed to load page |
-| [urlchange](#notification.urlchange) | Signals a URL change in the browser |
-| [visibilitychange](#notification.visibilitychange) | Signals a visibility change of the browser |
-| [pageclosure](#notification.pageclosure) | Notifies that the web page requests to close its window |
-| [bridgequery](#notification.bridgequery) | A Base64 encoded JSON message from legacy $badger bridge |
+| [loadfinished](#notification_loadfinished) | Initial HTML document has been completely loaded and parsed |
+| [loadfailed](#notification_loadfailed) | Browser failed to load page |
+| [urlchange](#notification_urlchange) | Signals a URL change in the browser |
+| [visibilitychange](#notification_visibilitychange) | Signals a visibility change of the browser |
+| [pageclosure](#notification_pageclosure) | Notifies that the web page requests to close its window |
+| [bridgequery](#notification_bridgequery) | A Base64 encoded JSON message from legacy $badger bridge |
BrowserCookieJar interface events:
| Notification | Description |
| :-------- | :-------- |
-| [cookiejarchanged](#notification.cookiejarchanged) | Notifies that cookies were added, removed or modified |
+| [cookiejarchanged](#notification_cookiejarchanged) | Notifies that cookies were added, removed or modified |
-
-## *loadfinished [notification](#head.Notifications)*
+
+## *loadfinished [notification](#head_Notifications)*
Initial HTML document has been completely loaded and parsed.
@@ -1334,8 +1523,10 @@ Initial HTML document has been completely loaded and parsed.
}
```
-
-## *loadfailed [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.loadfinished``.
+
+
+## *loadfailed [notification](#head_Notifications)*
Browser failed to load page.
@@ -1374,8 +1565,10 @@ Browser failed to load page.
}
```
-
-## *urlchange [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.loadfailed``.
+
+
+## *urlchange [notification](#head_Notifications)*
Signals a URL change in the browser.
@@ -1416,8 +1609,10 @@ Signals a URL change in the browser.
}
```
-
-## *visibilitychange [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.urlchange``.
+
+
+## *visibilitychange [notification](#head_Notifications)*
Signals a visibility change of the browser.
@@ -1456,8 +1651,10 @@ Signals a visibility change of the browser.
}
```
-
-## *pageclosure [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.visibilitychange``.
+
+
+## *pageclosure [notification](#head_Notifications)*
Notifies that the web page requests to close its window.
@@ -1490,8 +1687,10 @@ This notification carries no parameters.
}
```
-
-## *bridgequery [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.pageclosure``.
+
+
+## *bridgequery [notification](#head_Notifications)*
A Base64 encoded JSON message from legacy $badger bridge.
@@ -1530,8 +1729,10 @@ A Base64 encoded JSON message from legacy $badger bridge.
}
```
-
-## *cookiejarchanged [notification](#head.Notifications)*
+> The *client ID* parameter is passed within the notification designator, i.e. ``.bridgequery``.
+
+
+## *cookiejarchanged [notification](#head_Notifications)*
Notifies that cookies were added, removed or modified.
@@ -1564,3 +1765,5 @@ This notification carries no parameters.
}
```
+> The *client ID* parameter is passed within the notification designator, i.e. ``.cookiejarchanged``.
+