From b2cefe6d01ae77ba2d6bb80ef574de8735ba583e Mon Sep 17 00:00:00 2001 From: volkan-aslan Date: Tue, 16 Jul 2024 13:10:26 +0200 Subject: [PATCH] Versioning support for pages. --- AVSControllerAPI/index.html | 2133 -------------- AmazonPrimeAPI/index.html | 2042 ------------- ApplicationAPI/index.html | 2304 --------------- BluetoothAudioSinkAPI/index.html | 2583 ----------------- BluetoothAudioSinkPlugin/index.html | 2701 ------------------ BluetoothControlAPI/index.html | 3390 ---------------------- BluetoothControlPlugin/index.html | 3462 ---------------------- BluetoothRemoteControlAPI/index.html | 2681 ------------------ BluetoothRemoteControlPlugin/index.html | 2748 ------------------ BrowserAPI/index.html | 2335 --------------- BrowserResourcesAPI/index.html | 2064 -------------- BrowserSecurityAPI/index.html | 2046 ------------- ButlerAPI/index.html | 2349 --------------- CobaltAPI/index.html | 2435 ---------------- CobaltPlugin/index.html | 2534 ----------------- CommanderPlugin/index.html | 1968 ------------- CompositorAPI/index.html | 2678 ----------------- CompositorPlugin/index.html | 2780 ------------------ ConnectionPropertiesAPI/index.html | 2471 ---------------- ContainersPlugin/index.html | 2482 ---------------- CustomerCareOperationsAPI/index.html | 1979 ------------- DHCPServerAPI/index.html | 2267 --------------- DHCPServerPlugin/index.html | 2352 --------------- DIALServerAPI/index.html | 2259 --------------- DIALServerPlugin/index.html | 2421 ---------------- DTVAPI/index.html | 3346 ---------------------- DTVPlugin/index.html | 3403 ---------------------- DeviceIdentificationAPI/index.html | 2039 ------------- DeviceInfoAPI/index.html | 2416 ---------------- DeviceInfoPlugin/index.html | 2533 ----------------- DictionaryPlugin/index.html | 1968 ------------- DisplayInfoAPI/index.html | 2062 -------------- DisplayInfoPlugin/index.html | 3032 -------------------- DisplayPropertiesAPI/index.html | 2197 -------------- FileTransferPlugin/index.html | 1973 ------------- FirmwareControlAPI/index.html | 2343 --------------- FirmwareControlPlugin/index.html | 2405 ---------------- GraphicsPropertiesAPI/index.html | 2022 ------------- HDRPropertiesAPI/index.html | 2078 -------------- IOConnectorAPI/index.html | 2072 -------------- IOConnectorPlugin/index.html | 2143 -------------- IOControlAPI/index.html | 2072 -------------- InputSwitchAPI/index.html | 2207 --------------- LanguageTagAPI/index.html | 2039 ------------- LocationSyncAPI/index.html | 2130 -------------- LocationSyncPlugin/index.html | 2192 -------------- MathAPI/index.html | 2076 -------------- MessengerAPI/index.html | 2404 ---------------- MessengerPlugin/index.html | 2446 ---------------- MonitorAPI/index.html | 2556 ----------------- MonitorPlugin/index.html | 2598 ----------------- NetflixAPI/index.html | 2374 ---------------- NetworkControlAPI/index.html | 2641 ----------------- NetworkControlPlugin/index.html | 2703 ------------------ NetworkToolsAPI/index.html | 2178 -------------- OpenCDMiAPI/index.html | 2076 -------------- OpenCDMiPlugin/index.html | 2168 -------------- OutputAPI/index.html | 2178 -------------- PackagerAPI/index.html | 2089 -------------- PackagerPlugin/index.html | 2131 -------------- PerformanceMonitorAPI/index.html | 2490 ---------------- PerformanceMonitorPlugin/index.html | 2532 ----------------- PlayerInfoAPI/index.html | 2061 -------------- PlayerInfoPlugin/index.html | 2425 ---------------- PlayerPropertiesAPI/index.html | 2131 -------------- PowerAPI/index.html | 2097 -------------- PowerPlugin/index.html | 2169 -------------- ProcessContainers/index.html | 2440 ---------------- ProcessMonitorPlugin/index.html | 1958 ------------- ProvisioningAPI/index.html | 2284 --------------- RemoteControlAPI/index.html | 3291 --------------------- RemoteControlPlugin/index.html | 3448 ---------------------- ResourceMonitorPlugin/index.html | 1983 ------------- SecureShellServerAPI/index.html | 2158 -------------- SecurityAgentAPI/index.html | 2130 -------------- SecurityAgentPlugin/index.html | 2187 -------------- SparkAPI/index.html | 2435 ---------------- SparkPlugin/index.html | 2489 ---------------- StateControlAPI/index.html | 2047 ------------- StreamerAPI/index.html | 3426 ---------------------- StreamerPlugin/index.html | 3468 ----------------------- SubsystemControlAPI/index.html | 2069 -------------- SubsystemControlPlugin/index.html | 1958 ------------- SystemCommandsAPI/index.html | 2026 ------------- SystemCommandsPlugin/index.html | 2068 -------------- TestControllerAPI/index.html | 2268 --------------- TestUtilityAPI/index.html | 2453 ---------------- TimeSyncAPI/index.html | 2177 -------------- TimeSyncPlugin/index.html | 2249 --------------- TraceControlAPI/index.html | 2146 -------------- TraceControlPlugin/index.html | 2223 --------------- VolumeControlAPI/index.html | 2172 -------------- VolumeControlPlugin/index.html | 2214 --------------- WebBrowserAPI/index.html | 2587 ----------------- WebKitBrowserAPI/index.html | 2343 --------------- WebKitBrowserPlugin/index.html | 3421 ---------------------- WebPAPlugin/index.html | 2008 ------------- WiFiControlAPI/index.html | 2982 ------------------- WifiControlPlugin/index.html | 3044 -------------------- 99 files changed, 236811 deletions(-) delete mode 100644 AVSControllerAPI/index.html delete mode 100644 AmazonPrimeAPI/index.html delete mode 100644 ApplicationAPI/index.html delete mode 100644 BluetoothAudioSinkAPI/index.html delete mode 100644 BluetoothAudioSinkPlugin/index.html delete mode 100644 BluetoothControlAPI/index.html delete mode 100644 BluetoothControlPlugin/index.html delete mode 100644 BluetoothRemoteControlAPI/index.html delete mode 100644 BluetoothRemoteControlPlugin/index.html delete mode 100644 BrowserAPI/index.html delete mode 100644 BrowserResourcesAPI/index.html delete mode 100644 BrowserSecurityAPI/index.html delete mode 100644 ButlerAPI/index.html delete mode 100644 CobaltAPI/index.html delete mode 100644 CobaltPlugin/index.html delete mode 100644 CommanderPlugin/index.html delete mode 100644 CompositorAPI/index.html delete mode 100644 CompositorPlugin/index.html delete mode 100644 ConnectionPropertiesAPI/index.html delete mode 100644 ContainersPlugin/index.html delete mode 100644 CustomerCareOperationsAPI/index.html delete mode 100644 DHCPServerAPI/index.html delete mode 100644 DHCPServerPlugin/index.html delete mode 100644 DIALServerAPI/index.html delete mode 100644 DIALServerPlugin/index.html delete mode 100644 DTVAPI/index.html delete mode 100644 DTVPlugin/index.html delete mode 100644 DeviceIdentificationAPI/index.html delete mode 100644 DeviceInfoAPI/index.html delete mode 100644 DeviceInfoPlugin/index.html delete mode 100644 DictionaryPlugin/index.html delete mode 100644 DisplayInfoAPI/index.html delete mode 100644 DisplayInfoPlugin/index.html delete mode 100644 DisplayPropertiesAPI/index.html delete mode 100644 FileTransferPlugin/index.html delete mode 100644 FirmwareControlAPI/index.html delete mode 100644 FirmwareControlPlugin/index.html delete mode 100644 GraphicsPropertiesAPI/index.html delete mode 100644 HDRPropertiesAPI/index.html delete mode 100644 IOConnectorAPI/index.html delete mode 100644 IOConnectorPlugin/index.html delete mode 100644 IOControlAPI/index.html delete mode 100644 InputSwitchAPI/index.html delete mode 100644 LanguageTagAPI/index.html delete mode 100644 LocationSyncAPI/index.html delete mode 100644 LocationSyncPlugin/index.html delete mode 100644 MathAPI/index.html delete mode 100644 MessengerAPI/index.html delete mode 100644 MessengerPlugin/index.html delete mode 100644 MonitorAPI/index.html delete mode 100644 MonitorPlugin/index.html delete mode 100644 NetflixAPI/index.html delete mode 100644 NetworkControlAPI/index.html delete mode 100644 NetworkControlPlugin/index.html delete mode 100644 NetworkToolsAPI/index.html delete mode 100644 OpenCDMiAPI/index.html delete mode 100644 OpenCDMiPlugin/index.html delete mode 100644 OutputAPI/index.html delete mode 100644 PackagerAPI/index.html delete mode 100644 PackagerPlugin/index.html delete mode 100644 PerformanceMonitorAPI/index.html delete mode 100644 PerformanceMonitorPlugin/index.html delete mode 100644 PlayerInfoAPI/index.html delete mode 100644 PlayerInfoPlugin/index.html delete mode 100644 PlayerPropertiesAPI/index.html delete mode 100644 PowerAPI/index.html delete mode 100644 PowerPlugin/index.html delete mode 100644 ProcessContainers/index.html delete mode 100644 ProcessMonitorPlugin/index.html delete mode 100644 ProvisioningAPI/index.html delete mode 100644 RemoteControlAPI/index.html delete mode 100644 RemoteControlPlugin/index.html delete mode 100644 ResourceMonitorPlugin/index.html delete mode 100644 SecureShellServerAPI/index.html delete mode 100644 SecurityAgentAPI/index.html delete mode 100644 SecurityAgentPlugin/index.html delete mode 100644 SparkAPI/index.html delete mode 100644 SparkPlugin/index.html delete mode 100644 StateControlAPI/index.html delete mode 100644 StreamerAPI/index.html delete mode 100644 StreamerPlugin/index.html delete mode 100644 SubsystemControlAPI/index.html delete mode 100644 SubsystemControlPlugin/index.html delete mode 100644 SystemCommandsAPI/index.html delete mode 100644 SystemCommandsPlugin/index.html delete mode 100644 TestControllerAPI/index.html delete mode 100644 TestUtilityAPI/index.html delete mode 100644 TimeSyncAPI/index.html delete mode 100644 TimeSyncPlugin/index.html delete mode 100644 TraceControlAPI/index.html delete mode 100644 TraceControlPlugin/index.html delete mode 100644 VolumeControlAPI/index.html delete mode 100644 VolumeControlPlugin/index.html delete mode 100644 WebBrowserAPI/index.html delete mode 100644 WebKitBrowserAPI/index.html delete mode 100644 WebKitBrowserPlugin/index.html delete mode 100644 WebPAPlugin/index.html delete mode 100644 WiFiControlAPI/index.html delete mode 100644 WifiControlPlugin/index.html diff --git a/AVSControllerAPI/index.html b/AVSControllerAPI/index.html deleted file mode 100644 index 56d7b32..0000000 --- a/AVSControllerAPI/index.html +++ /dev/null @@ -1,2133 +0,0 @@ - - - - - - - - - - - - - - - - - AVSController API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

AVSController API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A AVSController interface for Thunder framework.

-

(Defined with Exchange::IAVSController in IAVSClient.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the AVSController interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

AVSController JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the AVSController interface:

-

AVSController interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange muteMutes the audio output of AVS
exchange recordStarts or stops the voice recording, skipping keyword detection
-

-

exchange_mute method

-

Mutes the audio output of AVS.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
mutedboolean
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALwhen there is a fatal error or authorisation is not possible
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "AVSController.1.exchange_mute",
-    "params": false
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

exchange_record method

-

Starts or stops the voice recording, skipping keyword detection.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
startedboolean
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALwhen there is a fatal error or authorisation is not possible
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "AVSController.1.exchange_record",
-    "params": false
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the AVSController interface:

-

AVSController interface events:

- - - - - - - - - - - - - -
EventDescription
exchange dialoguestatechangenotifies about dialogue state changes
-

-

exchange_dialoguestatechange event

-

notifies about dialogue state changes.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
statestringThe new state (must be one of the following: Idle, Listening, Expecting, Thinking, Speaking)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_dialoguestatechange",
-    "params": "SPEAKING"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/AmazonPrimeAPI/index.html b/AmazonPrimeAPI/index.html deleted file mode 100644 index 8a17fde..0000000 --- a/AmazonPrimeAPI/index.html +++ /dev/null @@ -1,2042 +0,0 @@ - - - - - - - - - - - - - - - - - AmazonPrime API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

AmazonPrime API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A AmazonPrime interface for Thunder framework.

-

(Defined with Exchange::IAmazonPrime in IAmazonPrime.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the AmazonPrime interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

AmazonPrime JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the AmazonPrime interface:

-

AmazonPrime interface methods:

- - - - - - - - - - - - - -
MethodDescription
exchange sendSend a message over the message bus to ignition
-

-

exchange_send method

-

Send a message over the message bus to ignition.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
messagestring
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "AmazonPrime.1.exchange_send",
-    "params": "..."
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the AmazonPrime interface:

-

AmazonPrime interface events:

- - - - - - - - - - - - - -
EventDescription
exchange receiveReceive a message from the generic message bus
-

-

exchange_receive event

-

Receive a message from the generic message bus.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
messagestring
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_receive",
-    "params": "..."
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ApplicationAPI/index.html b/ApplicationAPI/index.html deleted file mode 100644 index 67da463..0000000 --- a/ApplicationAPI/index.html +++ /dev/null @@ -1,2304 +0,0 @@ - - - - - - - - - - - - - - - - - Application API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Application API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Application interface for Thunder framework.

-

(Defined with Exchange::IApplication in IApplication.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Application interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Application JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Application interface:

-

Application interface methods:

- - - - - - - - - - - - - -
MethodDescription
exchange resetResets application data
-

-

exchange_reset method

-

Resets application data.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
typestringType of reset to perform (must be one of the following: Factory, Cache, Credentials, Recordings)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_reset",
-    "params": "Factory"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Application interface:

-

Application interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange identifier ROApplication-specific identification string
exchange contentlink WOURI of the associated application-specific content
exchange launchpointApplication launching point
exchange visibleCurrent application visibility
exchange languageCurrent application user interface language
-

-

exchange_identifier property

-

Provides access to the application-specific identification string.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
idstringIdentifier string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_identifier"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "..."
-}
-
-

- -

Provides access to the URI of the associated application-specific content.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
linkstringContent URI
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_contentlink",
-    "params": "https://youtube.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_launchpoint property

-

Provides access to the application launching point.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
pointstringApplication launching point (must be one of the following: Undefined, Dial, DedicatedButton, DedicatedIcon, ApplicationList, IntegratedTile, SearchResult, SearchContinuation, VoiceControl, VoiceSearchResult, VisualGesture, TouchGesture, EpgGrid, ChannelNumber, ChannelZap, ChannelBar, WebBrowser, PowerOn, PowerOnFromDedicatedButton, SuspendedPowerOn, Restart, SuspendedRestart, ResumedFromScreenSaver, ResumedFromStandby, BannerAd, TitleRecommendation, ApplicationPromotion)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_launchpoint"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Undefined"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_launchpoint",
-    "params": "Undefined"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_visible property

-

Provides access to the current application visibility.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
visiblitybooleanCurrent application visibility
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_visible"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_visible",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_language property

-

Provides access to the current application user interface language.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
languagestringLanguage string as per RFC5646
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_language"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "en"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Application.1.exchange_language",
-    "params": "en"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Application interface:

-

Application interface events:

- - - - - - - - - - - - - -
EventDescription
exchange visibilitychangeApplication visibility changes
-

-

exchange_visibilitychange event

-

Application visibility changes.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
hiddenbooleanDenotes if application is currently hidden
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_visibilitychange",
-    "params": false
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothAudioSinkAPI/index.html b/BluetoothAudioSinkAPI/index.html deleted file mode 100644 index b9e4895..0000000 --- a/BluetoothAudioSinkAPI/index.html +++ /dev/null @@ -1,2583 +0,0 @@ - - - - - - - - - - - - - - - - - BluetoothAudioSink API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

BluetoothAudioSink API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothAudioSink interface for Thunder framework.

-

(Defined with Exchange::IBluetoothAudioSink in IBluetoothAudio.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothAudioSink interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

BluetoothAudioSink JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the BluetoothAudioSink interface:

-

BluetoothAudioSink interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange assignAssigns a Bluetooth device for audio playback
exchange revokeRevokes a Bluetooth device from audio playback
-

-

exchange_assign method

-

Assigns a Bluetooth device for audio playback.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
addressstringAddress of the bluetooth device to assign
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ALREADY_CONNECTEDA device is already assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_assign",
-    "params": "..."
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

exchange_revoke method

-

Revokes a Bluetooth device from audio playback.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ALREADY_RELEASEDNo device is currently assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_revoke"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothAudioSink interface:

-

BluetoothAudioSink interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange state ROCurrent audio sink state
exchange type ROAudio sink type
exchange supportedcodecs ROAudio codecs supported by the sink
exchange supporteddrms RODRM schemes supported by the sink
exchange codec ROProperites of the currently used codec
exchange drm ROProperties of the currently used DRM scheme
exchange stream ROProperties of the current output stream
-

-

exchange_state property

-

Provides access to the current audio sink state.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
sinkstatestringCurrent audio sink state (must be one of the following: Unassigned, Disconnected, ConnectedBadDevice, ConnectedRestricted, Connected, Ready, Streaming)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unassigned"
-}
-
-

-

exchange_type property

-

Provides access to the audio sink type.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
typestringAudio sink type (must be one of the following: Unknown, Headphone, Speaker, Recorder, Amplifier)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_type"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unknown"
-}
-
-

-

exchange_supportedcodecs property

-

Provides access to the audio codecs supported by the sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecsarrayAudio codecs supported by the sink
codecs[#]string(must be one of the following: LC-SBC)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_supportedcodecs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "LC-SBC"
-    ]
-}
-
-

-

exchange_supporteddrms property

-

Provides access to the DRM schemes supported by the sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
drmsarrayDRM schemes supported by the sink
drms[#]string(must be one of the following: None, DTCP, SCMS-T)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_supporteddrms"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "None"
-    ]
-}
-
-

-

exchange_codec property

-

Provides access to the properites of the currently used codec.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperites of the currently used codec
properties.codecstringAudio codec used (must be one of the following: LC-SBC)
properties.settingsstringCodec-specific audio quality preset, compression profile, etc
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_codec"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "codec": "LC-SBC",
-        "settings": "..."
-    }
-}
-
-

-

exchange_drm property

-

Provides access to the properties of the currently used DRM scheme.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperties of the currently used DRM scheme
properties.drmstringContent protection scheme used (must be one of the following: None, DTCP, SCMS-T)
properties.settingsstringDRM-specific content protection level, encoding rules, etc
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_drm"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "drm": "None",
-        "settings": "..."
-    }
-}
-
-

-

exchange_stream property

-

Provides access to the properties of the current output stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperties of the current output stream
properties.samplerateintegerSample rate in Hz
properties.bitrateintegerTarget bitrate in bits per second (eg. 320000)
properties.channelsintegerNumber of audio channels
properties.resolutionintegerSampling resolution in bits per sample
properties.isresamplingbooleanIndicates if the sink is resampling the input stream
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_stream"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "samplerate": 44100,
-        "bitrate": 0,
-        "channels": 2,
-        "resolution": 16,
-        "isresampling": false
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothAudioSink interface:

-

BluetoothAudioSink interface events:

- - - - - - - - - - - - - -
EventDescription
exchange updatedSignals audio sink state change or stream properties update
-

-

exchange_updated event

-

Signals audio sink state change or stream properties update.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_updated"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothAudioSinkPlugin/index.html b/BluetoothAudioSinkPlugin/index.html deleted file mode 100644 index 6468bb2..0000000 --- a/BluetoothAudioSinkPlugin/index.html +++ /dev/null @@ -1,2701 +0,0 @@ - - - - - - - - - - - - - - - - - Bluetooth Audio Sink Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Bluetooth Audio Sink Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothAudioSink plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothAudioSink plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
BR/EDRBasic Rate/Enhanced Data Rate
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
LC-SBCLow-Complexity SubBand Coding
SDPService Discovery Protocol
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - - - - - -
TermDescription
bitpoolA parameter to the LC-SBC codec that changes the encoding bitrate; the higher it is the higher the bitrate and thus the audio quality
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Bluetooth Audio Sink plugin enables audio streaming to Bluetooth audio sink devices. The plugin is sink a from the host device stack perspective; in Bluetooth topology the host device becomes in fact an audio source. The plugin requires a Bluetooth controller service that will provide Bluetooth BR/EDR scanning, pairing and connection functionality; typically this is fulfiled by the BluetoothControl plugin.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: BluetoothAudioSink)
classnamestringClass name: BluetoothAudioSink
locatorstringLibrary name: libWPEFrameworkBluetoothAudioSink.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject
configuration.controllerstringCallsign of the Bluetooth controller service (typically BluetoothControl)
configuration.sdpserviceobjectConfiguration of the related SDP service
configuration.sdpservice.enableboolDetermines if the SDP server shall advertise an audio source service
configuration.sdpservice?.namestring(optional) Friendly name of the service
configuration.sdpservice?.descriptionstring(optional) Description of the service
configuration.sdpservice?.providerstring(optional) Name of the service provider/vendor
configuration.codecsobjectCodec settings
configuration.codecs.LC-SBCobjectSettings for the LC-SBC codec
configuration.codecs.LC-SBC?.presetstring(optional) Predefined audio quality setting (must be one of the following: Compatible, LQ, MQ, HQ, XQ)
configuration.codecs.LC-SBC?.bitpoolnumber(optional) Custom audio quality based on bitpool value (used when preset is not specified)
configuration.codecs.LC-SBC?.channelmodestring(optional) Channel mode for custom audio quality (used when preset is not specified) (must be one of the following: Mono, Stereo, JointStereo, DualChannel)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the BluetoothAudioSink plugin:

-

BluetoothAudioSink interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange assignAssigns a Bluetooth device for audio playback
exchange revokeRevokes a Bluetooth device from audio playback
-

-

exchange_assign method

-

Assigns a Bluetooth device for audio playback.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
addressstringAddress of the bluetooth device to assign
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ALREADY_CONNECTEDA device is already assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_assign",
-    "params": "..."
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

exchange_revoke method

-

Revokes a Bluetooth device from audio playback.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ALREADY_RELEASEDNo device is currently assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_revoke"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothAudioSink plugin:

-

BluetoothAudioSink interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange state ROCurrent audio sink state
exchange type ROAudio sink type
exchange supportedcodecs ROAudio codecs supported by the sink
exchange supporteddrms RODRM schemes supported by the sink
exchange codec ROProperites of the currently used codec
exchange drm ROProperties of the currently used DRM scheme
exchange stream ROProperties of the current output stream
-

-

exchange_state property

-

Provides access to the current audio sink state.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
sinkstatestringCurrent audio sink state (must be one of the following: Unassigned, Disconnected, ConnectedBadDevice, ConnectedRestricted, Connected, Ready, Streaming)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unassigned"
-}
-
-

-

exchange_type property

-

Provides access to the audio sink type.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
typestringAudio sink type (must be one of the following: Unknown, Headphone, Speaker, Recorder, Amplifier)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_type"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unknown"
-}
-
-

-

exchange_supportedcodecs property

-

Provides access to the audio codecs supported by the sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecsarrayAudio codecs supported by the sink
codecs[#]string(must be one of the following: LC-SBC)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_supportedcodecs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "LC-SBC"
-    ]
-}
-
-

-

exchange_supporteddrms property

-

Provides access to the DRM schemes supported by the sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
drmsarrayDRM schemes supported by the sink
drms[#]string(must be one of the following: None, DTCP, SCMS-T)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATEThe sink device is not connected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_supporteddrms"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "None"
-    ]
-}
-
-

-

exchange_codec property

-

Provides access to the properites of the currently used codec.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperites of the currently used codec
properties.codecstringAudio codec used (must be one of the following: LC-SBC)
properties.settingsstringCodec-specific audio quality preset, compression profile, etc
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_codec"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "codec": "LC-SBC",
-        "settings": "..."
-    }
-}
-
-

-

exchange_drm property

-

Provides access to the properties of the currently used DRM scheme.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperties of the currently used DRM scheme
properties.drmstringContent protection scheme used (must be one of the following: None, DTCP, SCMS-T)
properties.settingsstringDRM-specific content protection level, encoding rules, etc
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_drm"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "drm": "None",
-        "settings": "..."
-    }
-}
-
-

-

exchange_stream property

-

Provides access to the properties of the current output stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
propertiesobjectProperties of the current output stream
properties.samplerateintegerSample rate in Hz
properties.bitrateintegerTarget bitrate in bits per second (eg. 320000)
properties.channelsintegerNumber of audio channels
properties.resolutionintegerSampling resolution in bits per sample
properties.isresamplingbooleanIndicates if the sink is resampling the input stream
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_ILLEGAL_STATECurrently not streaming
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothAudioSink.1.exchange_stream"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "samplerate": 44100,
-        "bitrate": 0,
-        "channels": 2,
-        "resolution": 16,
-        "isresampling": false
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothAudioSink plugin:

-

BluetoothAudioSink interface events:

- - - - - - - - - - - - - -
EventDescription
exchange updatedSignals audio sink state change or stream properties update
-

-

exchange_updated event

-

Signals audio sink state change or stream properties update.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_updated"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothControlAPI/index.html b/BluetoothControlAPI/index.html deleted file mode 100644 index 45a5246..0000000 --- a/BluetoothControlAPI/index.html +++ /dev/null @@ -1,3390 +0,0 @@ - - - - - - - - - - - - - - - - - Bluetooth Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Bluetooth Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothControl interface for Thunder framework.

-

(Defined by BluetoothControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Bluetooth Control JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the BluetoothControl interface:

-

BluetoothControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
scanStarts active scanning for Bluetooth devices
stopscanningStops scanning procedure
connectConnects to a Bluetooth device
disconnectDisconnects from a connected Bluetooth device
pairPairs a Bluetooth device
unpairUnpairs a paired Bluetooth device
abortpairingAborts the pairing process
pincodeSpecifies a PIN code for authentication during a legacy pairing process
passkeySpecifies a passkey for authentication during a pairing process
confirmpasskeyConfirms a passkey for authentication during a pairing process
-

-

scan method

-

Starts active scanning for Bluetooth devices.

-

Also see: scanstarted, scancomplete

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.typestringBluetooth device type (must be one of the following: Classic, LowEnergy)
params?.timeoutnumber(optional) Duration of the scan (in seconds); default: 10 seconds
params?.durationnumber(optional) Duration of the scan (in seconds); default: 10 seconds
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to scan
12ERROR_INPROGRESSScan already in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.scan",
-    "params": {
-        "type": "LowEnergy",
-        "timeout": 60,
-        "duration": 60
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

stopscanning method

-

Stops scanning procedure.

-

Also see: scancomplete

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to top scanning
5ERROR_ILLEGAL_STATENo scan is in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.stopscanning"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

connect method

-

Connects to a Bluetooth device.

-

Description

-

If the device is not available it will be automatically connected as soon it becomes available.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not paired
9ERROR_ALREADY_CONNECTEDDevice already connected
1ERROR_GENERALFailed to connect the device
27ERROR_REQUEST_SUBMITTEDDevice has not been connected but will be automatically connected when available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.connect",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

disconnect method

-

Disconnects from a connected Bluetooth device.

-

Description

-

Device will cease to re-connect automatically.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
36ERROR_ALREADY_RELEASEDDevice not connected
27ERROR_REQUEST_SUBMITTEDDevice is currently not connected but it's autoconnection mode has been disabled
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.disconnect",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pair method

-

Pairs a Bluetooth device.

-

Description

-

The client may expect PIN or passkey requests during the pairing process. The process can be cancelled any time by calling the abortpairing method

-

Also see: devicestatechange, pincoderequest, passkeyrequest, passkeyconfirmrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params?.timeoutinteger(optional) Maximum time allowed for the pairing process to complete (in seconds); default: 20 seconds
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
9ERROR_ALREADY_CONNECTEDDevice already paired
1ERROR_GENERALFailed to pair the device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.pair",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "timeout": 60
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

unpair method

-

Unpairs a paired Bluetooth device.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
36ERROR_ALREADY_RELEASEDDevice not paired
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.unpair",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

abortpairing method

-

Aborts the pairing process.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.abortpairing",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pincode method

-

Specifies a PIN code for authentication during a legacy pairing process.

-

Description

-

This method is to be called upon receiving a pincoderequest event during a legacy pairing process. If the specified PIN code is incorrect the pairing process will be aborted.

-

Also see: pincoderequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretstringA PIN code string, typically consisting of (but not limited to) four decimal digits
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing or PIN code has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.pincode",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": "0000"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

passkey method

-

Specifies a passkey for authentication during a pairing process.

-

Description

-

This method is to be called upon receiving a passkeyrequest event during a pairing process. If the specified passkey is incorrect or empty the pairing process will be aborted.

-

Also see: passkeyrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretintegerA six-digit decimal number passkey
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing or a passkey has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.passkey",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": 123456
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

confirmpasskey method

-

Confirms a passkey for authentication during a pairing process.

-

Description

-

This method is to be called upon receiving a passkeyconfirmationrequest event during a pairing process. If the confirmation is negative or the pairing process will be aborted.

-

Also see: passkeyconfirmrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.iscorrectbooleanSpecifies if the passkey sent in passkeyconfirmrequest event is correct (true) or incorrect (false)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice is currently not pairing or passkey confirmation has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.confirmpasskey",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "iscorrect": true
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothControl interface:

-

BluetoothControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
adapters ROList of local Bluetooth adapters
adapter ROLocal Bluetooth adapter information
devices ROList of known remote Bluetooth devices
device RORemote Bluetooth device information
-

-

adapters property

-

Provides access to the list of local Bluetooth adapters.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of local Bluetooth adapters
(property)[#]numberAdapter ID
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.adapters"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0
-    ]
-}
-
-

-

adapter property

-

Provides access to the local Bluetooth adapter information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectLocal Bluetooth adapter information
(property).interfacestringNdapter interface name
(property).addressstringBluetooth address
(property).versionnumberDevice version
(property)?.manufacturernumber(optional) Device manufacturer Company Identifer
(property)?.namestring(optional) Device name
(property)?.shortnamestring(optional) Device short name
-
-

The adapter id argument shall be passed as the index to the property, e.g. BluetoothControl.1.adapter@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.adapter@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "interface": "hci0",
-        "address": "81:6F:B0:91:9B:FE",
-        "version": 8,
-        "manufacturer": 0,
-        "name": "Thunder",
-        "shortname": "Thunder"
-    }
-}
-
-

-

devices property

-

Provides access to the list of known remote Bluetooth devices.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of known remote Bluetooth devices
(property)[#]stringBluetooth address
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.devices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "81:6F:B0:91:9B:FE"
-    ]
-}
-
-

-

device property

-

Provides access to the remote Bluetooth device information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectRemote Bluetooth device information
(property).namestringName of the device
(property).typestringBluetooth device type (must be one of the following: Classic, LowEnergy)
(property)?.classinteger(optional) Class of device (3 octets)
(property).connectedbooleanDenotes if the device is currently connected to host
(property).pairedbooleanDenotes if the device is currently paired with host
-
-

The device address argument shall be passed as the index to the property, e.g. BluetoothControl.1.device@81:6F:B0:91:9B:FE.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.device@81:6F:B0:91:9B:FE"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "name": "Acme Bluetooth Device",
-        "type": "LowEnergy",
-        "class": 2360324,
-        "connected": true,
-        "paired": true
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothControl interface:

-

BluetoothControl interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
scanstartedNotifies about start scanning
scancompleteNotifies about scan completion
devicestatechangeNotifies about device state change
pincoderequestNotifies about a PIN code request
passkeyrequestNotifies about a passkey request
passkeyconfirmrequestNotifies about a passkey confirmation request
-

-

scanstarted event

-

Notifies about start scanning.

-

Description

-

Register to this event to be notified about device scan start

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scanstarted"
-}
-
-

-

scancomplete event

-

Notifies about scan completion.

-

Description

-

Register to this event to be notified about device scan completion

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scancomplete"
-}
-
-

-

devicestatechange event

-

Notifies about device state change.

-

Description

-

Register to this event to be notified about device state changes

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.statestringDevice state (must be one of the following: Pairing, Paired, Unpaired, Connected, Disconnected)
params?.disconnectreasonstring(optional) Disconnection reason in case of Disconnected event (must be one of the following: ConnectionTimeout, AuthenticationFailure, RemoteLowOnResources, RemotePoweredOff, TerminatedByRemote, TerminatedByHost)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.devicestatechange",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "state": "Disconnected",
-        "disconnectreason": "ConnectionTimeout"
-    }
-}
-
-

-

pincoderequest event

-

Notifies about a PIN code request.

-

Description

-

Register to this event to be notified about PIN code requests during a legacy pairing process. Upon receiving this event the client is required to respond with a pincode call in order to complete the pairing procedure. The PIN code value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

Note that this event will never be send for a Bluetooth LowEnergy device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.pincoderequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

-

passkeyrequest event

-

Notifies about a passkey request.

-

Description

-

Register to this event to be notified about passkey requests that may be required during a pairing process. Upon receiving this event the client is required to respond with a passkey call in order to complete the pairing procedure. The passkey value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.passkeyrequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

-

passkeyconfirmrequest event

-

Notifies about a passkey confirmation request.

-

Description

-

Register to this event to be notified about passkey confirmation requests that may required during a pairing process. Upon receiving this event the client is required to respond with a passkeyconfirm call in order to complete the pairing procedure. The passkey confirmation would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretintegerA six-digit decimal number passkey sent by the remote device for confirmation
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.passkeyconfirmrequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": 123456
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothControlPlugin/index.html b/BluetoothControlPlugin/index.html deleted file mode 100644 index d3c183d..0000000 --- a/BluetoothControlPlugin/index.html +++ /dev/null @@ -1,3462 +0,0 @@ - - - - - - - - - - - - - - - - - Bluetooth Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Bluetooth Control Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Bluetooth Control plugin allows Bluetooth device administration.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: BluetoothControl)
classnamestringClass name: BluetoothControl
locatorstringLibrary name: libWPEFrameworkBluetoothControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.interfacenumber(optional) ID of interface
configuration?.nameString(optional) Name of interface
configuration?.classnumber(optional) Number of Class
configuration?.autopasskeyconfirmboolean(optional) Enable autopass confirm
configuration?.persistmacboolean(optional) Enable persistent MAC
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the BluetoothControl plugin:

-

BluetoothControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
scanStarts active scanning for Bluetooth devices
stopscanningStops scanning procedure
connectConnects to a Bluetooth device
disconnectDisconnects from a connected Bluetooth device
pairPairs a Bluetooth device
unpairUnpairs a paired Bluetooth device
abortpairingAborts the pairing process
pincodeSpecifies a PIN code for authentication during a legacy pairing process
passkeySpecifies a passkey for authentication during a pairing process
confirmpasskeyConfirms a passkey for authentication during a pairing process
-

-

scan method

-

Starts active scanning for Bluetooth devices.

-

Also see: scanstarted, scancomplete

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.typestringBluetooth device type (must be one of the following: Classic, LowEnergy)
params?.timeoutnumber(optional) Duration of the scan (in seconds); default: 10 seconds
params?.durationnumber(optional) Duration of the scan (in seconds); default: 10 seconds
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to scan
12ERROR_INPROGRESSScan already in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.scan",
-    "params": {
-        "type": "LowEnergy",
-        "timeout": 60,
-        "duration": 60
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

stopscanning method

-

Stops scanning procedure.

-

Also see: scancomplete

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to top scanning
5ERROR_ILLEGAL_STATENo scan is in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.stopscanning"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

connect method

-

Connects to a Bluetooth device.

-

Description

-

If the device is not available it will be automatically connected as soon it becomes available.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not paired
9ERROR_ALREADY_CONNECTEDDevice already connected
1ERROR_GENERALFailed to connect the device
27ERROR_REQUEST_SUBMITTEDDevice has not been connected but will be automatically connected when available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.connect",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

disconnect method

-

Disconnects from a connected Bluetooth device.

-

Description

-

Device will cease to re-connect automatically.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
36ERROR_ALREADY_RELEASEDDevice not connected
27ERROR_REQUEST_SUBMITTEDDevice is currently not connected but it's autoconnection mode has been disabled
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.disconnect",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pair method

-

Pairs a Bluetooth device.

-

Description

-

The client may expect PIN or passkey requests during the pairing process. The process can be cancelled any time by calling the abortpairing method

-

Also see: devicestatechange, pincoderequest, passkeyrequest, passkeyconfirmrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params?.timeoutinteger(optional) Maximum time allowed for the pairing process to complete (in seconds); default: 20 seconds
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
9ERROR_ALREADY_CONNECTEDDevice already paired
1ERROR_GENERALFailed to pair the device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.pair",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "timeout": 60
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

unpair method

-

Unpairs a paired Bluetooth device.

-

Also see: devicestatechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
36ERROR_ALREADY_RELEASEDDevice not paired
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.unpair",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

abortpairing method

-

Aborts the pairing process.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.abortpairing",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pincode method

-

Specifies a PIN code for authentication during a legacy pairing process.

-

Description

-

This method is to be called upon receiving a pincoderequest event during a legacy pairing process. If the specified PIN code is incorrect the pairing process will be aborted.

-

Also see: pincoderequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretstringA PIN code string, typically consisting of (but not limited to) four decimal digits
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing or PIN code has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.pincode",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": "0000"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

passkey method

-

Specifies a passkey for authentication during a pairing process.

-

Description

-

This method is to be called upon receiving a passkeyrequest event during a pairing process. If the specified passkey is incorrect or empty the pairing process will be aborted.

-

Also see: passkeyrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretintegerA six-digit decimal number passkey
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice not currently pairing or a passkey has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.passkey",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": 123456
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

confirmpasskey method

-

Confirms a passkey for authentication during a pairing process.

-

Description

-

This method is to be called upon receiving a passkeyconfirmationrequest event during a pairing process. If the confirmation is negative or the pairing process will be aborted.

-

Also see: passkeyconfirmrequest

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.iscorrectbooleanSpecifies if the passkey sent in passkeyconfirmrequest event is correct (true) or incorrect (false)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
5ERROR_ILLEGAL_STATEDevice is currently not pairing or passkey confirmation has not been requested
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.confirmpasskey",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "iscorrect": true
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothControl plugin:

-

BluetoothControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
adapters ROList of local Bluetooth adapters
adapter ROLocal Bluetooth adapter information
devices ROList of known remote Bluetooth devices
device RORemote Bluetooth device information
-

-

adapters property

-

Provides access to the list of local Bluetooth adapters.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of local Bluetooth adapters
(property)[#]numberAdapter ID
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.adapters"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0
-    ]
-}
-
-

-

adapter property

-

Provides access to the local Bluetooth adapter information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectLocal Bluetooth adapter information
(property).interfacestringNdapter interface name
(property).addressstringBluetooth address
(property).versionnumberDevice version
(property)?.manufacturernumber(optional) Device manufacturer Company Identifer
(property)?.namestring(optional) Device name
(property)?.shortnamestring(optional) Device short name
-
-

The adapter id argument shall be passed as the index to the property, e.g. BluetoothControl.1.adapter@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.adapter@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "interface": "hci0",
-        "address": "81:6F:B0:91:9B:FE",
-        "version": 8,
-        "manufacturer": 0,
-        "name": "Thunder",
-        "shortname": "Thunder"
-    }
-}
-
-

-

devices property

-

Provides access to the list of known remote Bluetooth devices.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of known remote Bluetooth devices
(property)[#]stringBluetooth address
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.devices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "81:6F:B0:91:9B:FE"
-    ]
-}
-
-

-

device property

-

Provides access to the remote Bluetooth device information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectRemote Bluetooth device information
(property).namestringName of the device
(property).typestringBluetooth device type (must be one of the following: Classic, LowEnergy)
(property)?.classinteger(optional) Class of device (3 octets)
(property).connectedbooleanDenotes if the device is currently connected to host
(property).pairedbooleanDenotes if the device is currently paired with host
-
-

The device address argument shall be passed as the index to the property, e.g. BluetoothControl.1.device@81:6F:B0:91:9B:FE.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothControl.1.device@81:6F:B0:91:9B:FE"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "name": "Acme Bluetooth Device",
-        "type": "LowEnergy",
-        "class": 2360324,
-        "connected": true,
-        "paired": true
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothControl plugin:

-

BluetoothControl interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
scanstartedNotifies about start scanning
scancompleteNotifies about scan completion
devicestatechangeNotifies about device state change
pincoderequestNotifies about a PIN code request
passkeyrequestNotifies about a passkey request
passkeyconfirmrequestNotifies about a passkey confirmation request
-

-

scanstarted event

-

Notifies about start scanning.

-

Description

-

Register to this event to be notified about device scan start

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scanstarted"
-}
-
-

-

scancomplete event

-

Notifies about scan completion.

-

Description

-

Register to this event to be notified about device scan completion

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scancomplete"
-}
-
-

-

devicestatechange event

-

Notifies about device state change.

-

Description

-

Register to this event to be notified about device state changes

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.statestringDevice state (must be one of the following: Pairing, Paired, Unpaired, Connected, Disconnected)
params?.disconnectreasonstring(optional) Disconnection reason in case of Disconnected event (must be one of the following: ConnectionTimeout, AuthenticationFailure, RemoteLowOnResources, RemotePoweredOff, TerminatedByRemote, TerminatedByHost)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.devicestatechange",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "state": "Disconnected",
-        "disconnectreason": "ConnectionTimeout"
-    }
-}
-
-

-

pincoderequest event

-

Notifies about a PIN code request.

-

Description

-

Register to this event to be notified about PIN code requests during a legacy pairing process. Upon receiving this event the client is required to respond with a pincode call in order to complete the pairing procedure. The PIN code value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

Note that this event will never be send for a Bluetooth LowEnergy device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.pincoderequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

-

passkeyrequest event

-

Notifies about a passkey request.

-

Description

-

Register to this event to be notified about passkey requests that may be required during a pairing process. Upon receiving this event the client is required to respond with a passkey call in order to complete the pairing procedure. The passkey value would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.passkeyrequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

-

passkeyconfirmrequest event

-

Notifies about a passkey confirmation request.

-

Description

-

Register to this event to be notified about passkey confirmation requests that may required during a pairing process. Upon receiving this event the client is required to respond with a passkeyconfirm call in order to complete the pairing procedure. The passkey confirmation would typically be collected by prompting the end-user. If the client fails to respond before the pairing timeout elapses the pairing procedure will be aborted.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
params.secretintegerA six-digit decimal number passkey sent by the remote device for confirmation
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.passkeyconfirmrequest",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE",
-        "secret": 123456
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothRemoteControlAPI/index.html b/BluetoothRemoteControlAPI/index.html deleted file mode 100644 index 5dda4c0..0000000 --- a/BluetoothRemoteControlAPI/index.html +++ /dev/null @@ -1,2681 +0,0 @@ - - - - - - - - - - - - - - - - - Bluetooth Remote Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Bluetooth Remote Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothRemoteControl interface for Thunder framework.

-

(Defined by BluetoothRemoteControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothRemoteControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Bluetooth Remote Control JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the BluetoothRemoteControl interface:

-

BluetoothRemoteControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
assignAssigns a bluetooth device as a remote control unit
revokeRevokes the current remote control assignment
-

-

assign method

-

Assigns a bluetooth device as a remote control unit.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEBluetooth unavailable
22ERROR_UNKNOWN_KEYDevice unknown
1ERROR_GENERALFailed to assign the device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.assign",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

revoke method

-

Revokes the current remote control assignment.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATERemote not assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.revoke"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothRemoteControl interface:

-

BluetoothRemoteControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
name ROUnit name
address ROBluetooth address of the unit
info ROUnit auxiliary information
batterylevel ROBattery level
voiceEnable or Disable the flow of Voice data fragments from the remote
audioprofile ROAudio profile details
-

-

name property

-

Provides access to the unit name.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringName of the remote control unit
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.name"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Acme Bluetooth RCU"
-}
-
-

-

address property

-

Provides access to the bluetooth address of the unit.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringBluetooth address
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.address"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "81:6F:B0:91:9B:FE"
-}
-
-

-

info property

-

Provides access to the unit auxiliary information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectUnit auxiliary information
(property)?.modelstring(optional) Unit model name or number
(property)?.serialstring(optional) Unit serial number
(property)?.firmwarestring(optional) Unit firmware revision
(property)?.softwarestring(optional) Unit software revision
(property)?.manufacturerstring(optional) Unit manufacturer name
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
1ERROR_GENERALFailed to retrieve information
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.info"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "model": "Acme 1500 Plus",
-        "serial": "1234567890",
-        "firmware": "1.0",
-        "software": "1.0",
-        "manufacturer": "Acme Inc."
-    }
-}
-
-

-

batterylevel property

-

Provides access to the battery level.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberRemote control unit's battery level in percentage
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
1ERROR_GENERALFailed to retrieve battery level
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.batterylevel"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 50
-}
-
-

-

voice property

-

Provides access to the enable or Disable the flow of Voice data fragments from the remote.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)booleanenable (true) or disable (false) flow of voice data
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to set the voice flow
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.voice"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.voice",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

audioprofile property

-

Provides access to the audio profile details.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectAudio profile details
(property).codecstringName of the audio codec (pcm for uncompressed audio) (must be one of the following: PCM, ADPCM)
(property).channelsnumberNumber of audio channels (1: mono, 2: stereo, etc.)
(property).ratenumberSample rate (in Hz)
(property).resolutionnumberSample resolution (in bits per sample)
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
22ERROR_UNKNOWN_KEYThe supplied audio profile is unknown
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.audioprofile"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "codec": "ADPCM",
-        "channels": 1,
-        "rate": 16000,
-        "resolution": 16
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothRemoteControl interface:

-

BluetoothRemoteControl interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
audiotransmissionNotifies about audio data transmission
audioframeNotifies about new audio data available
batterylevelchangeNotifies about battery level changes
-

-

audiotransmission event

-

Notifies about audio data transmission.

-

Description

-

Register to this event to be notified about audio transmission status

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.profilestring(optional) Type of audio profile, marking start of transmission; empty in case of end of transmission
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.audiotransmission",
-    "params": {
-        "profile": "pcm"
-    }
-}
-
-

-

audioframe event

-

Notifies about new audio data available.

-

Description

-

Register to this event to be notified about audio data

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.seqnumber(optional) Sequence number of the audio frame within current audio transmission
params.datastringBase64 representation of the binary data of the audio frame; format of the data is specified by the audio profile denoted by the most recent audiotransmission notification
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.audioframe",
-    "params": {
-        "seq": 1,
-        "data": "yKMHiYh6qJiDspB6S7ihlKOAbivApYEQDCgY0aECCQhpkAqZogP1ECk9GbHGEAkwG8Ax8wArgaAtEMjGQIoYCKKgGCuzBSA/iuWkKEwamLKzOKoCeR2hwQQZKqgBKKqELoGQwQ=="
-    }
-}
-
-

-

batterylevelchange event

-

Notifies about battery level changes.

-

Description

-

Register to this event to be notified about battery level drops

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.levelnumberBattery level (in percentage)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.batterylevelchange",
-    "params": {
-        "level": 50
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BluetoothRemoteControlPlugin/index.html b/BluetoothRemoteControlPlugin/index.html deleted file mode 100644 index 7663a51..0000000 --- a/BluetoothRemoteControlPlugin/index.html +++ /dev/null @@ -1,2748 +0,0 @@ - - - - - - - - - - - - - - - - - Bluetooth Remote Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Bluetooth Remote Control Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BluetoothRemoteControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BluetoothRemoteControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Bluetooth Remote Control plugin allows configuring and enabling Bluetooth remote control units.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: BluetoothRemoteControl)
classnamestringClass name: BluetoothRemoteControl
locatorstringLibrary name: libWPEFrameworkBluetoothRemoteControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.controllerstring(optional) Controller
configuration?.keymapstring(optional) Keymap
configuration?.keyingestboolean(optional) Enable keyingest
configuration?.recorderenum(optional) Recorder
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the BluetoothRemoteControl plugin:

-

BluetoothRemoteControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
assignAssigns a bluetooth device as a remote control unit
revokeRevokes the current remote control assignment
-

-

assign method

-

Assigns a bluetooth device as a remote control unit.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.addressstringBluetooth address
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEBluetooth unavailable
22ERROR_UNKNOWN_KEYDevice unknown
1ERROR_GENERALFailed to assign the device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.assign",
-    "params": {
-        "address": "81:6F:B0:91:9B:FE"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

revoke method

-

Revokes the current remote control assignment.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATERemote not assigned
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.revoke"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the BluetoothRemoteControl plugin:

-

BluetoothRemoteControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
name ROUnit name
address ROBluetooth address of the unit
info ROUnit auxiliary information
batterylevel ROBattery level
voiceEnable or Disable the flow of Voice data fragments from the remote
audioprofile ROAudio profile details
-

-

name property

-

Provides access to the unit name.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringName of the remote control unit
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.name"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Acme Bluetooth RCU"
-}
-
-

-

address property

-

Provides access to the bluetooth address of the unit.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringBluetooth address
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.address"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "81:6F:B0:91:9B:FE"
-}
-
-

-

info property

-

Provides access to the unit auxiliary information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectUnit auxiliary information
(property)?.modelstring(optional) Unit model name or number
(property)?.serialstring(optional) Unit serial number
(property)?.firmwarestring(optional) Unit firmware revision
(property)?.softwarestring(optional) Unit software revision
(property)?.manufacturerstring(optional) Unit manufacturer name
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
1ERROR_GENERALFailed to retrieve information
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.info"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "model": "Acme 1500 Plus",
-        "serial": "1234567890",
-        "firmware": "1.0",
-        "software": "1.0",
-        "manufacturer": "Acme Inc."
-    }
-}
-
-

-

batterylevel property

-

Provides access to the battery level.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberRemote control unit's battery level in percentage
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
1ERROR_GENERALFailed to retrieve battery level
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.batterylevel"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 50
-}
-
-

-

voice property

-

Provides access to the enable or Disable the flow of Voice data fragments from the remote.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)booleanenable (true) or disable (false) flow of voice data
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to set the voice flow
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.voice"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.voice",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

audioprofile property

-

Provides access to the audio profile details.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectAudio profile details
(property).codecstringName of the audio codec (pcm for uncompressed audio) (must be one of the following: PCM, ADPCM)
(property).channelsnumberNumber of audio channels (1: mono, 2: stereo, etc.)
(property).ratenumberSample rate (in Hz)
(property).resolutionnumberSample resolution (in bits per sample)
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATENo remote has been assigned
22ERROR_UNKNOWN_KEYThe supplied audio profile is unknown
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BluetoothRemoteControl.1.audioprofile"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "codec": "ADPCM",
-        "channels": 1,
-        "rate": 16000,
-        "resolution": 16
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the BluetoothRemoteControl plugin:

-

BluetoothRemoteControl interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
audiotransmissionNotifies about audio data transmission
audioframeNotifies about new audio data available
batterylevelchangeNotifies about battery level changes
-

-

audiotransmission event

-

Notifies about audio data transmission.

-

Description

-

Register to this event to be notified about audio transmission status

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.profilestring(optional) Type of audio profile, marking start of transmission; empty in case of end of transmission
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.audiotransmission",
-    "params": {
-        "profile": "pcm"
-    }
-}
-
-

-

audioframe event

-

Notifies about new audio data available.

-

Description

-

Register to this event to be notified about audio data

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.seqnumber(optional) Sequence number of the audio frame within current audio transmission
params.datastringBase64 representation of the binary data of the audio frame; format of the data is specified by the audio profile denoted by the most recent audiotransmission notification
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.audioframe",
-    "params": {
-        "seq": 1,
-        "data": "yKMHiYh6qJiDspB6S7ihlKOAbivApYEQDCgY0aECCQhpkAqZogP1ECk9GbHGEAkwG8Ax8wArgaAtEMjGQIoYCKKgGCuzBSA/iuWkKEwamLKzOKoCeR2hwQQZKqgBKKqELoGQwQ=="
-    }
-}
-
-

-

batterylevelchange event

-

Notifies about battery level changes.

-

Description

-

Register to this event to be notified about battery level drops

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.levelnumberBattery level (in percentage)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.batterylevelchange",
-    "params": {
-        "level": 50
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BrowserAPI/index.html b/BrowserAPI/index.html deleted file mode 100644 index c3207c6..0000000 --- a/BrowserAPI/index.html +++ /dev/null @@ -1,2335 +0,0 @@ - - - - - - - - - - - - - - - - - Browser API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Browser API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Browser interface for Thunder framework.

-

(Defined by Browser.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Browser interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Browser JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Browser interface:

-

Browser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Browser interface:

-

Browser interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
urlURL loaded in the browser
visibilityCurrent browser visibility
fps ROCurrent number of frames per second the browser is rendering
-

-

url property

-

Provides access to the URL loaded in the browser.

-

Also see: urlchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringURL loaded in the browser
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
15ERROR_INCORRECT_URLIncorrect URL given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://www.google.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.url",
-    "params": "https://www.google.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visibility property

-

Provides access to the current browser visibility.

-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent browser visibility (must be one of the following: visible, hidden)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "visible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

fps property

-

Provides access to the current number of frames per second the browser is rendering.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCurrent number of frames per second the browser is rendering
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Browser.1.fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 30
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Browser interface:

-

Browser interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
urlchangeSignals a URL change in the browser
visibilitychangeSignals a visibility change of the browser
pageclosureNotifies that the web page requests to close its window
-

-

urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanDetermines if the URL has just been loaded (true) or if URL change has been requested (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.urlchange",
-    "params": {
-        "url": "https://www.google.com",
-        "loaded": false
-    }
-}
-
-

-

visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanDetermines if the browser has been hidden (true) or made visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

pageclosure event

-

Notifies that the web page requests to close its window.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.pageclosure"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BrowserResourcesAPI/index.html b/BrowserResourcesAPI/index.html deleted file mode 100644 index 3915b78..0000000 --- a/BrowserResourcesAPI/index.html +++ /dev/null @@ -1,2064 +0,0 @@ - - - - - - - - - - - - - - - - - BrowserResources API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

BrowserResources API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BrowserResources interface for Thunder framework.

-

(Defined with Exchange::IBrowserResources in IBrowser.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BrowserResources interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

BrowserResources JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the BrowserResources interface:

-

BrowserResources interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange userscriptsUser scripts used by the browser
exchange userstylesheetsUser style sheets used by the browser
-

-

exchange_userscripts property

-

Provides access to the user scripts used by the browser.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
urisarrayJSON array containing URIs pointing to user scripts, supported protocols: file://
uris[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserResources.1.exchange_userscripts"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "..."
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserResources.1.exchange_userscripts",
-    "params": [
-        "..."
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_userstylesheets property

-

Provides access to the user style sheets used by the browser.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
urisarrayJSON array containing URIs pointing to user style sheets, supported protocols: file://
uris[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserResources.1.exchange_userstylesheets"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "..."
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserResources.1.exchange_userstylesheets",
-    "params": [
-        "..."
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/BrowserSecurityAPI/index.html b/BrowserSecurityAPI/index.html deleted file mode 100644 index 99ae79e..0000000 --- a/BrowserSecurityAPI/index.html +++ /dev/null @@ -1,2046 +0,0 @@ - - - - - - - - - - - - - - - - - BrowserSecurity API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

BrowserSecurity API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A BrowserSecurity interface for Thunder framework.

-

(Defined with Exchange::IBrowserSecurity in IBrowser.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the BrowserSecurity interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

BrowserSecurity JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the BrowserSecurity interface:

-

BrowserSecurity interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange securityprofileSecurity profile for secure connections
exchange mixedcontentpolicyMixed content policy
-

-

exchange_securityprofile property

-

Provides access to the security profile for secure connections.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
profilestringSecurity profile for secure connections
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserSecurity.1.exchange_securityprofile"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "compatible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserSecurity.1.exchange_securityprofile",
-    "params": "compatible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_mixedcontentpolicy property

-

Provides access to the mixed content policy.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
policystringMixed content policy type (must be one of the following: allowed, blocked)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserSecurity.1.exchange_mixedcontentpolicy"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "allowed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "BrowserSecurity.1.exchange_mixedcontentpolicy",
-    "params": "allowed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ButlerAPI/index.html b/ButlerAPI/index.html deleted file mode 100644 index ddcf724..0000000 --- a/ButlerAPI/index.html +++ /dev/null @@ -1,2349 +0,0 @@ - - - - - - - - - - - - - - - - - Butler API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Butler API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Butler interface for Thunder framework.

-

(Defined by Butler.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Butler interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Butler JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the Butler interface:

-

Butler interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
orphans ROList of devices not attached to any nodes
device RODevice specific information
valueSet or Get the value of the device
groupGet the names part of a group
linklink an external ID to a node
movemove a node to another location
branchcreate a new group
deletedestroy an existing, empty group
-

-

orphans property

-

Provides access to the list of devices not attached to any nodes.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of devices not attached to any nodes
(property)[#]object
(property)[#].idintegerIdentifier of the device
(property)[#].namestringName given to this device
(property)[#]?.callsignstring(optional) The callsign that owns this external
(property)[#].basicstringBasic description of the device (measure or control) (must be one of the following: control, measure)
(property)[#].specificstringMore eleborated description of the device (must be one of the following: general, electricity, water, gas, air, smoke, carbonMonoxide, carbonDioxide, temperature, accessControl, burglar, powerManagement, system, emergency, clock)
(property)[#].dimensionstringWhat is the dimension of the value that is returned by the device (must be one of the following: logic, percentage, kwh, kvah, pulses, degrees, units)
(property)[#].minimumintegerMinimum value that the device can reach
(property)[#].decimalsintegerNumber of digits that should be considered fractional
(property)[#].maximumintegerMaximum value that the device can reach
(property)[#]?.valuenumber(optional)
-
-

The module index argument shall be passed as the index to the property, e.g. Butler.1.orphans@[ {}, {}, {} ]. 0 = any module, >0 orphans from the requested module.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Butler.1.orphans@[ {}, {}, {} ]"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "id": 123456,
-            "name": "/kitchen/ceiling/dimmer",
-            "callsign": "VirtualControl",
-            "basic": "measure",
-            "specific": "electricity",
-            "dimension": "logic",
-            "minimum": -80,
-            "decimals": 0,
-            "maximum": 200,
-            "value": 1
-        }
-    ]
-}
-
-

-

device property

-

Provides access to the device specific information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectDevice specific information
(property).idintegerIdentifier of the device
(property).namestringName given to this device
(property)?.callsignstring(optional) The callsign that owns this external
(property).basicstringBasic description of the device (measure or control) (must be one of the following: control, measure)
(property).specificstringMore eleborated description of the device (must be one of the following: general, electricity, water, gas, air, smoke, carbonMonoxide, carbonDioxide, temperature, accessControl, burglar, powerManagement, system, emergency, clock)
(property).dimensionstringWhat is the dimension of the value that is returned by the device (must be one of the following: logic, percentage, kwh, kvah, pulses, degrees, units)
(property).minimumintegerMinimum value that the device can reach
(property).decimalsintegerNumber of digits that should be considered fractional
(property).maximumintegerMaximum value that the device can reach
(property)?.valuenumber(optional)
-
-

The device name argument shall be passed as the index to the property, e.g. Butler.1.device@The name of the device or the Id of the device.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Butler.1.device@The name of the device or the Id of the device"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "id": 123456,
-        "name": "/kitchen/ceiling/dimmer",
-        "callsign": "VirtualControl",
-        "basic": "measure",
-        "specific": "electricity",
-        "dimension": "logic",
-        "minimum": -80,
-        "decimals": 0,
-        "maximum": 200,
-        "value": 1
-    }
-}
-
-

-

value property

-

Provides access to the set or Get the value of the device.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberSet or Get the value of the device
-
-

The device name argument shall be passed as the index to the property, e.g. Butler.1.value@The name of the device (name) or the numerical identifier of the device.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown device
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Butler.1.value@The name of the device (name) or the numerical identifier of the device"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 1
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Butler.1.value@The name of the device (name) or the numerical identifier of the device",
-    "params": 1
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

group property

-

Provides access to the get the names part of a group.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectGet the names part of a group
(property)?.parentinteger(optional) Identifier of the group to wich this group belongs
(property)?.idinteger(optional) Identifier of this group
(property)?.basestring(optional) Path identifier leading up to this group
(property)?.membersarray(optional)
(property)?.members[#]object(optional)
(property)?.members[#]?.namestring(optional) Name of a room or sensor
(property)?.members[#]?.idinteger(optional) Identifier of this memeber
(property)?.members[#]?.typestring(optional) Type ot this member
(property)?.members[#]?.callsignstring(optional) The callsign that owns this external
(property)?.members[#]?.basicstring(optional) Basic description of the device (measure or control) (must be one of the following: control, measure)
(property)?.members[#]?.valuenumber(optional) Set or Get the value of the device
(property)?.members[#]?.childreninteger(optional) number of children, this element has
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CobaltAPI/index.html b/CobaltAPI/index.html deleted file mode 100644 index 04f37c0..0000000 --- a/CobaltAPI/index.html +++ /dev/null @@ -1,2435 +0,0 @@ - - - - - - - - - - - - - - - - - Cobalt API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Cobalt API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Cobalt interface for Thunder framework.

-

(Defined by Cobalt.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Cobalt interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Cobalt JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Cobalt interface:

-

Browser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Cobalt interface:

-

Browser interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
urlURL loaded in the browser
visibilityCurrent browser visibility
fps ROCurrent number of frames per second the browser is rendering
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

url property

-

Provides access to the URL loaded in the browser.

-

Also see: urlchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringURL loaded in the browser
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
15ERROR_INCORRECT_URLIncorrect URL given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://www.google.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.url",
-    "params": "https://www.google.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visibility property

-

Provides access to the current browser visibility.

-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent browser visibility (must be one of the following: visible, hidden)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "visible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

fps property

-

Provides access to the current number of frames per second the browser is rendering.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCurrent number of frames per second the browser is rendering
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 30
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Cobalt interface:

-

Browser interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
urlchangeSignals a URL change in the browser
visibilitychangeSignals a visibility change of the browser
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanDetermines if the URL has just been loaded (true) or if URL change has been requested (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.urlchange",
-    "params": {
-        "url": "https://www.google.com",
-        "loaded": false
-    }
-}
-
-

-

visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanDetermines if the browser has been hidden (true) or made visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CobaltPlugin/index.html b/CobaltPlugin/index.html deleted file mode 100644 index 3e828d5..0000000 --- a/CobaltPlugin/index.html +++ /dev/null @@ -1,2534 +0,0 @@ - - - - - - - - - - - - - - - - - Cobalt Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Cobalt Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Cobalt plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Cobalt plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Cobalt plugin provides web browsing functionality based on the Cobalt engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Cobalt)
classnamestringClass name: Cobalt
locatorstringLibrary name: libWPEFrameworkCobalt.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.urlstring(optional) The URL that is loaded upon starting the browser
configuration?.widthnumber(optional) The width in pixels of the surface to be used by the application
configuration?.heightnumber(optional) The height in pixels of the surface to be used by the application
configuration?.repeatstartnumber(optional) The number of milliseconds a key should be pressed to start reapeating (set max to adhere to Thunder)
configuration?.repeatintervalnumber(optional) The number of milliseconds the repeated key is send after it started repeating (set max to adhere to Thunder)
configuration?.clientidentifierstring(optional) An identifier, used during the surface creation as additional information
configuration?.operatornamestring(optional) The name of the operator that owns the infrastructure on which this device is running
configuration?.languagestring(optional) The language to be used to for user interaction
configuration?.connectionstring(optional) The type of connection that is used for internet connectivity (must be one of the following: cable, wireless)
configuration?.playbackratesboolean(optional) If enabled, Cobalt supports different rates, otherwise, it supports only 0 and 1 (default: true)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Cobalt plugin:

-

Browser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Cobalt plugin:

-

Browser interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
urlURL loaded in the browser
visibilityCurrent browser visibility
fps ROCurrent number of frames per second the browser is rendering
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

url property

-

Provides access to the URL loaded in the browser.

-

Also see: urlchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringURL loaded in the browser
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
15ERROR_INCORRECT_URLIncorrect URL given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://www.google.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.url",
-    "params": "https://www.google.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visibility property

-

Provides access to the current browser visibility.

-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent browser visibility (must be one of the following: visible, hidden)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "visible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

fps property

-

Provides access to the current number of frames per second the browser is rendering.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCurrent number of frames per second the browser is rendering
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 30
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Cobalt.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Cobalt plugin:

-

Browser interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
urlchangeSignals a URL change in the browser
visibilitychangeSignals a visibility change of the browser
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanDetermines if the URL has just been loaded (true) or if URL change has been requested (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.urlchange",
-    "params": {
-        "url": "https://www.google.com",
-        "loaded": false
-    }
-}
-
-

-

visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanDetermines if the browser has been hidden (true) or made visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CommanderPlugin/index.html b/CommanderPlugin/index.html deleted file mode 100644 index a2f3e20..0000000 --- a/CommanderPlugin/index.html +++ /dev/null @@ -1,1968 +0,0 @@ - - - - - - - - - - - - - - - - - Commander Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Commander Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Commander plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Commander 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Commander plugin provides web browsing functionality based on the Commander engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Commander)
classnamestringClass name: Commander
locatorstringLibrary name: libWPEFrameworkCommander.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
sequencersarray(optional) List of sequencers
sequencers[#]string(optional)
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CompositorAPI/index.html b/CompositorAPI/index.html deleted file mode 100644 index 98dbc6c..0000000 --- a/CompositorAPI/index.html +++ /dev/null @@ -1,2678 +0,0 @@ - - - - - - - - - - - - - - - - - Compositor API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Compositor API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Compositor interface for Thunder framework.

-

(Defined by Compositor.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Compositor interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Compositor JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Compositor interface:

-

Compositor interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
putontopPuts client surface on top in z-order
putbelowPuts client surface below another surface
selectDirects the input to the given client, disabling all the others
-

-

putontop method

-

Puts client surface on top in z-order.

-

Description

-

Use this method to get a client's surface to the top position.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.putontop",
-    "params": {
-        "client": "Netflix"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

putbelow method

-

Puts client surface below another surface.

-

Description

-

Use this method to reorder client surfaces in the z-order list.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name to change z-order position
params.relativestringClient to put the other surface below
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient(s) not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.putbelow",
-    "params": {
-        "client": "Netflix",
-        "relative": "WebKitBrowser"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

select method

-

Directs the input to the given client, disabling all the others.

-

Description

-

Use this method to direct all inputs to this client. The client that is receiving the inputs prior to this call will nolonger receive it anymore after this call.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.select",
-    "params": {
-        "client": "Netflix"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Compositor interface:

-

Compositor interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
resolutionScreen resolution
zorder ROList of compositor clients sorted by z-order
brightnessBrightness of SDR graphics in HDR display
geometryClient surface geometry
visiblity WOClient surface visibility
opacity WOClient surface opacity
-

-

resolution property

-

Provides access to the screen resolution.

-

Description

-

Use this property to set or retrieve the current resolution of the screen.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringScreen resolution (must be one of the following: unknown, 480i, 480p, 720p50, 720p60, 1080p24, 1080i50, 1080p50, 1080p60, 2160p50, 2160p60)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown resolution
2ERROR_UNAVAILABLESet resolution is not supported or failed
1ERROR_GENERALFailed to set resolution
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.resolution"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "1080p24"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.resolution",
-    "params": "1080p24"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

zorder property

-

Provides access to the list of compositor clients sorted by z-order.

-
-

This property is read-only.

-
-

Description

-

Use this property to retrieve the list of all clients in z-order. Each client has an z-order-value that determines its position with respect to the screen. The ordering is that the top position is closest to the screen, the next z-order-value first behind the top, and so on.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of compositor clients sorted by z-order
(property)[#]stringClient name
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to get z-order
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.zorder"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "Netflix"
-    ]
-}
-
-

-

brightness property

-

Provides access to the brightness of SDR graphics in HDR display.

-

Description

-

Use this property to set or retrieve the brightness of the SDR graphics.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringBrightness of SDR graphics in HDR display (must be one of the following: default, match_video, max)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown brightness
2ERROR_UNAVAILABLESet brightness is not supported or failed
1ERROR_GENERALFailed to set brightness
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.brightness"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "match_video"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.brightness",
-    "params": "match_video"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

geometry property

-

Provides access to the client surface geometry.

-

Description

-

Use this property to update or retrieve the geometry of a client's surface.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectClient surface geometry
(property).xnumberHorizontal coordinate of the surface
(property).ynumberVertical coordinate of the surface
(property).widthnumberSurface width
(property).heightnumberSurface height
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.geometry@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.geometry@Netflix"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "x": 0,
-        "y": 0,
-        "width": 1280,
-        "height": 720
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.geometry@Netflix",
-    "params": {
-        "x": 0,
-        "y": 0,
-        "width": 1280,
-        "height": 720
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visiblity property

-

Provides access to the client surface visibility.

-
-

This property is write-only.

-
-

Description

-

Use this property to set the client's surface visibility.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringClient surface visibility (must be one of the following: visible, hidden)
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.visiblity@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.visiblity@Netflix",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

opacity property

-

Provides access to the client surface opacity.

-
-

This property is write-only.

-
-

Description

-

Use this property to set the client's surface opacity level.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberOpacity level (0 to 255; 0: fully transparent, 255: fully opaque)
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.opacity@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.opacity@Netflix",
-    "params": 127
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CompositorPlugin/index.html b/CompositorPlugin/index.html deleted file mode 100644 index ad11714..0000000 --- a/CompositorPlugin/index.html +++ /dev/null @@ -1,2780 +0,0 @@ - - - - - - - - - - - - - - - - - Compositor Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Compositor Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A Compositor plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Compositor 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Compositor gives you control over what is displayed on screen.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Compositor)
classnamestringClass name: Compositor
locatorstringLibrary name: libWPEFrameworkCompositor.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.hardwarereadynumber(optional) Hardware delay (Nexus)
configuration?.resolutionstring(optional) Screen resolution (Nexus)
configuration?.allowedclientsarray(optional) List of allowed clients (Nexus)
configuration?.allowedclients[#]string(optional)
configuration?.connectorenum(optional) Resolution (Wayland)
configuration?.joinboolean(optional) Enable join (Wayland)
configuration?.displaystring(optional) Display (Westeros)
configuration?.rendererstring(optional) Path of renderer (Westeros)
configuration?.glnamestring(optional) Name of GL-library (Westeros)
configuration?.widthstring(optional) Screen width (Westeros)
configuration?.heightstring(optional) Screen height (Westeros)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Compositor plugin:

-

Compositor interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
putontopPuts client surface on top in z-order
putbelowPuts client surface below another surface
selectDirects the input to the given client, disabling all the others
-

-

putontop method

-

Puts client surface on top in z-order.

-

Description

-

Use this method to get a client's surface to the top position.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.putontop",
-    "params": {
-        "client": "Netflix"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

putbelow method

-

Puts client surface below another surface.

-

Description

-

Use this method to reorder client surfaces in the z-order list.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name to change z-order position
params.relativestringClient to put the other surface below
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient(s) not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.putbelow",
-    "params": {
-        "client": "Netflix",
-        "relative": "WebKitBrowser"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

select method

-

Directs the input to the given client, disabling all the others.

-

Description

-

Use this method to direct all inputs to this client. The client that is receiving the inputs prior to this call will nolonger receive it anymore after this call.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientstringClient name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.select",
-    "params": {
-        "client": "Netflix"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Compositor plugin:

-

Compositor interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
resolutionScreen resolution
zorder ROList of compositor clients sorted by z-order
brightnessBrightness of SDR graphics in HDR display
geometryClient surface geometry
visiblity WOClient surface visibility
opacity WOClient surface opacity
-

-

resolution property

-

Provides access to the screen resolution.

-

Description

-

Use this property to set or retrieve the current resolution of the screen.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringScreen resolution (must be one of the following: unknown, 480i, 480p, 720p50, 720p60, 1080p24, 1080i50, 1080p50, 1080p60, 2160p50, 2160p60)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown resolution
2ERROR_UNAVAILABLESet resolution is not supported or failed
1ERROR_GENERALFailed to set resolution
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.resolution"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "1080p24"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.resolution",
-    "params": "1080p24"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

zorder property

-

Provides access to the list of compositor clients sorted by z-order.

-
-

This property is read-only.

-
-

Description

-

Use this property to retrieve the list of all clients in z-order. Each client has an z-order-value that determines its position with respect to the screen. The ordering is that the top position is closest to the screen, the next z-order-value first behind the top, and so on.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of compositor clients sorted by z-order
(property)[#]stringClient name
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to get z-order
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.zorder"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "Netflix"
-    ]
-}
-
-

-

brightness property

-

Provides access to the brightness of SDR graphics in HDR display.

-

Description

-

Use this property to set or retrieve the brightness of the SDR graphics.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringBrightness of SDR graphics in HDR display (must be one of the following: default, match_video, max)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown brightness
2ERROR_UNAVAILABLESet brightness is not supported or failed
1ERROR_GENERALFailed to set brightness
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.brightness"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "match_video"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.brightness",
-    "params": "match_video"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

geometry property

-

Provides access to the client surface geometry.

-

Description

-

Use this property to update or retrieve the geometry of a client's surface.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectClient surface geometry
(property).xnumberHorizontal coordinate of the surface
(property).ynumberVertical coordinate of the surface
(property).widthnumberSurface width
(property).heightnumberSurface height
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.geometry@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.geometry@Netflix"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "x": 0,
-        "y": 0,
-        "width": 1280,
-        "height": 720
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.geometry@Netflix",
-    "params": {
-        "x": 0,
-        "y": 0,
-        "width": 1280,
-        "height": 720
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visiblity property

-

Provides access to the client surface visibility.

-
-

This property is write-only.

-
-

Description

-

Use this property to set the client's surface visibility.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringClient surface visibility (must be one of the following: visible, hidden)
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.visiblity@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.visiblity@Netflix",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

opacity property

-

Provides access to the client surface opacity.

-
-

This property is write-only.

-
-

Description

-

Use this property to set the client's surface opacity level.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberOpacity level (0 to 255; 0: fully transparent, 255: fully opaque)
-
-

The client argument shall be passed as the index to the property, e.g. Compositor.1.opacity@Netflix.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEClient not found
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Compositor.1.opacity@Netflix",
-    "params": 127
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ConnectionPropertiesAPI/index.html b/ConnectionPropertiesAPI/index.html deleted file mode 100644 index 768f973..0000000 --- a/ConnectionPropertiesAPI/index.html +++ /dev/null @@ -1,2471 +0,0 @@ - - - - - - - - - - - - - - - - - ConnectionProperties API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

ConnectionProperties API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A ConnectionProperties interface for Thunder framework.

-

(Defined with Exchange::IConnectionProperties in IDisplayInfo.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the ConnectionProperties interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

ConnectionProperties JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the ConnectionProperties interface:

-

ConnectionProperties interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
exchange edidTV's Extended Display Identification Data
exchange widthincentimetersHorizontal size in centimeters
exchange heightincentimetersVertical size in centimeters
-

-

exchange_edid method

-

TV's Extended Display Identification Data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.lengthinteger
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.lengthinteger
result.datastring
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_edid",
-    "params": {
-        "length": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "length": 0,
-        "data": "..."
-    }
-}
-
-

-

exchange_widthincentimeters method

-

Horizontal size in centimeters.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
widthintegerwidth in cm
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_widthincentimeters"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_heightincentimeters method

-

Vertical size in centimeters.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
heigthinteger
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_heightincentimeters"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

Properties

-

The following properties are provided by the ConnectionProperties interface:

-

ConnectionProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange isaudiopassthrough ROCurrent audio passthrough status on HDMI
exchange connected ROCurrent HDMI connection status
exchange width ROHorizontal resolution of TV
exchange height ROVertical resolution of TV
exchange verticalfreq ROVertical Frequency
exchange hdcpprotectionHDCP protocol used for transmission
exchange portname ROVideo output port on the STB used for connection to TV
-

-

exchange_isaudiopassthrough property

-

Provides access to the current audio passthrough status on HDMI.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
passthrubooleanenabled/disabled
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_isaudiopassthrough"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

exchange_connected property

-

Provides access to the current HDMI connection status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
isconnectedbooleanconnected/disconnected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_connected"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

exchange_width property

-

Provides access to the horizontal resolution of TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
widthintegerwidth of TV in pixels
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_width"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_height property

-

Provides access to the vertical resolution of TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
heightintegerheight of TV in pixels
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_height"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_verticalfreq property

-

Provides access to the vertical Frequency.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
vfintegervertical freq
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_verticalfreq"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_hdcpprotection property

-

Provides access to the HDCP protocol used for transmission.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
valuestringprotocol (must be one of the following: HdcpUnencrypted, Hdcp1X, Hdcp2X, HdcpAuto)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_hdcpprotection"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "HdcpUnencrypted"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_hdcpprotection",
-    "params": "HdcpUnencrypted"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_portname property

-

Provides access to the video output port on the STB used for connection to TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
namestringvideo output port name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "ConnectionProperties.1.exchange_portname"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "..."
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the ConnectionProperties interface:

-

ConnectionProperties interface events:

- - - - - - - - - - - - - -
EventDescription
exchange updated
-

-

exchange_updated event

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.eventstring(must be one of the following: PreResolutionChange, PostResolutionChange, HdmiChange, HdcpChange)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_updated",
-    "params": {
-        "event": "PreResolutionChange"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ContainersPlugin/index.html b/ContainersPlugin/index.html deleted file mode 100644 index 501a80f..0000000 --- a/ContainersPlugin/index.html +++ /dev/null @@ -1,2482 +0,0 @@ - - - - - - - - - - - - - - - - - Containers Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Containers Plugin

-

Version: 1.0

-

Status: ⚪⚪⚪

-

A Containers plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Containers 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Containers plugin provides informations about process containers running on system.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Containers)
classnamestringClass name: Containers
locatorstringLibrary name: libWPEContainers.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Containers plugin:

-

Containers interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
startStarts a new container
stopStops a container
-

-

start method

-

Starts a new container.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.namestring(optional) Name of container
params?.commandstring(optional) Command that will be started in the container
params?.parametersarray(optional) List of parameters supplied to command
params?.parameters[#]string(optional)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
1ERROR_GENERALFailed to start container
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.start",
-    "params": {
-        "name": "ContainerName",
-        "command": "lsof",
-        "parameters": [
-            "-i"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

stop method

-

Stops a container.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of container
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.stop",
-    "params": {
-        "name": "ContainerName"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Containers plugin:

-

Containers interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
containers ROList of active containers
networks ROList of network interfaces of the container
memory ROMemory taken by container
cpu ROCPU time
-

-

containers property

-

Provides access to the list of active containers.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of names of all containers
(property)[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.containers"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "ContainerName"
-    ]
-}
-
-

-

networks property

-

Provides access to the list of network interfaces of the container.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of all network interfaces related to the container
(property)[#]objectReturns networks associated with the container
(property)[#]?.interfacestring(optional) Interface name
(property)[#]?.ipsarray(optional) List of ip addresses
(property)[#]?.ips[#]string(optional) IP address
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.networks@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.networks@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "veth3NF06K",
-            "ips": [
-                "192.168.0.12"
-            ]
-        }
-    ]
-}
-
-

-

memory property

-

Provides access to the memory taken by container.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMemory allocated by the container, in bytes
(property)?.allocatednumber(optional) Memory allocated by container
(property)?.residentnumber(optional) Resident memory of the container
(property)?.sharednumber(optional) Shared memory in the container
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.memory@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.memory@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "allocated": 0,
-        "resident": 0,
-        "shared": 0
-    }
-}
-
-

-

cpu property

-

Provides access to the CPU time.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectCPU time spent on running the container, in nanoseconds
(property)?.totalnumber(optional) CPU-time spent on container, in nanoseconds
(property)?.coresarray(optional) Time spent on each cpu core, in nanoseconds
(property)?.cores[#]number(optional)
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.cpu@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.cpu@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "total": 2871287421,
-        "cores": [
-            2871287421
-        ]
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/CustomerCareOperationsAPI/index.html b/CustomerCareOperationsAPI/index.html deleted file mode 100644 index 83c6866..0000000 --- a/CustomerCareOperationsAPI/index.html +++ /dev/null @@ -1,1979 +0,0 @@ - - - - - - - - - - - - - - - - - CustomerCareOperations API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

CustomerCareOperations API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A CustomerCareOperations interface for Thunder framework.

-

(Defined with Exchange::ICustomerCareOperations in ICustomerCareOperations.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the CustomerCareOperations interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

CustomerCareOperations JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the CustomerCareOperations interface:

-

CustomerCareOperations interface methods:

- - - - - - - - - - - - - -
MethodDescription
exchange factoryresetExecutes all operations needed for a plugin's factory reset
-

-

exchange_factoryreset method

-

Executes all operations needed for a plugin's factory reset.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "CustomerCareOperations.1.exchange_factoryreset"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DHCPServerAPI/index.html b/DHCPServerAPI/index.html deleted file mode 100644 index 2ee39df..0000000 --- a/DHCPServerAPI/index.html +++ /dev/null @@ -1,2267 +0,0 @@ - - - - - - - - - - - - - - - - - DHCP Server API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DHCP Server API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DHCPServer interface for Thunder framework.

-

(Defined by DHCPServer.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DHCPServer interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DHCP Server JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the DHCPServer interface:

-

DHCPServer interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
activateActivates a DHCP server
deactivateDeactivates a DHCP server
-

-

activate method

-

Activates a DHCP server.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to activate server
22ERROR_UNKNOWN_KEYInvalid interface name given
5ERROR_ILLEGAL_STATEServer is already activated
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.activate",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

deactivate method

-

Deactivates a DHCP server.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to deactivate server
22ERROR_UNKNOWN_KEYInvalid interface name given
5ERROR_ILLEGAL_STATEServer is not activated
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.deactivate",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the DHCPServer interface:

-

DHCPServer interface properties:

- - - - - - - - - - - - - -
PropertyDescription
status ROServer status
-

-

status property

-

Provides access to the server status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of configured servers
(property)[#]object
(property)[#].interfacestringNetwork interface name
(property)[#].activebooleanDenotes if server is currently active
(property)[#]?.beginstring(optional) IP address pool start
(property)[#]?.endstring(optional) IP address pool end
(property)[#]?.routerstring(optional) Router IP address
(property)[#]?.leasesarray(optional) List of IP address leases
(property)[#]?.leases[#]object(optional) Lease description
(property)[#]?.leases[#].namestringClient identifier (or client hardware address if identifier is absent)
(property)[#]?.leases[#].ipstringClient IP address
(property)[#]?.leases[#]?.expiresstring(optional) Client IP expiration time (in ISO8601 format, empty: never expires)
-
-

The server argument shall be passed as the index to the property, e.g. DHCPServer.1.status@eth0. If omitted, status of all configured servers is returned.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYInvalid server name given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.status@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "eth0",
-            "active": true,
-            "begin": "192.168.0.10",
-            "end": "192.168.0.100",
-            "router": "192.168.0.1",
-            "leases": [
-                {
-                    "name": "00e04c326c56",
-                    "ip": "192.168.0.10",
-                    "expires": "2019-05-07T07:20:26Z"
-                }
-            ]
-        }
-    ]
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DHCPServerPlugin/index.html b/DHCPServerPlugin/index.html deleted file mode 100644 index f21b614..0000000 --- a/DHCPServerPlugin/index.html +++ /dev/null @@ -1,2352 +0,0 @@ - - - - - - - - - - - - - - - - - DHCP Server Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DHCP Server Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A DHCPServer plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DHCPServer 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
DHCPDynamic Host Configuration Protocol
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
DHCPDHCP protocol specification (RFC2131)
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: DHCPServer)
classnamestringClass name: DHCPServer
locatorstringLibrary name: libWPEFrameworkDHCPServer.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobjectServer configuration
configuration.namestringName of the server
configuration.serversarrayList of configured DHCP servers
configuration.servers[#]objectConfiguration of a server
configuration.servers[#].interfacestringName of the network interface to bind to
configuration.servers[#].poolstartnumberIP pool start number
configuration.servers[#].poolsizenumberIP pool size (in IP numbers)
configuration.servers[#]?.routernumber(optional) IP of router
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the DHCPServer plugin:

-

DHCPServer interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
activateActivates a DHCP server
deactivateDeactivates a DHCP server
-

-

activate method

-

Activates a DHCP server.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to activate server
22ERROR_UNKNOWN_KEYInvalid interface name given
5ERROR_ILLEGAL_STATEServer is already activated
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.activate",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

deactivate method

-

Deactivates a DHCP server.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to deactivate server
22ERROR_UNKNOWN_KEYInvalid interface name given
5ERROR_ILLEGAL_STATEServer is not activated
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.deactivate",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the DHCPServer plugin:

-

DHCPServer interface properties:

- - - - - - - - - - - - - -
PropertyDescription
status ROServer status
-

-

status property

-

Provides access to the server status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of configured servers
(property)[#]object
(property)[#].interfacestringNetwork interface name
(property)[#].activebooleanDenotes if server is currently active
(property)[#]?.beginstring(optional) IP address pool start
(property)[#]?.endstring(optional) IP address pool end
(property)[#]?.routerstring(optional) Router IP address
(property)[#]?.leasesarray(optional) List of IP address leases
(property)[#]?.leases[#]object(optional) Lease description
(property)[#]?.leases[#].namestringClient identifier (or client hardware address if identifier is absent)
(property)[#]?.leases[#].ipstringClient IP address
(property)[#]?.leases[#]?.expiresstring(optional) Client IP expiration time (in ISO8601 format, empty: never expires)
-
-

The server argument shall be passed as the index to the property, e.g. DHCPServer.1.status@eth0. If omitted, status of all configured servers is returned.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYInvalid server name given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DHCPServer.1.status@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "eth0",
-            "active": true,
-            "begin": "192.168.0.10",
-            "end": "192.168.0.100",
-            "router": "192.168.0.1",
-            "leases": [
-                {
-                    "name": "00e04c326c56",
-                    "ip": "192.168.0.10",
-                    "expires": "2019-05-07T07:20:26Z"
-                }
-            ]
-        }
-    ]
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DIALServerAPI/index.html b/DIALServerAPI/index.html deleted file mode 100644 index f937551..0000000 --- a/DIALServerAPI/index.html +++ /dev/null @@ -1,2259 +0,0 @@ - - - - - - - - - - - - - - - - - DIAL Server API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DIAL Server API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DIALServer interface for Thunder framework.

-

(Defined by DIALServer.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DIALServer interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DIAL Server JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the DIALServer interface:

-

DIALServer interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateCurrent application running state
-

-

state property

-

Provides access to the current application running state.

-

Description

-

This property can be used to update the running status of an un-managed application (i.e. running in passive mode). For DIALServer-managed applications this property shall be considered read-only.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent application running state (must be one of the following: Stopped, Started, Hidden)
-
-

The application name argument shall be passed as the index to the property, e.g. DIALServer.1.state@YouTube.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYSpecified application does not exist
5ERROR_ILLEGAL_STATESpecified application is running in active mode
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DIALServer.1.state@YouTube"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Stopped"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DIALServer.1.state@YouTube",
-    "params": "Stopped"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DIALServer interface:

-

DIALServer interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
startSignals that application launch (or show if previously hidden) was requested over DIAL
stopSignals that application stop was requested over DIAL
hideSignals that application hide was requested over DIAL
showSignals that application show was requested over DIAL
changeSignals that application URL change was requested over DIAL
-

-

start event

-

Signals that application launch (or show if previously hidden) was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
params?.parametersstring(optional) Additional application-specific parameters
params?.payloadstring(optional) Additional application-specific payload
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.start",
-    "params": {
-        "application": "YouTube",
-        "parameters": "watch?v=zpp045FBbQY",
-        "payload": "..."
-    }
-}
-
-

-

stop event

-

Signals that application stop was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
params?.parametersstring(optional) Additional application-specific parameters
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.stop",
-    "params": {
-        "application": "YouTube",
-        "parameters": "watch?v=zpp045FBbQY"
-    }
-}
-
-

-

hide event

-

Signals that application hide was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.hide",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
-

-

show event

-

Signals that application show was requested over DIAL.

-
-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.show",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
-

-

change event

-

Signals that application URL change was requested over DIAL.

-
-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.change",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DIALServerPlugin/index.html b/DIALServerPlugin/index.html deleted file mode 100644 index 9baf627..0000000 --- a/DIALServerPlugin/index.html +++ /dev/null @@ -1,2421 +0,0 @@ - - - - - - - - - - - - - - - - - DIAL Server Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DIAL Server Plugin

-

Version: 1.0

-

Status: ⚫⚫⚪

-

A DIALServer plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DIALServer plugin. It includes detailed specification about its configuration, properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
DIALDiscovery and Launch
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
RESTRepresentational State Transfer
SSDPSimple Service Discovery Protocol
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - - - - - -
TermDescription
ControllerAn internal plugin that allows activating and deactivating of services/plugins configured for use in the framework.
callsignThe 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 IDDescription
DIALDIAL protocol specification
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The DIAL Server plugin implements the server side of the DIAL protocol, allowing second-screen devices discovering and launching applications on a first-screen device, utilizing SSDP protocol and RESTful API. For more invormation about the DIAL protocol please refer to [DIAL].

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: DIALServer)
classnamestringClass name: DIALServer
locatorstringLibrary name: libWPEFrameworkDIALServer.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobjectServer configuration
configuration.namestringUser-friendly name of the device
configuration.modelstringName of the device model
configuration.descriptionstringShort description of the device
configuration?.modelnumberstring(optional) Device model number
configuration?.modelurlstring(optional) URL to device model website
configuration.manufacturerstringName of the device manufacturer
configuration?.manufacturerurlstring(optional) URL to manufacturer website
configuration?.serialnumberstring(optional) Device serial number
configuration?.upcstring(optional) Device UPC barcode number (Universal Product Code)
configuration?.interfacestring(optional) Server interface IP and port (default: SSDP multicast address and port)
configuration?.webserverstring(optional) Callsign of a service implementing the web server functionality (default: WebServer)
configuration?.switchboardstring(optional) Callsign of a service implementing the switchboard functionality (default: SwitchBoard). If defined and the service is available then start/stop requests will be relayed to the SwitchBoard rather than handled by the Controller directly. This is used only in non-passive mode
configuration.appsarrayList of supported applications
configuration.apps[#]object(an application definition)
configuration.apps[#].namestringName of the application
configuration.apps[#]?.handlerstring(optional) Name of the application handler. If not defined then name will be used instead
configuration.apps[#]?.callsignstring(optional) Callsign of the service implementing the application. If defined and the service is available then the Controller will be used to unconditionally start/stop the application by activating/deactivating its service directly (active mode), or by the SwitchBoard if selected and available (switchboard mode). If not defined then these operations will be handed over to JavaScript, by sending a notification and using handler (or name) property to identify the application (passive mode)
configuration.apps[#]?.urlstring(optional) A URL related to the application
configuration.apps[#]?.allowstopboolean(optional) Denotes if the application can be stopped (true) or not (false, default)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Properties

-

The following properties are provided by the DIALServer plugin:

-

DIALServer interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateCurrent application running state
-

-

state property

-

Provides access to the current application running state.

-

Description

-

This property can be used to update the running status of an un-managed application (i.e. running in passive mode). For DIALServer-managed applications this property shall be considered read-only.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent application running state (must be one of the following: Stopped, Started, Hidden)
-
-

The application name argument shall be passed as the index to the property, e.g. DIALServer.1.state@YouTube.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYSpecified application does not exist
5ERROR_ILLEGAL_STATESpecified application is running in active mode
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DIALServer.1.state@YouTube"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Stopped"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DIALServer.1.state@YouTube",
-    "params": "Stopped"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DIALServer plugin:

-

DIALServer interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
startSignals that application launch (or show if previously hidden) was requested over DIAL
stopSignals that application stop was requested over DIAL
hideSignals that application hide was requested over DIAL
showSignals that application show was requested over DIAL
changeSignals that application URL change was requested over DIAL
-

-

start event

-

Signals that application launch (or show if previously hidden) was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
params?.parametersstring(optional) Additional application-specific parameters
params?.payloadstring(optional) Additional application-specific payload
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.start",
-    "params": {
-        "application": "YouTube",
-        "parameters": "watch?v=zpp045FBbQY",
-        "payload": "..."
-    }
-}
-
-

-

stop event

-

Signals that application stop was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
params?.parametersstring(optional) Additional application-specific parameters
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.stop",
-    "params": {
-        "application": "YouTube",
-        "parameters": "watch?v=zpp045FBbQY"
-    }
-}
-
-

-

hide event

-

Signals that application hide was requested over DIAL.

-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.hide",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
-

-

show event

-

Signals that application show was requested over DIAL.

-
-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.show",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
-

-

change event

-

Signals that application URL change was requested over DIAL.

-
-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Description

-

This event is sent out only for un-managed applications (i.e. in passive mode).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.applicationstringApplication name
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.change",
-    "params": {
-        "application": "YouTube"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DTVAPI/index.html b/DTVAPI/index.html deleted file mode 100644 index 346dacc..0000000 --- a/DTVAPI/index.html +++ /dev/null @@ -1,3346 +0,0 @@ - - - - - - - - - - - - - - - - - DTV API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DTV API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DTV interface for Thunder framework.

-

(Defined by DTV.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DTV interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DTV JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the DTV interface:

-

DTV interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
addLnbAdd a new LNB to the database
addSatelliteAdd a new satellite to the database
startServiceSearchStarts a service search
finishServiceSearch
startPlaying
stopPlaying
-

-

addLnb method

-

Add a new LNB to the database.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestring
params.typestring(must be one of the following: single, universal, unicable)
params.powerstring(must be one of the following: off, on, auto)
params.diseqc_tonestring(must be one of the following: off, a, b)
params.diseqc_cswitchstring(must be one of the following: off, a, b, c, d)
params.is22kboolean
params.is12vboolean
params.ispulsepositionboolean
params.isdiseqcpositionboolean
params.issmatvboolean
params.diseqcrepeatsnumber
params.u_switchnumber
params.unicablechannelnumber
params.unicableinterfacenumber
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the LNB is added, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.addLnb",
-    "params": {
-        "name": "Universal",
-        "type": "single",
-        "power": "off",
-        "diseqc_tone": "off",
-        "diseqc_cswitch": "off",
-        "is22k": false,
-        "is12v": false,
-        "ispulseposition": false,
-        "isdiseqcposition": false,
-        "issmatv": false,
-        "diseqcrepeats": 0,
-        "u_switch": 0,
-        "unicablechannel": 0,
-        "unicableinterface": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

addSatellite method

-

Add a new satellite to the database.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestring
params.longitudenumberLongitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50
params.lnbstringName of the LNB settings to be used when tuning to this satellite
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the satellite is added, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.addSatellite",
-    "params": {
-        "name": "Astra 28.2E",
-        "longitude": 282,
-        "lnb": "Universal"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

startServiceSearch method

-

Starts a service search.

-

Also see: searchstatus

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tunertypestring(must be one of the following: none, dvbs, dvbt, dvbc)
params.searchtypestring(must be one of the following: frequency, network)
params.retunebooleantrue if current services are to be replaced in the database, false if the scan is to update the existing services
params.usetuningparamsbooleanSet to true if the optional tuning parameters are defined
params?.dvbstuningparamsobject(optional)
params?.dvbstuningparams.satellitestring
params?.dvbstuningparams.frequencynumber
params?.dvbstuningparams.polaritystring(must be one of the following: horizontal, vertical, left, right)
params?.dvbstuningparams.symbolratenumber
params?.dvbstuningparams.fecstringForward error correction setting (must be one of the following: fecauto, fec1_2, fec2_3, fec3_4, fec5_6, fec7_8, fec1_4, fec1_3, fec2_5, fec8_9, fec9_10)
params?.dvbstuningparams.modulationstring(must be one of the following: auto, qpsk, 8psk, 16qam)
params?.dvbstuningparams.dvbs2boolean
params?.dvbctuningparamsobject(optional)
params?.dvbctuningparams.frequencynumber
params?.dvbctuningparams.symbolratenumber
params?.dvbctuningparams.modulationstring(must be one of the following: auto, 64qam, 128qam, 256qam)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the search is started, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.startServiceSearch",
-    "params": {
-        "tunertype": "none",
-        "searchtype": "frequency",
-        "retune": false,
-        "usetuningparams": true,
-        "dvbstuningparams": {
-            "satellite": "...",
-            "frequency": 10714,
-            "polarity": "horizontal",
-            "symbolrate": 22000,
-            "fec": "fecauto",
-            "modulation": "auto",
-            "dvbs2": false
-        },
-        "dvbctuningparams": {
-            "frequency": 474000000,
-            "symbolrate": 6900,
-            "modulation": "auto"
-        }
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

finishServiceSearch method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tunertypestring(must be one of the following: none, dvbs, dvbt, dvbc)
params.savechangesbooleantrue if the services found during the search should be saved
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleanfalse if the tunertype isn't valid, true otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.finishServiceSearch",
-    "params": {
-        "tunertype": "none",
-        "savechanges": true
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

startPlaying method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.dvburistring(optional) DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
params?.lcnnumber(optional) LCN of the service to be tuned to
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberThe play handle assigned to play the given service. Will be -1 if the service can't be played
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.startPlaying",
-    "params": {
-        "dvburi": "2.2041.9212",
-        "lcn": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

stopPlaying method

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsnumberThe play handle returned by startPlaying
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.stopPlaying",
-    "params": 0
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the DTV interface:

-

DTV interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
numberOfCountries RONumber of country configurations available
countryList ROReturns an array containing the name and 3 character ISO country code for all the available country configurations
countryGet and set the configured country using the ISO 3-character country code
lnbList ROReturns the array of LNBs defined in the database
satelliteList ROReturns the array of satellites defined in the database
numberOfServices ROReturns the total number of services in the service database
serviceList ROReturns the list of services for the given type of tuner, or all services if no tuner is defined
nowNextEvents ROGet the now and next events (EITp/f) for the given service
scheduleEvents ROGet the schedule events (EITsched) for the given service
status ROReturns information related to the play handle defined by the index
-

-

numberOfCountries property

-

Provides access to the number of country configurations available.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberNumber of country configurations available
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.numberOfCountries"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 5
-}
-
-

-

countryList property

-

Provides access to the returns an array containing the name and 3 character ISO country code for all the available country configurations.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of available country configurations
(property)[#]object
(property)[#].namestringName of the country as a UTF-8 string
(property)[#].codenumber3-character ISO code for the country
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.countryList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "UK",
-            "code": 6775410
-        }
-    ]
-}
-
-

-

country property

-

Provides access to the get and set the configured country using the ISO 3-character country code.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)number3-character ISO code for the country
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.country"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 6775410
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.country",
-    "params": 6775410
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

lnbList property

-

Provides access to the returns the array of LNBs defined in the database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the array of LNBs defined in the database
(property)[#]object
(property)[#].namestring
(property)[#].typestring(must be one of the following: single, universal, unicable)
(property)[#].powerstring(must be one of the following: off, on, auto)
(property)[#].diseqc_tonestring(must be one of the following: off, a, b)
(property)[#].diseqc_cswitchstring(must be one of the following: off, a, b, c, d)
(property)[#].is22kboolean
(property)[#].is12vboolean
(property)[#].ispulsepositionboolean
(property)[#].isdiseqcpositionboolean
(property)[#].issmatvboolean
(property)[#].diseqcrepeatsnumber
(property)[#].u_switchnumber
(property)[#].unicablechannelnumber
(property)[#].unicableinterfacenumber
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.lnbList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Universal",
-            "type": "single",
-            "power": "off",
-            "diseqc_tone": "off",
-            "diseqc_cswitch": "off",
-            "is22k": false,
-            "is12v": false,
-            "ispulseposition": false,
-            "isdiseqcposition": false,
-            "issmatv": false,
-            "diseqcrepeats": 0,
-            "u_switch": 0,
-            "unicablechannel": 0,
-            "unicableinterface": 0
-        }
-    ]
-}
-
-

-

satelliteList property

-

Provides access to the returns the array of satellites defined in the database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the array of satellites defined in the database
(property)[#]object
(property)[#].namestring
(property)[#].longitudenumberLongitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50
(property)[#].lnbstringName of the LNB settings to be used when tuning to this satellite
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.satelliteList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Astra 28.2E",
-            "longitude": 282,
-            "lnb": "Universal"
-        }
-    ]
-}
-
-

-

numberOfServices property

-

Provides access to the returns the total number of services in the service database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberReturns the total number of services in the service database
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.numberOfServices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 145
-}
-
-

-

serviceList property

-

Provides access to the returns the list of services for the given type of tuner, or all services if no tuner is defined.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the list of services for the given type of tuner, or all services if no tuner is defined
(property)[#]object
(property)[#].shortnamestringService name as given by the service descriptor in the SDT
(property)[#].dvburistringDVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
(property)[#].lcnnumberLogical channel number
-
-

The optional tuner type argument shall be passed as the index to the property, e.g. DTV.1.serviceList@dvbs.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.serviceList@dvbs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "shortname": "Channel 4",
-            "dvburi": "2.2041.9212",
-            "lcn": 1001
-        }
-    ]
-}
-
-

-

nowNextEvents property

-

Provides access to the get the now and next events (EITp/f) for the given service.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectGet the now and next events (EITp/f) for the given service
(property)?.nowobject(optional) EIT event information
(property)?.now.namestringName of the DVB event as defined in the short event descriptor
(property)?.now.starttimenumberUTC start time of the event in seconds
(property)?.now.durationnumberDuration of the event in seconds
(property)?.now.eventidnumberID of the event from the event information table
(property)?.now.shortdescriptionstringEvent description from the EIT short event descriptor
(property)?.nextobject(optional) EIT event information
(property)?.next.namestringName of the DVB event as defined in the short event descriptor
(property)?.next.starttimenumberUTC start time of the event in seconds
(property)?.next.durationnumberDuration of the event in seconds
(property)?.next.eventidnumberID of the event from the event information table
(property)?.next.shortdescriptionstringEvent description from the EIT short event descriptor
-
-

The service uri string argument shall be passed as the index to the property, e.g. DTV.1.nowNextEvents@9018.4161.1001.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.nowNextEvents@9018.4161.1001"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "now": {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        },
-        "next": {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        }
-    }
-}
-
-

-

scheduleEvents property

-

Provides access to the get the schedule events (EITsched) for the given service.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayGet the schedule events (EITsched) for the given service
(property)[#]objectEIT event information
(property)[#].namestringName of the DVB event as defined in the short event descriptor
(property)[#].starttimenumberUTC start time of the event in seconds
(property)[#].durationnumberDuration of the event in seconds
(property)[#].eventidnumberID of the event from the event information table
(property)[#].shortdescriptionstringEvent description from the EIT short event descriptor
-
-

The service uri string, with optional start and end times as number of seconds utc argument shall be passed as the index to the property, e.g. DTV.1.scheduleEvents@9018.4161.1001:12345000,12346000.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.scheduleEvents@9018.4161.1001:12345000,12346000"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        }
-    ]
-}
-
-

-

status property

-

Provides access to the returns information related to the play handle defined by the index.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectReturns information related to the play handle defined by the index
(property).tunernumberThe tuner id used by the play handle
(property).demuxnumberThe demux id used by the play handle
(property).pmtpidnumberThe PMT PID of the service being played
(property).dvburistringDVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
(property).lcnnumberLCN of the service being played
-
-

The play handle argument shall be passed as the index to the property, e.g. DTV.1.status@0.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.status@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "tuner": 0,
-        "demux": 0,
-        "pmtpid": 1100,
-        "dvburi": "2.2041.9212",
-        "lcn": 1001
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DTV interface:

-

DTV interface events:

- - - - - - - - - - - - - -
EventDescription
searchstatusUsed to notify about events during the course of a service search
-

-

searchstatus event

-

Used to notify about events during the course of a service search.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.handlenumberThe handle assigned for the search and to which this information is relevant
params.eventtypestringEvent type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus)
params.finishedbooleantrue if the service search has finished, false otherwise
params.progressnumberProgress of the search expressed as a percentage
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.searchstatus",
-    "params": {
-        "handle": 0,
-        "eventtype": "ServiceSearchStatus",
-        "finished": false,
-        "progress": 65
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DTVPlugin/index.html b/DTVPlugin/index.html deleted file mode 100644 index eea175a..0000000 --- a/DTVPlugin/index.html +++ /dev/null @@ -1,3403 +0,0 @@ - - - - - - - - - - - - - - - - - DTV Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DTV Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DTV plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DTV plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The DTV plugin provides access to DVB services provided by a DVB stack.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: DTV)
classnamestringClass name: DTV
locatorstringLibrary name: libWPEFrameworkDTV.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.subtitleprocessingboolean(optional) Enable subtitle processing
configuration?.teletextproessingboolean(optional) Enable teletext processing
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the DTV plugin:

-

DTV interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
addLnbAdd a new LNB to the database
addSatelliteAdd a new satellite to the database
startServiceSearchStarts a service search
finishServiceSearch
startPlaying
stopPlaying
-

-

addLnb method

-

Add a new LNB to the database.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestring
params.typestring(must be one of the following: single, universal, unicable)
params.powerstring(must be one of the following: off, on, auto)
params.diseqc_tonestring(must be one of the following: off, a, b)
params.diseqc_cswitchstring(must be one of the following: off, a, b, c, d)
params.is22kboolean
params.is12vboolean
params.ispulsepositionboolean
params.isdiseqcpositionboolean
params.issmatvboolean
params.diseqcrepeatsnumber
params.u_switchnumber
params.unicablechannelnumber
params.unicableinterfacenumber
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the LNB is added, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.addLnb",
-    "params": {
-        "name": "Universal",
-        "type": "single",
-        "power": "off",
-        "diseqc_tone": "off",
-        "diseqc_cswitch": "off",
-        "is22k": false,
-        "is12v": false,
-        "ispulseposition": false,
-        "isdiseqcposition": false,
-        "issmatv": false,
-        "diseqcrepeats": 0,
-        "u_switch": 0,
-        "unicablechannel": 0,
-        "unicableinterface": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

addSatellite method

-

Add a new satellite to the database.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestring
params.longitudenumberLongitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50
params.lnbstringName of the LNB settings to be used when tuning to this satellite
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the satellite is added, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.addSatellite",
-    "params": {
-        "name": "Astra 28.2E",
-        "longitude": 282,
-        "lnb": "Universal"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

startServiceSearch method

-

Starts a service search.

-

Also see: searchstatus

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tunertypestring(must be one of the following: none, dvbs, dvbt, dvbc)
params.searchtypestring(must be one of the following: frequency, network)
params.retunebooleantrue if current services are to be replaced in the database, false if the scan is to update the existing services
params.usetuningparamsbooleanSet to true if the optional tuning parameters are defined
params?.dvbstuningparamsobject(optional)
params?.dvbstuningparams.satellitestring
params?.dvbstuningparams.frequencynumber
params?.dvbstuningparams.polaritystring(must be one of the following: horizontal, vertical, left, right)
params?.dvbstuningparams.symbolratenumber
params?.dvbstuningparams.fecstringForward error correction setting (must be one of the following: fecauto, fec1_2, fec2_3, fec3_4, fec5_6, fec7_8, fec1_4, fec1_3, fec2_5, fec8_9, fec9_10)
params?.dvbstuningparams.modulationstring(must be one of the following: auto, qpsk, 8psk, 16qam)
params?.dvbstuningparams.dvbs2boolean
params?.dvbctuningparamsobject(optional)
params?.dvbctuningparams.frequencynumber
params?.dvbctuningparams.symbolratenumber
params?.dvbctuningparams.modulationstring(must be one of the following: auto, 64qam, 128qam, 256qam)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleantrue if the search is started, false otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.startServiceSearch",
-    "params": {
-        "tunertype": "none",
-        "searchtype": "frequency",
-        "retune": false,
-        "usetuningparams": true,
-        "dvbstuningparams": {
-            "satellite": "...",
-            "frequency": 10714,
-            "polarity": "horizontal",
-            "symbolrate": 22000,
-            "fec": "fecauto",
-            "modulation": "auto",
-            "dvbs2": false
-        },
-        "dvbctuningparams": {
-            "frequency": 474000000,
-            "symbolrate": 6900,
-            "modulation": "auto"
-        }
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

finishServiceSearch method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tunertypestring(must be one of the following: none, dvbs, dvbt, dvbc)
params.savechangesbooleantrue if the services found during the search should be saved
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultbooleanfalse if the tunertype isn't valid, true otherwise
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.finishServiceSearch",
-    "params": {
-        "tunertype": "none",
-        "savechanges": true
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": true
-}
-
-

-

startPlaying method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.dvburistring(optional) DVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
params?.lcnnumber(optional) LCN of the service to be tuned to
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberThe play handle assigned to play the given service. Will be -1 if the service can't be played
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.startPlaying",
-    "params": {
-        "dvburi": "2.2041.9212",
-        "lcn": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

stopPlaying method

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsnumberThe play handle returned by startPlaying
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.stopPlaying",
-    "params": 0
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the DTV plugin:

-

DTV interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
numberOfCountries RONumber of country configurations available
countryList ROReturns an array containing the name and 3 character ISO country code for all the available country configurations
countryGet and set the configured country using the ISO 3-character country code
lnbList ROReturns the array of LNBs defined in the database
satelliteList ROReturns the array of satellites defined in the database
numberOfServices ROReturns the total number of services in the service database
serviceList ROReturns the list of services for the given type of tuner, or all services if no tuner is defined
nowNextEvents ROGet the now and next events (EITp/f) for the given service
scheduleEvents ROGet the schedule events (EITsched) for the given service
status ROReturns information related to the play handle defined by the index
-

-

numberOfCountries property

-

Provides access to the number of country configurations available.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberNumber of country configurations available
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.numberOfCountries"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 5
-}
-
-

-

countryList property

-

Provides access to the returns an array containing the name and 3 character ISO country code for all the available country configurations.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of available country configurations
(property)[#]object
(property)[#].namestringName of the country as a UTF-8 string
(property)[#].codenumber3-character ISO code for the country
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.countryList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "UK",
-            "code": 6775410
-        }
-    ]
-}
-
-

-

country property

-

Provides access to the get and set the configured country using the ISO 3-character country code.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)number3-character ISO code for the country
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.country"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 6775410
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.country",
-    "params": 6775410
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

lnbList property

-

Provides access to the returns the array of LNBs defined in the database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the array of LNBs defined in the database
(property)[#]object
(property)[#].namestring
(property)[#].typestring(must be one of the following: single, universal, unicable)
(property)[#].powerstring(must be one of the following: off, on, auto)
(property)[#].diseqc_tonestring(must be one of the following: off, a, b)
(property)[#].diseqc_cswitchstring(must be one of the following: off, a, b, c, d)
(property)[#].is22kboolean
(property)[#].is12vboolean
(property)[#].ispulsepositionboolean
(property)[#].isdiseqcpositionboolean
(property)[#].issmatvboolean
(property)[#].diseqcrepeatsnumber
(property)[#].u_switchnumber
(property)[#].unicablechannelnumber
(property)[#].unicableinterfacenumber
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.lnbList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Universal",
-            "type": "single",
-            "power": "off",
-            "diseqc_tone": "off",
-            "diseqc_cswitch": "off",
-            "is22k": false,
-            "is12v": false,
-            "ispulseposition": false,
-            "isdiseqcposition": false,
-            "issmatv": false,
-            "diseqcrepeats": 0,
-            "u_switch": 0,
-            "unicablechannel": 0,
-            "unicableinterface": 0
-        }
-    ]
-}
-
-

-

satelliteList property

-

Provides access to the returns the array of satellites defined in the database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the array of satellites defined in the database
(property)[#]object
(property)[#].namestring
(property)[#].longitudenumberLongitudinal location of the satellite in 1/10ths of a degree, with an east coordinate given as a positive value and a west coordinate as negative. Astra 28.2E would be defined as 282 and Eutelsat 5.0W would be -50
(property)[#].lnbstringName of the LNB settings to be used when tuning to this satellite
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.satelliteList"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Astra 28.2E",
-            "longitude": 282,
-            "lnb": "Universal"
-        }
-    ]
-}
-
-

-

numberOfServices property

-

Provides access to the returns the total number of services in the service database.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberReturns the total number of services in the service database
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.numberOfServices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 145
-}
-
-

-

serviceList property

-

Provides access to the returns the list of services for the given type of tuner, or all services if no tuner is defined.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayReturns the list of services for the given type of tuner, or all services if no tuner is defined
(property)[#]object
(property)[#].shortnamestringService name as given by the service descriptor in the SDT
(property)[#].dvburistringDVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
(property)[#].lcnnumberLogical channel number
-
-

The optional tuner type argument shall be passed as the index to the property, e.g. DTV.1.serviceList@dvbs.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.serviceList@dvbs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "shortname": "Channel 4",
-            "dvburi": "2.2041.9212",
-            "lcn": 1001
-        }
-    ]
-}
-
-

-

nowNextEvents property

-

Provides access to the get the now and next events (EITp/f) for the given service.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectGet the now and next events (EITp/f) for the given service
(property)?.nowobject(optional) EIT event information
(property)?.now.namestringName of the DVB event as defined in the short event descriptor
(property)?.now.starttimenumberUTC start time of the event in seconds
(property)?.now.durationnumberDuration of the event in seconds
(property)?.now.eventidnumberID of the event from the event information table
(property)?.now.shortdescriptionstringEvent description from the EIT short event descriptor
(property)?.nextobject(optional) EIT event information
(property)?.next.namestringName of the DVB event as defined in the short event descriptor
(property)?.next.starttimenumberUTC start time of the event in seconds
(property)?.next.durationnumberDuration of the event in seconds
(property)?.next.eventidnumberID of the event from the event information table
(property)?.next.shortdescriptionstringEvent description from the EIT short event descriptor
-
-

The service uri string argument shall be passed as the index to the property, e.g. DTV.1.nowNextEvents@9018.4161.1001.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.nowNextEvents@9018.4161.1001"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "now": {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        },
-        "next": {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        }
-    }
-}
-
-

-

scheduleEvents property

-

Provides access to the get the schedule events (EITsched) for the given service.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayGet the schedule events (EITsched) for the given service
(property)[#]objectEIT event information
(property)[#].namestringName of the DVB event as defined in the short event descriptor
(property)[#].starttimenumberUTC start time of the event in seconds
(property)[#].durationnumberDuration of the event in seconds
(property)[#].eventidnumberID of the event from the event information table
(property)[#].shortdescriptionstringEvent description from the EIT short event descriptor
-
-

The service uri string, with optional start and end times as number of seconds utc argument shall be passed as the index to the property, e.g. DTV.1.scheduleEvents@9018.4161.1001:12345000,12346000.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.scheduleEvents@9018.4161.1001:12345000,12346000"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "Channel 4 News",
-            "starttime": 1587562065,
-            "duration": 1800,
-            "eventid": 3012,
-            "shortdescription": "The current national and world news"
-        }
-    ]
-}
-
-

-

status property

-

Provides access to the returns information related to the play handle defined by the index.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectReturns information related to the play handle defined by the index
(property).tunernumberThe tuner id used by the play handle
(property).demuxnumberThe demux id used by the play handle
(property).pmtpidnumberThe PMT PID of the service being played
(property).dvburistringDVB triplet of the form a.b.c, where 'a' is the original network ID, 'b' is the transport ID and 'c' is the service ID, in decimal
(property).lcnnumberLCN of the service being played
-
-

The play handle argument shall be passed as the index to the property, e.g. DTV.1.status@0.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DTV.1.status@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "tuner": 0,
-        "demux": 0,
-        "pmtpid": 1100,
-        "dvburi": "2.2041.9212",
-        "lcn": 1001
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DTV plugin:

-

DTV interface events:

- - - - - - - - - - - - - -
EventDescription
searchstatusUsed to notify about events during the course of a service search
-

-

searchstatus event

-

Used to notify about events during the course of a service search.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.handlenumberThe handle assigned for the search and to which this information is relevant
params.eventtypestringEvent type that's sent as an asynchronous notification (must be one of the following: ServiceSearchStatus)
params.finishedbooleantrue if the service search has finished, false otherwise
params.progressnumberProgress of the search expressed as a percentage
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.searchstatus",
-    "params": {
-        "handle": 0,
-        "eventtype": "ServiceSearchStatus",
-        "finished": false,
-        "progress": 65
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DeviceIdentificationAPI/index.html b/DeviceIdentificationAPI/index.html deleted file mode 100644 index 6fb4fff..0000000 --- a/DeviceIdentificationAPI/index.html +++ /dev/null @@ -1,2039 +0,0 @@ - - - - - - - - - - - - - - - - - Device Identification API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Device Identification API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DeviceIdentification interface for Thunder framework.

-

(Defined by DeviceIdentification.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DeviceIdentification interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DeviceIdentification JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the DeviceIdentification interface:

-

DeviceIdentification interface properties:

- - - - - - - - - - - - - -
PropertyDescription
deviceidentification RODevice paltform specific information
-

-

deviceidentification property

-

Provides access to the device paltform specific information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectDevice paltform specific information
(property).firmwareversionstringVersion of the device firmware
(property).chipsetstringChipset used for this device
(property)?.identifierstring(optional) Device unique identifier
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceIdentification.1.deviceidentification"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "firmwareversion": "1.0.0",
-        "chipset": "BCM2711",
-        "identifier": "..."
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DeviceInfoAPI/index.html b/DeviceInfoAPI/index.html deleted file mode 100644 index 496c0ef..0000000 --- a/DeviceInfoAPI/index.html +++ /dev/null @@ -1,2416 +0,0 @@ - - - - - - - - - - - - - - - - - Device Info API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Device Info API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DeviceInfo interface for Thunder framework.

-

(Defined by DeviceInfo.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DeviceInfo interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DeviceInfo JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the DeviceInfo interface:

-

DeviceInfo interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
capabilities ROCapabilities of the STB
metadata
systeminfo ROSystem general information
addresses RONetwork interface addresses
socketinfo ROSocket information
-

-

capabilities property

-

Provides access to the capabilities of the STB.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectCapabilities of the STB
(property).hdrbooleanIs HDR supported by this device
(property).atmosbooleanIs Atmos supported by this device
(property).cecbooleanIs CEC supported by this device
(property).hdcpstringHDCP support (must be one of the following: unavailable, hdcp_14, hdcp_20, hdcp_21, hdcp_22)
(property).audio_outputsarrayAudio Output support
(property).audio_outputs[#]stringAudio output supported by the device (must be one of the following: other, rf_modulator, analog, spdif, hdmi, displayport)
(property).video_outputsarrayVideo Output support
(property).video_outputs[#]stringVideo output supported by the device (must be one of the following: other, rf_modulator, composite, svideo, component, scart_rgb, hdmi, displayport)
(property).output_resolutionsarraySupported resolutions
(property).output_resolutions[#]stringResolution supported by the device (must be one of the following: unknown, 480i, 480p, 576i, 576p, 720p, 1080i, 1080p, 2160p30, 2160p60, 4320p30, 4320p60)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.capabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "hdr": false,
-        "atmos": false,
-        "cec": true,
-        "hdcp": "hdcp_20",
-        "audio_outputs": [
-            "analog"
-        ],
-        "video_outputs": [
-            "displayport"
-        ],
-        "output_resolutions": [
-            "1080p"
-        ]
-    }
-}
-
-

-

metadata property

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)object
(property)?.modelNamestring(optional) Model Name
(property)?.modelYearnumber(optional) Model Year
(property)?.friendlyNamestring(optional) friendly name
(property)?.systemIntegratorNamestring(optional) system integrator name
(property)?.platformNamestring(optional) platform name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.metadata"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "modelName": "model A",
-        "modelYear": 2020,
-        "friendlyName": "my device",
-        "systemIntegratorName": "Christophe A",
-        "platformName": "linux"
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.metadata",
-    "params": {
-        "modelName": "model A",
-        "modelYear": 2020,
-        "friendlyName": "my device",
-        "systemIntegratorName": "Christophe A",
-        "platformName": "linux"
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

systeminfo property

-

Provides access to the system general information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSystem general information
(property).versionstringSoftware version (in form version#hashtag)
(property).uptimenumberSystem uptime (in seconds)
(property).totalramnumberTotal installed system RAM memory (in bytes)
(property).freeramnumberFree system RAM memory (in bytes)
(property).totalswapnumberTotal swap space (in bytes)
(property).freeswapnumberswap space still available (in bytes)
(property).devicenamestringHost name
(property).cpuloadstringCurrent CPU load (percentage)
(property).cpuloadavgobjectCPU load average
(property).cpuloadavg.avg1minnumber1min cpuload average
(property).cpuloadavg.avg5minnumber5min cpuload average
(property).cpuloadavg.avg15minnumber15min cpuload average
(property).serialnumberstringDevice serial number
(property).timestringCurrent system date and time
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.systeminfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "version": "1.0#14452f612c3747645d54974255d11b8f3b4faa54",
-        "uptime": 120,
-        "totalram": 655757312,
-        "freeram": 563015680,
-        "totalswap": 789132680,
-        "freeswap": 789132680,
-        "devicename": "buildroot",
-        "cpuload": "2",
-        "cpuloadavg": {
-            "avg1min": 789132680,
-            "avg5min": 789132680,
-            "avg15min": 789132680
-        },
-        "serialnumber": "WPEuCfrLF45",
-        "time": "Mon, 11 Mar 2019 14:38:18"
-    }
-}
-
-

-

addresses property

-

Provides access to the network interface addresses.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNetwork interface addresses
(property)[#]object
(property)[#].namestringInterface name
(property)[#].macstringInterface MAC address
(property)[#]?.iparray(optional)
(property)[#]?.ip[#]string(optional) Interface IP address
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.addresses"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "lo",
-            "mac": "00:00:00:00:00",
-            "ip": [
-                "127.0.0.1"
-            ]
-        }
-    ]
-}
-
-

-

socketinfo property

-

Provides access to the socket information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSocket information
(property)?.totalnumber(optional)
(property)?.opennumber(optional)
(property)?.linknumber(optional)
(property)?.exceptionnumber(optional)
(property)?.shutdownnumber(optional)
(property).runsnumberNumber of runs
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.socketinfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "total": 0,
-        "open": 0,
-        "link": 0,
-        "exception": 0,
-        "shutdown": 0,
-        "runs": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DeviceInfoPlugin/index.html b/DeviceInfoPlugin/index.html deleted file mode 100644 index 49e8aef..0000000 --- a/DeviceInfoPlugin/index.html +++ /dev/null @@ -1,2533 +0,0 @@ - - - - - - - - - - - - - - - - - Device Info Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Device Info Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A DeviceInfo plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DeviceInfo plugin. It includes detailed specification about its configuration 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: DeviceInfo)
classnamestringClass name: DeviceInfo
locatorstringLibrary name: libWPEFrameworkDeviceInfo.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
hdrbooleanDoes the device support HDR (true or false)
atmosbooleanDoes the device support Dolby Atmos (true or false)
cecbooleanDoes the device support HDMI CEC (true or false)
hdcpstringHDCP version supported by the device (unavailable, hdcp_14, hdcp_20, hdcp_21, hdcp_22)
audioarraySupported audio outputs
audio[#]stringAudio output (other, rf_modulator, analog, spdif, hdmi, displayport)
videoarraySupported video outputs
video[#]stringVideo output (other, rf_modulator, composite, svideo, component, scart_rgb, hdmi, displayport)
resolutionarraySupported output resolutions
resolution[#]stringOutput resolution (unknown, 480i, 480p, 576i, 576p, 720p, 1080i, 1080p, 2160p30, 2160p60, 4320p30, 4320p60)
modelNamestringModel Name
modelYearnumberModel Year
friendlyNamestringfriendly Name
systemIntegratorNamestringsystem Integrator Name
platformNamestringplatform Name
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Properties

-

The following properties are provided by the DeviceInfo plugin:

-

DeviceInfo interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
capabilities ROCapabilities of the STB
metadata
systeminfo ROSystem general information
addresses RONetwork interface addresses
socketinfo ROSocket information
-

-

capabilities property

-

Provides access to the capabilities of the STB.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectCapabilities of the STB
(property).hdrbooleanIs HDR supported by this device
(property).atmosbooleanIs Atmos supported by this device
(property).cecbooleanIs CEC supported by this device
(property).hdcpstringHDCP support (must be one of the following: unavailable, hdcp_14, hdcp_20, hdcp_21, hdcp_22)
(property).audio_outputsarrayAudio Output support
(property).audio_outputs[#]stringAudio output supported by the device (must be one of the following: other, rf_modulator, analog, spdif, hdmi, displayport)
(property).video_outputsarrayVideo Output support
(property).video_outputs[#]stringVideo output supported by the device (must be one of the following: other, rf_modulator, composite, svideo, component, scart_rgb, hdmi, displayport)
(property).output_resolutionsarraySupported resolutions
(property).output_resolutions[#]stringResolution supported by the device (must be one of the following: unknown, 480i, 480p, 576i, 576p, 720p, 1080i, 1080p, 2160p30, 2160p60, 4320p30, 4320p60)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.capabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "hdr": false,
-        "atmos": false,
-        "cec": true,
-        "hdcp": "hdcp_20",
-        "audio_outputs": [
-            "analog"
-        ],
-        "video_outputs": [
-            "displayport"
-        ],
-        "output_resolutions": [
-            "1080p"
-        ]
-    }
-}
-
-

-

metadata property

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)object
(property)?.modelNamestring(optional) Model Name
(property)?.modelYearnumber(optional) Model Year
(property)?.friendlyNamestring(optional) friendly name
(property)?.systemIntegratorNamestring(optional) system integrator name
(property)?.platformNamestring(optional) platform name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.metadata"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "modelName": "model A",
-        "modelYear": 2020,
-        "friendlyName": "my device",
-        "systemIntegratorName": "Christophe A",
-        "platformName": "linux"
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.metadata",
-    "params": {
-        "modelName": "model A",
-        "modelYear": 2020,
-        "friendlyName": "my device",
-        "systemIntegratorName": "Christophe A",
-        "platformName": "linux"
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

systeminfo property

-

Provides access to the system general information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSystem general information
(property).versionstringSoftware version (in form version#hashtag)
(property).uptimenumberSystem uptime (in seconds)
(property).totalramnumberTotal installed system RAM memory (in bytes)
(property).freeramnumberFree system RAM memory (in bytes)
(property).totalswapnumberTotal swap space (in bytes)
(property).freeswapnumberswap space still available (in bytes)
(property).devicenamestringHost name
(property).cpuloadstringCurrent CPU load (percentage)
(property).cpuloadavgobjectCPU load average
(property).cpuloadavg.avg1minnumber1min cpuload average
(property).cpuloadavg.avg5minnumber5min cpuload average
(property).cpuloadavg.avg15minnumber15min cpuload average
(property).serialnumberstringDevice serial number
(property).timestringCurrent system date and time
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.systeminfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "version": "1.0#14452f612c3747645d54974255d11b8f3b4faa54",
-        "uptime": 120,
-        "totalram": 655757312,
-        "freeram": 563015680,
-        "totalswap": 789132680,
-        "freeswap": 789132680,
-        "devicename": "buildroot",
-        "cpuload": "2",
-        "cpuloadavg": {
-            "avg1min": 789132680,
-            "avg5min": 789132680,
-            "avg15min": 789132680
-        },
-        "serialnumber": "WPEuCfrLF45",
-        "time": "Mon, 11 Mar 2019 14:38:18"
-    }
-}
-
-

-

addresses property

-

Provides access to the network interface addresses.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNetwork interface addresses
(property)[#]object
(property)[#].namestringInterface name
(property)[#].macstringInterface MAC address
(property)[#]?.iparray(optional)
(property)[#]?.ip[#]string(optional) Interface IP address
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.addresses"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "lo",
-            "mac": "00:00:00:00:00",
-            "ip": [
-                "127.0.0.1"
-            ]
-        }
-    ]
-}
-
-

-

socketinfo property

-

Provides access to the socket information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSocket information
(property)?.totalnumber(optional)
(property)?.opennumber(optional)
(property)?.linknumber(optional)
(property)?.exceptionnumber(optional)
(property)?.shutdownnumber(optional)
(property).runsnumberNumber of runs
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DeviceInfo.1.socketinfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "total": 0,
-        "open": 0,
-        "link": 0,
-        "exception": 0,
-        "shutdown": 0,
-        "runs": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DictionaryPlugin/index.html b/DictionaryPlugin/index.html deleted file mode 100644 index 445d103..0000000 --- a/DictionaryPlugin/index.html +++ /dev/null @@ -1,1968 +0,0 @@ - - - - - - - - - - - - - - - - - Dictionary Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Dictionary Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A Dictionary plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Dictionary 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Dictionary plugin provides functionality for dictionary management.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Dictionary)
classnamestringClass name: Dictionary
locatorstringLibrary name: libWPEFrameworkDictionary.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.storagestring(optional) Filename of DataModel file (default: DataModel.json)
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DisplayInfoAPI/index.html b/DisplayInfoAPI/index.html deleted file mode 100644 index 6cfc26b..0000000 --- a/DisplayInfoAPI/index.html +++ /dev/null @@ -1,2062 +0,0 @@ - - - - - - - - - - - - - - - - - Display Info API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Display Info API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DisplayInfo interface for Thunder framework.

-

(Defined by DisplayInfo.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DisplayInfo interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DisplayInfo JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the DisplayInfo interface:

-

DisplayInfo interface properties:

- - - - - - - - - - - - - -
PropertyDescription
displayinfo RODisplay general information
-

-

displayinfo property

-

Provides access to the display general information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectDisplay general information
(property).totalgpuramnumberTotal GPU DRAM memory (in bytes)
(property).freegpuramnumberFree GPU DRAM memory (in bytes)
(property).audiopassthroughbooleanAudio Pass through is support for this device
(property).connectedbooleanHDMI display connection status
(property).widthnumberWidth of the connected HDMI display
(property).heightnumberHeight of the connected HDMI display
(property).hdcpprotectionstringHDCP Protection (must be one of the following: Unencrypted, HDCP1x, HDCP2x)
(property).hdrtypestringHDR Type used (must be one of the following: HDROff, HDR10, HDR10Plus, HDRDolbyVision, HDRTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.displayinfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "totalgpuram": 381681664,
-        "freegpuram": 358612992,
-        "audiopassthrough": false,
-        "connected": true,
-        "width": 1280,
-        "height": 720,
-        "hdcpprotection": "HDCP1x",
-        "hdrtype": "HDROff"
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DisplayInfo interface:

-

DisplayInfo interface events:

- - - - - - - - - - - - - -
EventDescription
updatedNotifies about a change/update in the connection
-

-

updated event

-

Notifies about a change/update in the connection.

-

Description

-

Register to this event to be notified about any change in the connection

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.updated"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DisplayInfoPlugin/index.html b/DisplayInfoPlugin/index.html deleted file mode 100644 index b8ec46b..0000000 --- a/DisplayInfoPlugin/index.html +++ /dev/null @@ -1,3032 +0,0 @@ - - - - - - - - - - - - - - - - - Display Info Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Display Info Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A DisplayInfo plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DisplayInfo plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The DisplayInfo plugin allows retrieving of various display-related information.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: DisplayInfo)
classnamestringClass name: DisplayInfo
locatorstringLibrary name: libWPEFrameworkDisplayInfo.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the DisplayInfo plugin:

-

ConnectionProperties interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
exchange edidTV's Extended Display Identification Data
exchange widthincentimetersHorizontal size in centimeters
exchange heightincentimetersVertical size in centimeters
-

-

exchange_edid method

-

TV's Extended Display Identification Data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.lengthinteger
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.lengthinteger
result.datastring
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_edid",
-    "params": {
-        "length": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "length": 0,
-        "data": "..."
-    }
-}
-
-

-

exchange_widthincentimeters method

-

Horizontal size in centimeters.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
widthintegerwidth in cm
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_widthincentimeters"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_heightincentimeters method

-

Vertical size in centimeters.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
heigthinteger
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_heightincentimeters"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

Properties

-

The following properties are provided by the DisplayInfo plugin:

-

GraphicsProperties interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange totalgpuram ROTotal GPU DRAM memory (in bytes)
exchange freegpuram ROFree GPU DRAM memory (in bytes)
-

ConnectionProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange isaudiopassthrough ROCurrent audio passthrough status on HDMI
exchange connected ROCurrent HDMI connection status
exchange width ROHorizontal resolution of TV
exchange height ROVertical resolution of TV
exchange verticalfreq ROVertical Frequency
exchange hdcpprotectionHDCP protocol used for transmission
exchange portname ROVideo output port on the STB used for connection to TV
-

HDRProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange tvcapabilities ROHDR formats supported by TV
exchange stbcapabilities ROHDR formats supported by STB
exchange hdrsetting ROHDR format in use
-

DisplayProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange colorspace ROProvides access to the display's Colour space (chroma subsampling format)
exchange framerate ROProvides access to Frame Rate
exchange colourdepth ROProvides access to display's colour Depth
exchange colorimetry ROProvides access to display's colorimetry
exchange quantizationrange ROProvides access to display's Qauntization Range
exchange eotf ROProvides access to display's Electro optical transfer function
-

-

exchange_totalgpuram property

-

Provides access to the total GPU DRAM memory (in bytes).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
totalintegerTotal GPU DRAM memory (in bytes)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_totalgpuram"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_freegpuram property

-

Provides access to the free GPU DRAM memory (in bytes).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
freeintegerFree GPU DRAM memory (in bytes)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_freegpuram"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_isaudiopassthrough property

-

Provides access to the current audio passthrough status on HDMI.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
passthrubooleanenabled/disabled
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_isaudiopassthrough"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

exchange_connected property

-

Provides access to the current HDMI connection status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
isconnectedbooleanconnected/disconnected
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_connected"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

exchange_width property

-

Provides access to the horizontal resolution of TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
widthintegerwidth of TV in pixels
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_width"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_height property

-

Provides access to the vertical resolution of TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
heightintegerheight of TV in pixels
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_height"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_verticalfreq property

-

Provides access to the vertical Frequency.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
vfintegervertical freq
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_verticalfreq"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_hdcpprotection property

-

Provides access to the HDCP protocol used for transmission.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
valuestringprotocol (must be one of the following: HdcpUnencrypted, Hdcp1X, Hdcp2X, HdcpAuto)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_hdcpprotection"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "HdcpUnencrypted"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_hdcpprotection",
-    "params": "HdcpUnencrypted"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_portname property

-

Provides access to the video output port on the STB used for connection to TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
namestringvideo output port name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_portname"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "..."
-}
-
-

-

exchange_tvcapabilities property

-

Provides access to the HDR formats supported by TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
typearrayHDR formats supported by TV
type[#]string(must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_tvcapabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "HdrOff"
-    ]
-}
-
-

-

exchange_stbcapabilities property

-

Provides access to the HDR formats supported by STB.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
typearrayHDR formats supported by STB
type[#]string(must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_stbcapabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "HdrOff"
-    ]
-}
-
-

-

exchange_hdrsetting property

-

Provides access to the HDR format in use.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
typestringHDR format (must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_hdrsetting"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "HdrOff"
-}
-
-

-

exchange_colorspace property

-

Provides access to the provides access to the display's Colour space (chroma subsampling format).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
csstringcolour space (must be one of the following: FormatUnknown, FormatOther, FormatRgb444, FormatYcbcr444, FormatYcbcr422, FormatYcbcr420)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_colorspace"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "FormatUnknown"
-}
-
-

-

exchange_framerate property

-

Provides access to the provides access to Frame Rate.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
ratestringframe rate (must be one of the following: FramerateUnknown, Framerate23976, Framerate24, Framerate25, Framerate2997, Framerate30, Framerate47952, Framerate48, Framerate50, Framerate5994, Framerate60, Framerate11988, Framerate120, Framerate144)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_framerate"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "FramerateUnknown"
-}
-
-

-

exchange_colourdepth property

-

Provides access to the provides access to display's colour Depth.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
colourstringcolour depth (must be one of the following: ColordepthUnknown, Colordepth8Bit, Colordepth10Bit, Colordepth12Bit)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_colourdepth"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "ColordepthUnknown"
-}
-
-

-

exchange_colorimetry property

-

Provides access to the provides access to display's colorimetry.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
colorimetryarraydisplay colorimetry
colorimetry[#]string(must be one of the following: ColorimetryUnknown, ColorimetryOther, ColorimetrySmpte170M, ColorimetryBt709, ColorimetryXvycc601, ColorimetryXvycc709, ColorimetrySycc601, ColorimetryOpycc601, ColorimetryOprgb, ColorimetryBt2020Yccbcbrc, ColorimetryBt2020RgbYcbcr)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_colorimetry"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "ColorimetryUnknown"
-    ]
-}
-
-

-

exchange_quantizationrange property

-

Provides access to the provides access to display's Qauntization Range.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
qrstringquantization range (must be one of the following: QuantizationrangeUnknown, QuantizationrangeLimited, QuantizationrangeFull)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_quantizationrange"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "QuantizationrangeUnknown"
-}
-
-

-

exchange_eotf property

-

Provides access to the provides access to display's Electro optical transfer function.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
eotfstringdisplay's EOTF (must be one of the following: EotfUnknown, EotfOther, EotfBt1886, EotfBt2100, EotfSmpteSt2084)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayInfo.1.exchange_eotf"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "EotfUnknown"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the DisplayInfo plugin:

-

ConnectionProperties interface events:

- - - - - - - - - - - - - -
EventDescription
exchange updated
-

-

exchange_updated event

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.eventstring(must be one of the following: PreResolutionChange, PostResolutionChange, HdmiChange, HdcpChange)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_updated",
-    "params": {
-        "event": "PreResolutionChange"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/DisplayPropertiesAPI/index.html b/DisplayPropertiesAPI/index.html deleted file mode 100644 index 5d18fd1..0000000 --- a/DisplayPropertiesAPI/index.html +++ /dev/null @@ -1,2197 +0,0 @@ - - - - - - - - - - - - - - - - - DisplayProperties API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

DisplayProperties API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A DisplayProperties interface for Thunder framework.

-

(Defined with Exchange::IDisplayProperties in IDisplayInfo.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the DisplayProperties interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

DisplayProperties JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the DisplayProperties interface:

-

DisplayProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange colorspace ROProvides access to the display's Colour space (chroma subsampling format)
exchange framerate ROProvides access to Frame Rate
exchange colourdepth ROProvides access to display's colour Depth
exchange colorimetry ROProvides access to display's colorimetry
exchange quantizationrange ROProvides access to display's Qauntization Range
exchange eotf ROProvides access to display's Electro optical transfer function
-

-

exchange_colorspace property

-

Provides access to the provides access to the display's Colour space (chroma subsampling format).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
csstringcolour space (must be one of the following: FormatUnknown, FormatOther, FormatRgb444, FormatYcbcr444, FormatYcbcr422, FormatYcbcr420)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_colorspace"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "FormatUnknown"
-}
-
-

-

exchange_framerate property

-

Provides access to the provides access to Frame Rate.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
ratestringframe rate (must be one of the following: FramerateUnknown, Framerate23976, Framerate24, Framerate25, Framerate2997, Framerate30, Framerate47952, Framerate48, Framerate50, Framerate5994, Framerate60, Framerate11988, Framerate120, Framerate144)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_framerate"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "FramerateUnknown"
-}
-
-

-

exchange_colourdepth property

-

Provides access to the provides access to display's colour Depth.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
colourstringcolour depth (must be one of the following: ColordepthUnknown, Colordepth8Bit, Colordepth10Bit, Colordepth12Bit)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_colourdepth"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "ColordepthUnknown"
-}
-
-

-

exchange_colorimetry property

-

Provides access to the provides access to display's colorimetry.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
colorimetryarraydisplay colorimetry
colorimetry[#]string(must be one of the following: ColorimetryUnknown, ColorimetryOther, ColorimetrySmpte170M, ColorimetryBt709, ColorimetryXvycc601, ColorimetryXvycc709, ColorimetrySycc601, ColorimetryOpycc601, ColorimetryOprgb, ColorimetryBt2020Yccbcbrc, ColorimetryBt2020RgbYcbcr)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_colorimetry"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "ColorimetryUnknown"
-    ]
-}
-
-

-

exchange_quantizationrange property

-

Provides access to the provides access to display's Qauntization Range.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
qrstringquantization range (must be one of the following: QuantizationrangeUnknown, QuantizationrangeLimited, QuantizationrangeFull)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_quantizationrange"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "QuantizationrangeUnknown"
-}
-
-

-

exchange_eotf property

-

Provides access to the provides access to display's Electro optical transfer function.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
eotfstringdisplay's EOTF (must be one of the following: EotfUnknown, EotfOther, EotfBt1886, EotfBt2100, EotfSmpteSt2084)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "DisplayProperties.1.exchange_eotf"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "EotfUnknown"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/FileTransferPlugin/index.html b/FileTransferPlugin/index.html deleted file mode 100644 index 592d6bb..0000000 --- a/FileTransferPlugin/index.html +++ /dev/null @@ -1,1973 +0,0 @@ - - - - - - - - - - - - - - - - - FileTransfer Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

FileTransfer Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A FileTransfer plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the FileTransfer 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The FileTransfer plugin provides web browsing functionality based on the FileTransfer engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: FileTransfer)
classnamestringClass name: FileTransfer
locatorstringLibrary name: libWPEFrameworkFileTransfer.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.portnumber(optional) Port number (default: 2201)
configuration?.fullfileboolean(optional) If value failse update at the end of the file (default: false)
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/FirmwareControlAPI/index.html b/FirmwareControlAPI/index.html deleted file mode 100644 index 31afc11..0000000 --- a/FirmwareControlAPI/index.html +++ /dev/null @@ -1,2343 +0,0 @@ - - - - - - - - - - - - - - - - - Firmware Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Firmware Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A FirmwareControl interface for Thunder framework.

-

(Defined by FirmwareControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the FirmwareControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Firmware Control JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the FirmwareControl interface:

-

FirmwareControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
upgradeUpgrade the device to the given firmware
resumeResume download from the last paused position
-

-

upgrade method

-

Upgrade the device to the given firmware. (Note: Ensure size of firmware image should be < 500MB).

-

Also see: upgradeprogress

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of the firmware
params?.locationstring(optional) Location or URL of the firmware to be upgraded
params?.typestring(optional) Type of the firmware (must be one of the following: CDL, RCDL)
params?.progressintervalnumber(optional) Number of seconds between progress update events (5 seconds, 10 seconds etc). 0 means invoking callback only once to report final upgrade result
params?.hmacstring(optional) HMAC value of firmare
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSOperation in progress
15ERROR_INCORRECT_URLInvalid location given
2ERROR_UNAVAILABLEError in download
30ERROR_BAD_REQUESTBad file name given
5ERROR_ILLEGAL_STATEInvalid state of device
14ERROR_INCORRECT_HASHIncorrect hash given
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.upgrade",
-    "params": {
-        "name": "firmware_v.0",
-        "location": "http://my.site.com/images",
-        "type": "RCDL",
-        "progressinterval": 10,
-        "hmac": "2834e6d07fa4c7778ef7a4e394f38a5c321afbed51d54ad512bd3fffbc7aa5debc"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

resume method

-

Resume download from the last paused position.

-

Also see: upgradeprogress

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of the firmware
params?.locationstring(optional) Location or URL of the firmware to be upgraded
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSOperation in progress
15ERROR_INCORRECT_URLInvalid location given
2ERROR_UNAVAILABLEError in download
30ERROR_BAD_REQUESTBad file name given
5ERROR_ILLEGAL_STATEInvalid state of device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.resume",
-    "params": {
-        "name": "firmware_v.0",
-        "location": "http://my.site.com/images"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the FirmwareControl interface:

-

FirmwareControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
status ROCurrent status of a upgrade
downloadsize ROMax free space available to download image
-

-

status property

-

Provides access to the current status of a upgrade.

-
-

This property is read-only.

-
-

Also see: upgradeprogress

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringUpgrade status (must be one of the following: none, upgradestarted, downloadstarted, downloadaborted, downloadcompleted, installinitiated, installnotstarted, installaborted, installstarted, upgradecompleted, upgradecancelled)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.status"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "completed"
-}
-
-

-

downloadsize property

-

Provides access to the max free space available to download image.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberAvailable free space in bytes
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.downloadsize"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 315576
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the FirmwareControl interface:

-

FirmwareControl interface events:

- - - - - - - - - - - - - -
EventDescription
upgradeprogressNotifies progress of upgrade
-

-

upgradeprogress event

-

Notifies progress of upgrade.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.statusstringUpgrade status (must be one of the following: none, upgradestarted, downloadstarted, downloadaborted, downloadcompleted, installinitiated, installnotstarted, installaborted, installstarted, upgradecompleted, upgradecancelled)
params.errorstringReason of error (must be one of the following: none, generic, invalidparameters, invalidstate, noenoughspace, operationotsupported, incorrecthash, unauthenticated, unavailable, timedout, downloaddirectorynotexist, resumenotsupported, invalidrange, unkown)
params.progressnumberProgress of upgrade (number of bytes transferred during download or percentage of completion during install
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.upgradeprogress",
-    "params": {
-        "status": "completed",
-        "error": "operationotsupported",
-        "progress": 89
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/FirmwareControlPlugin/index.html b/FirmwareControlPlugin/index.html deleted file mode 100644 index c4425e7..0000000 --- a/FirmwareControlPlugin/index.html +++ /dev/null @@ -1,2405 +0,0 @@ - - - - - - - - - - - - - - - - - Firmware Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Firmware Control Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A FirmwareControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the FirmwareControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Control Firmware upgrade to the device.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: FirmwareControl)
classnamestringClass name: FirmwareControl
locatorstringLibrary name: libWPEFrameworkFirmwareControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.sourcestring(optional) Source URL or location of the firmware
configuration?.downloadstring(optional) Location where the firmware to be downloaded
configuration?.waittimenumber(optional) Maximum duration to finish download or install process
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the FirmwareControl plugin:

-

FirmwareControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
upgradeUpgrade the device to the given firmware
resumeResume download from the last paused position
-

-

upgrade method

-

Upgrade the device to the given firmware. (Note: Ensure size of firmware image should be < 500MB).

-

Also see: upgradeprogress

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of the firmware
params?.locationstring(optional) Location or URL of the firmware to be upgraded
params?.typestring(optional) Type of the firmware (must be one of the following: CDL, RCDL)
params?.progressintervalnumber(optional) Number of seconds between progress update events (5 seconds, 10 seconds etc). 0 means invoking callback only once to report final upgrade result
params?.hmacstring(optional) HMAC value of firmare
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSOperation in progress
15ERROR_INCORRECT_URLInvalid location given
2ERROR_UNAVAILABLEError in download
30ERROR_BAD_REQUESTBad file name given
5ERROR_ILLEGAL_STATEInvalid state of device
14ERROR_INCORRECT_HASHIncorrect hash given
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.upgrade",
-    "params": {
-        "name": "firmware_v.0",
-        "location": "http://my.site.com/images",
-        "type": "RCDL",
-        "progressinterval": 10,
-        "hmac": "2834e6d07fa4c7778ef7a4e394f38a5c321afbed51d54ad512bd3fffbc7aa5debc"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

resume method

-

Resume download from the last paused position.

-

Also see: upgradeprogress

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of the firmware
params?.locationstring(optional) Location or URL of the firmware to be upgraded
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSOperation in progress
15ERROR_INCORRECT_URLInvalid location given
2ERROR_UNAVAILABLEError in download
30ERROR_BAD_REQUESTBad file name given
5ERROR_ILLEGAL_STATEInvalid state of device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.resume",
-    "params": {
-        "name": "firmware_v.0",
-        "location": "http://my.site.com/images"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the FirmwareControl plugin:

-

FirmwareControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
status ROCurrent status of a upgrade
downloadsize ROMax free space available to download image
-

-

status property

-

Provides access to the current status of a upgrade.

-
-

This property is read-only.

-
-

Also see: upgradeprogress

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringUpgrade status (must be one of the following: none, upgradestarted, downloadstarted, downloadaborted, downloadcompleted, installinitiated, installnotstarted, installaborted, installstarted, upgradecompleted, upgradecancelled)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.status"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "completed"
-}
-
-

-

downloadsize property

-

Provides access to the max free space available to download image.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberAvailable free space in bytes
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "FirmwareControl.1.downloadsize"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 315576
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the FirmwareControl plugin:

-

FirmwareControl interface events:

- - - - - - - - - - - - - -
EventDescription
upgradeprogressNotifies progress of upgrade
-

-

upgradeprogress event

-

Notifies progress of upgrade.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.statusstringUpgrade status (must be one of the following: none, upgradestarted, downloadstarted, downloadaborted, downloadcompleted, installinitiated, installnotstarted, installaborted, installstarted, upgradecompleted, upgradecancelled)
params.errorstringReason of error (must be one of the following: none, generic, invalidparameters, invalidstate, noenoughspace, operationotsupported, incorrecthash, unauthenticated, unavailable, timedout, downloaddirectorynotexist, resumenotsupported, invalidrange, unkown)
params.progressnumberProgress of upgrade (number of bytes transferred during download or percentage of completion during install
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.upgradeprogress",
-    "params": {
-        "status": "completed",
-        "error": "operationotsupported",
-        "progress": 89
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/GraphicsPropertiesAPI/index.html b/GraphicsPropertiesAPI/index.html deleted file mode 100644 index 2dc9a06..0000000 --- a/GraphicsPropertiesAPI/index.html +++ /dev/null @@ -1,2022 +0,0 @@ - - - - - - - - - - - - - - - - - GraphicsProperties API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

GraphicsProperties API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A GraphicsProperties interface for Thunder framework.

-

(Defined with Exchange::IGraphicsProperties in IDisplayInfo.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the GraphicsProperties interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

GraphicsProperties JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the GraphicsProperties interface:

-

GraphicsProperties interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange totalgpuram ROTotal GPU DRAM memory (in bytes)
exchange freegpuram ROFree GPU DRAM memory (in bytes)
-

-

exchange_totalgpuram property

-

Provides access to the total GPU DRAM memory (in bytes).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
totalintegerTotal GPU DRAM memory (in bytes)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "GraphicsProperties.1.exchange_totalgpuram"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_freegpuram property

-

Provides access to the free GPU DRAM memory (in bytes).

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
freeintegerFree GPU DRAM memory (in bytes)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "GraphicsProperties.1.exchange_freegpuram"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/HDRPropertiesAPI/index.html b/HDRPropertiesAPI/index.html deleted file mode 100644 index dbc2595..0000000 --- a/HDRPropertiesAPI/index.html +++ /dev/null @@ -1,2078 +0,0 @@ - - - - - - - - - - - - - - - - - HDRProperties API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

HDRProperties API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A HDRProperties interface for Thunder framework.

-

(Defined with Exchange::IHDRProperties in IDisplayInfo.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the HDRProperties interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

HDRProperties JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the HDRProperties interface:

-

HDRProperties interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange tvcapabilities ROHDR formats supported by TV
exchange stbcapabilities ROHDR formats supported by STB
exchange hdrsetting ROHDR format in use
-

-

exchange_tvcapabilities property

-

Provides access to the HDR formats supported by TV.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
typearrayHDR formats supported by TV
type[#]string(must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "HDRProperties.1.exchange_tvcapabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "HdrOff"
-    ]
-}
-
-

-

exchange_stbcapabilities property

-

Provides access to the HDR formats supported by STB.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
typearrayHDR formats supported by STB
type[#]string(must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "HDRProperties.1.exchange_stbcapabilities"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "HdrOff"
-    ]
-}
-
-

-

exchange_hdrsetting property

-

Provides access to the HDR format in use.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
typestringHDR format (must be one of the following: HdrOff, Hdr10, Hdr10Plus, HdrHlg, HdrDolbyvision, HdrTechnicolor)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "HDRProperties.1.exchange_hdrsetting"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "HdrOff"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/IOConnectorAPI/index.html b/IOConnectorAPI/index.html deleted file mode 100644 index 253d7b2..0000000 --- a/IOConnectorAPI/index.html +++ /dev/null @@ -1,2072 +0,0 @@ - - - - - - - - - - - - - - - - - IO Connector API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

IO Connector API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A IOConnector interface for Thunder framework.

-

(Defined by IOConnector.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the IOConnector interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

IO Connector JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the IOConnector interface:

-

IOConnector interface properties:

- - - - - - - - - - - - - -
PropertyDescription
pinGPIO pin value
-

-

pin property

-

Provides access to the GPIO pin value.

-

Also see: activity

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberGPIO pin value
-
-

The pin id argument shall be passed as the index to the property, e.g. IOConnector.1.pin@189.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown pin ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOConnector.1.pin@189"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 1
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOConnector.1.pin@189",
-    "params": 1
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the IOConnector interface:

-

IOConnector interface events:

- - - - - - - - - - - - - -
EventDescription
activityNotifies about GPIO pin activity
-

-

activity event

-

Notifies about GPIO pin activity.

-

Description

-

Register to this event to be notified about pin value changes

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.valuenumberGPIO pin value
-
-

The pin ID argument shall be passed within the designator, e.g. 189.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "189.client.events.1.activity",
-    "params": {
-        "value": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/IOConnectorPlugin/index.html b/IOConnectorPlugin/index.html deleted file mode 100644 index 49f0012..0000000 --- a/IOConnectorPlugin/index.html +++ /dev/null @@ -1,2143 +0,0 @@ - - - - - - - - - - - - - - - - - IO Connector Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

IO Connector Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A IOConnector plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the IOConnector plugin. It includes detailed specification about its configuration, properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
GPIOGeneral-Purpose Input/Output
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The IO Connector plugin provides access to GPIO pins.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: IOConnector)
classnamestringClass name: IOConnector
locatorstringLibrary name: libWPEIOConnector.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
pinsarrayList of GPIO pins available on the system
pins[#]objectPin properties
pins[#].idnumberPin ID
pins[#].modestringPin mode (must be one of the following: Low, High, Both, Active, Inactive, Output)
pins[#]?.activelowboolean(optional) Denotes if pin is active in low state (default: false)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Properties

-

The following properties are provided by the IOConnector plugin:

-

IOConnector interface properties:

- - - - - - - - - - - - - -
PropertyDescription
pinGPIO pin value
-

-

pin property

-

Provides access to the GPIO pin value.

-

Also see: activity

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberGPIO pin value
-
-

The pin id argument shall be passed as the index to the property, e.g. IOConnector.1.pin@189.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown pin ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOConnector.1.pin@189"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 1
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOConnector.1.pin@189",
-    "params": 1
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the IOConnector plugin:

-

IOConnector interface events:

- - - - - - - - - - - - - -
EventDescription
activityNotifies about GPIO pin activity
-

-

activity event

-

Notifies about GPIO pin activity.

-

Description

-

Register to this event to be notified about pin value changes

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.valuenumberGPIO pin value
-
-

The pin ID argument shall be passed within the designator, e.g. 189.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "189.client.events.1.activity",
-    "params": {
-        "value": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/IOControlAPI/index.html b/IOControlAPI/index.html deleted file mode 100644 index 5cf9e89..0000000 --- a/IOControlAPI/index.html +++ /dev/null @@ -1,2072 +0,0 @@ - - - - - - - - - - - - - - - - - IO Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

IO Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A IOControl interface for Thunder framework.

-

(Defined by IOControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the IOControl interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

IO Control JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the IOControl interface:

-

IOControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
pinGPIO pin value
-

-

pin property

-

Provides access to the GPIO pin value.

-

Also see: activity

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberGPIO pin value
-
-

The pin id argument shall be passed as the index to the property, e.g. IOControl.1.pin@189.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown pin ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOControl.1.pin@189"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 1
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "IOControl.1.pin@189",
-    "params": 1
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the IOControl interface:

-

IOControl interface events:

- - - - - - - - - - - - - -
EventDescription
activityNotifies about GPIO pin activity
-

-

activity event

-

Notifies about GPIO pin activity.

-

Description

-

Register to this event to be notified about pin value changes

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.valuenumberGPIO pin value
-
-

The pin ID argument shall be passed within the designator, e.g. 189.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "189.client.events.1.activity",
-    "params": {
-        "value": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/InputSwitchAPI/index.html b/InputSwitchAPI/index.html deleted file mode 100644 index df9e980..0000000 --- a/InputSwitchAPI/index.html +++ /dev/null @@ -1,2207 +0,0 @@ - - - - - - - - - - - - - - - - - Input Switch API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Input Switch API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A InputSwitch interface for Thunder framework.

-

(Defined by InputSwitch.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the InputSwitch interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

InputSwitch JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the InputSwitch interface:

-

InputSwitch interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
channelEnable or Disable the throughput through the given channel
selectEnable the given channel, disabling all othe channels, whish are not immune
statusCheck the status of the requested channel
-

-

channel method

-

Enable or Disable the throughput through the given channel.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringCallsign that is the owner of this channel
params.enabledbooleanEnable or disable the throughput of data through this channel
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYFailed to scan
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "InputSwitch.1.channel",
-    "params": {
-        "name": "WebKitBrowser",
-        "enabled": false
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

select method

-

Enable the given channel, disabling all othe channels, whish are not immune.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringCallsign that is the owner of this channel
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYFailed to scan
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "InputSwitch.1.select",
-    "params": {
-        "name": "WebKitBrowser"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

status method

-

Check the status of the requested channel.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringCallsign that is the owner of this channel
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultarray
result[#]object
result[#].namestringCallsign associated with this channel
result[#].enabledbooleanIs the channel enabled to receive info
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYCould not find the designated channel
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "InputSwitch.1.status",
-    "params": {
-        "name": "WebKitBrowser"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "WebKitBrowser",
-            "enabled": false
-        }
-    ]
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/LanguageTagAPI/index.html b/LanguageTagAPI/index.html deleted file mode 100644 index f58b12f..0000000 --- a/LanguageTagAPI/index.html +++ /dev/null @@ -1,2039 +0,0 @@ - - - - - - - - - - - - - - - - - LanguageTag API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

LanguageTag API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A LanguageTag interface for Thunder framework.

-

(Defined with Exchange::ILanguageTag in ILanguageTag.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the LanguageTag interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

LanguageTag JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the LanguageTag interface:

-

LanguageTag interface properties:

- - - - - - - - - - - - - -
PropertyDescription
exchange languageCurrent application user interface language tag
-

-

exchange_language property

-

Provides access to the current application user interface language tag.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
languagestringLanguage string as per RFC5646
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LanguageTag.1.exchange_language"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "en"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LanguageTag.1.exchange_language",
-    "params": "en"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the LanguageTag interface:

-

LanguageTag interface events:

- - - - - - - - - - - - - -
EventDescription
exchange languagechangedNotify that the Language tag has been changed
-

-

exchange_languagechanged event

-

Notify that the Language tag has been changed.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
languagestringnew LangauageTag value
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_languagechanged",
-    "params": "..."
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/LocationSyncAPI/index.html b/LocationSyncAPI/index.html deleted file mode 100644 index 7d910b5..0000000 --- a/LocationSyncAPI/index.html +++ /dev/null @@ -1,2130 +0,0 @@ - - - - - - - - - - - - - - - - - Location Sync API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Location Sync API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A LocationSync interface for Thunder framework.

-

(Defined by LocationSync.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the LocationSync interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Location Sync JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the LocationSync interface:

-

LocationSync interface methods:

- - - - - - - - - - - - - -
MethodDescription
syncSynchronizes the location
-

-

sync method

-

Synchronizes the location.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to synchdonize the location
2ERROR_UNAVAILABLEUnavailable locator
15ERROR_INCORRECT_URLIncorrect URL
12ERROR_INPROGRESSProbing in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LocationSync.1.sync"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the LocationSync interface:

-

LocationSync interface properties:

- - - - - - - - - - - - - -
PropertyDescription
location ROLocation information
-

-

location property

-

Provides access to the location information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectLocation information
(property).citystringCity name
(property).countrystringCountry name
(property).regionstringRegion name
(property).timezonestringTime zone information
(property).publicipstringPublic IP
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LocationSync.1.location"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "city": "Wroclaw",
-        "country": "Poland",
-        "region": "Wroclaw",
-        "timezone": "CET-1CEST,M3.5.0,M10.5.0/3",
-        "publicip": "78.11.117.118"
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the LocationSync interface:

-

LocationSync interface events:

- - - - - - - - - - - - - -
EventDescription
locationchangeSignals a location change
-

-

locationchange event

-

Signals a location change.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.locationchange"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/LocationSyncPlugin/index.html b/LocationSyncPlugin/index.html deleted file mode 100644 index fb7e8cc..0000000 --- a/LocationSyncPlugin/index.html +++ /dev/null @@ -1,2192 +0,0 @@ - - - - - - - - - - - - - - - - - Location Sync Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Location Sync Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A LocationSync plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the LocationSync plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: LocationSync)
classnamestringClass name: LocationSync
locatorstringLibrary name: libWPELocationSync.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.intervalnumber(optional) Maximum time duration between each request to the Location Server (default: 10)
configuration?.retriesnumber(optional) Maximum number of request reties to the Location Server (default:20)
configuration?.sourcestring(optional) URI of the Location Server (default:"http://jsonip.metrological.com/?maf=true")
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the LocationSync plugin:

-

LocationSync interface methods:

- - - - - - - - - - - - - -
MethodDescription
syncSynchronizes the location
-

-

sync method

-

Synchronizes the location.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to synchdonize the location
2ERROR_UNAVAILABLEUnavailable locator
15ERROR_INCORRECT_URLIncorrect URL
12ERROR_INPROGRESSProbing in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LocationSync.1.sync"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the LocationSync plugin:

-

LocationSync interface properties:

- - - - - - - - - - - - - -
PropertyDescription
location ROLocation information
-

-

location property

-

Provides access to the location information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectLocation information
(property).citystringCity name
(property).countrystringCountry name
(property).regionstringRegion name
(property).timezonestringTime zone information
(property).publicipstringPublic IP
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "LocationSync.1.location"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "city": "Wroclaw",
-        "country": "Poland",
-        "region": "Wroclaw",
-        "timezone": "CET-1CEST,M3.5.0,M10.5.0/3",
-        "publicip": "78.11.117.118"
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the LocationSync plugin:

-

LocationSync interface events:

- - - - - - - - - - - - - -
EventDescription
locationchangeSignals a location change
-

-

locationchange event

-

Signals a location change.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.locationchange"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/MathAPI/index.html b/MathAPI/index.html deleted file mode 100644 index 21b6e61..0000000 --- a/MathAPI/index.html +++ /dev/null @@ -1,2076 +0,0 @@ - - - - - - - - - - - - - - - - - Math API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Math API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Math interface for Thunder framework.

-

(Defined with Exchange::IMath in IMath.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Math interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Math JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Math interface:

-

Math interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange add
exchange sub
-

-

exchange_add method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ainteger
params.binteger
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
suminteger
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Math.1.exchange_add",
-    "params": {
-        "a": 0,
-        "b": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_sub method

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ainteger
params.binteger
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
suminteger
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Math.1.exchange_sub",
-    "params": {
-        "a": 0,
-        "b": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/MessengerAPI/index.html b/MessengerAPI/index.html deleted file mode 100644 index bf842a9..0000000 --- a/MessengerAPI/index.html +++ /dev/null @@ -1,2404 +0,0 @@ - - - - - - - - - - - - - - - - - Messenger API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Messenger API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Messenger interface for Thunder framework.

-

(Defined by Messenger.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Messenger interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Messenger JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Messenger interface:

-

Messenger interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
joinJoins a messaging room
leaveLeaves a messaging room
sendSends a message to a room
-

-

join method

-

Joins a messaging room.

-

Description

-

Use this method to join a room. If the specified room does not exist, then it will be created.

-

Also see: userupdate

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringUser name to join the room under (must not be empty)
params.roomstringName of the room to join (must not be empty)
params?.securestring(optional) Room security (must be one of the following: insecure, secure)
params?.aclarray(optional) Access-control list for secure room
params?.acl[#]string(optional) URL origin with possible wildcards
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.roomidstringUnique ID of the room
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATEUser name is already taken (i.e. the user has already joined the room)
30ERROR_BAD_REQUESTUser name or room name was invalid
24ERROR_PRIVILEGED_REQUESTRoom security errors
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.join",
-    "params": {
-        "user": "Bob",
-        "room": "Lounge",
-        "secure": "secure",
-        "acl": [
-            "https://*.github.io"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "roomid": "1e217990dd1cd4f66124"
-    }
-}
-
-

-

leave method

-

Leaves a messaging room.

-

Description

-

Use this method to leave a room. The room ID becomes invalid after this call. If there are no more users, the room will be destroyed and related resources freed.

-

Also see: userupdate

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomidstringID of the room to leave
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given room ID was invalid
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.leave",
-    "params": {
-        "roomid": "1e217990dd1cd4f66124"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

send method

-

Sends a message to a room.

-

Description

-

Use this method to send a message to a room.

-

Also see: message

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomidstringID of the room to send the message to
params.messagestringThe message content to send
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given room ID was invalid
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.send",
-    "params": {
-        "roomid": "1e217990dd1cd4f66124",
-        "message": "Hello!"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Messenger interface:

-

Messenger interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
roomupdateNotifies about room status updates
userupdateNotifies about user status updates
messageNotifies about new messages in a room
-

-

roomupdate event

-

Notifies about room status updates.

-

Description

-

Register to this event to be notified about room status updates. Immediately after registering to this notification the listener will sequentially receive updates of all rooms that have been created so far.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomstringName of the room this notification relates to
params?.securestring(optional) Room security (must be one of the following: insecure, secure)
params.actionstringSpecifies the room status change, e.g. created or destroyed (must be one of the following: created, destroyed)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.roomupdate",
-    "params": {
-        "room": "Lounge",
-        "secure": "secure",
-        "action": "created"
-    }
-}
-
-

-

userupdate event

-

Notifies about user status updates.

-

Description

-

Register to this event to be notified about room status updates. Immediately after registering to this notification the listener will sequentially receive updates of all users that have joined the room so far.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringName of the user that has this notification relates to
params.actionstringSpecifies the user status change, e.g. join or leave a room (must be one of the following: joined, left)
-
-

The room ID argument shall be passed within the designator, e.g. 1e217990dd1cd4f66124.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "1e217990dd1cd4f66124.client.events.1.userupdate",
-    "params": {
-        "user": "Bob",
-        "action": "joined"
-    }
-}
-
-

-

message event

-

Notifies about new messages in a room.

-

Description

-

Register to this event to be notified about new messages in a room.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringName of the user that has sent the message
params.messagestringContent of the message
-
-

The room ID argument shall be passed within the designator, e.g. 1e217990dd1cd4f66124.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "1e217990dd1cd4f66124.client.events.1.message",
-    "params": {
-        "user": "Bob",
-        "message": "Hello!"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/MessengerPlugin/index.html b/MessengerPlugin/index.html deleted file mode 100644 index dcee20e..0000000 --- a/MessengerPlugin/index.html +++ /dev/null @@ -1,2446 +0,0 @@ - - - - - - - - - - - - - - - - - Messenger Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Messenger Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Messenger plugin for Thunder framework.

-

Table of Contents

- -

-

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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Messenger)
classnamestringClass name: Messenger
locatorstringLibrary name: libWPEFrameworkMessenger.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Messenger plugin:

-

Messenger interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
joinJoins a messaging room
leaveLeaves a messaging room
sendSends a message to a room
-

-

join method

-

Joins a messaging room.

-

Description

-

Use this method to join a room. If the specified room does not exist, then it will be created.

-

Also see: userupdate

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringUser name to join the room under (must not be empty)
params.roomstringName of the room to join (must not be empty)
params?.securestring(optional) Room security (must be one of the following: insecure, secure)
params?.aclarray(optional) Access-control list for secure room
params?.acl[#]string(optional) URL origin with possible wildcards
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.roomidstringUnique ID of the room
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
5ERROR_ILLEGAL_STATEUser name is already taken (i.e. the user has already joined the room)
30ERROR_BAD_REQUESTUser name or room name was invalid
24ERROR_PRIVILEGED_REQUESTRoom security errors
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.join",
-    "params": {
-        "user": "Bob",
-        "room": "Lounge",
-        "secure": "secure",
-        "acl": [
-            "https://*.github.io"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "roomid": "1e217990dd1cd4f66124"
-    }
-}
-
-

-

leave method

-

Leaves a messaging room.

-

Description

-

Use this method to leave a room. The room ID becomes invalid after this call. If there are no more users, the room will be destroyed and related resources freed.

-

Also see: userupdate

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomidstringID of the room to leave
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given room ID was invalid
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.leave",
-    "params": {
-        "roomid": "1e217990dd1cd4f66124"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

send method

-

Sends a message to a room.

-

Description

-

Use this method to send a message to a room.

-

Also see: message

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomidstringID of the room to send the message to
params.messagestringThe message content to send
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given room ID was invalid
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Messenger.1.send",
-    "params": {
-        "roomid": "1e217990dd1cd4f66124",
-        "message": "Hello!"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Messenger plugin:

-

Messenger interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
roomupdateNotifies about room status updates
userupdateNotifies about user status updates
messageNotifies about new messages in a room
-

-

roomupdate event

-

Notifies about room status updates.

-

Description

-

Register to this event to be notified about room status updates. Immediately after registering to this notification the listener will sequentially receive updates of all rooms that have been created so far.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.roomstringName of the room this notification relates to
params?.securestring(optional) Room security (must be one of the following: insecure, secure)
params.actionstringSpecifies the room status change, e.g. created or destroyed (must be one of the following: created, destroyed)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.roomupdate",
-    "params": {
-        "room": "Lounge",
-        "secure": "secure",
-        "action": "created"
-    }
-}
-
-

-

userupdate event

-

Notifies about user status updates.

-

Description

-

Register to this event to be notified about room status updates. Immediately after registering to this notification the listener will sequentially receive updates of all users that have joined the room so far.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringName of the user that has this notification relates to
params.actionstringSpecifies the user status change, e.g. join or leave a room (must be one of the following: joined, left)
-
-

The room ID argument shall be passed within the designator, e.g. 1e217990dd1cd4f66124.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "1e217990dd1cd4f66124.client.events.1.userupdate",
-    "params": {
-        "user": "Bob",
-        "action": "joined"
-    }
-}
-
-

-

message event

-

Notifies about new messages in a room.

-

Description

-

Register to this event to be notified about new messages in a room.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.userstringName of the user that has sent the message
params.messagestringContent of the message
-
-

The room ID argument shall be passed within the designator, e.g. 1e217990dd1cd4f66124.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "1e217990dd1cd4f66124.client.events.1.message",
-    "params": {
-        "user": "Bob",
-        "message": "Hello!"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/MonitorAPI/index.html b/MonitorAPI/index.html deleted file mode 100644 index b928c87..0000000 --- a/MonitorAPI/index.html +++ /dev/null @@ -1,2556 +0,0 @@ - - - - - - - - - - - - - - - - - Monitor API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Monitor API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Monitor interface for Thunder framework.

-

(Defined by Monitor.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Monitor interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Monitor JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Monitor interface:

-

Monitor interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
restartlimitsSets new restart limits for a service
resetstatsResets memory and process statistics for a single service watched by the Monitor
-

-

restartlimits method

-

Sets new restart limits for a service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringThe callsign of a service to reset measurements snapshot of
params.restartobject
params.restart.limitnumberMaximum number or restarts to be attempted
params.restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.restartlimits",
-    "params": {
-        "callsign": "WebServer",
-        "restart": {
-            "limit": 3,
-            "window": 60
-        }
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

resetstats method

-

Resets memory and process statistics for a single service watched by the Monitor.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringThe callsign of a service to reset statistics of
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobjectMeasurements for the service before reset
result.measurementsobjectMeasurements for the service
result.measurements.residentobjectResident memory measurement
result.measurements.resident.minnumberMinimal value measured
result.measurements.resident.maxnumberMaximal value measured
result.measurements.resident.averagenumberAverage of all measurements
result.measurements.resident.lastnumberLast measured value
result.measurements.allocatedobjectAllocated memory measurement
result.measurements.allocated.minnumberMinimal value measured
result.measurements.allocated.maxnumberMaximal value measured
result.measurements.allocated.averagenumberAverage of all measurements
result.measurements.allocated.lastnumberLast measured value
result.measurements.sharedobjectShared memory measurement
result.measurements.shared.minnumberMinimal value measured
result.measurements.shared.maxnumberMaximal value measured
result.measurements.shared.averagenumberAverage of all measurements
result.measurements.shared.lastnumberLast measured value
result.measurements.processobjectProcesses measurement
result.measurements.process.minnumberMinimal value measured
result.measurements.process.maxnumberMaximal value measured
result.measurements.process.averagenumberAverage of all measurements
result.measurements.process.lastnumberLast measured value
result.measurements.operationalbooleanWhether the service is up and running
result.measurements.countnumberNumber of measurements
result.observablestringA callsign of the watched service
result.restartobjectRestart limits for failures applying to the service
result.restart.limitnumberMaximum number or restarts to be attempted
result.restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.resetstats",
-    "params": {
-        "callsign": "WebServer"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "measurements": {
-            "resident": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "allocated": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "shared": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "process": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "operational": true,
-            "count": 100
-        },
-        "observable": "callsign",
-        "restart": {
-            "limit": 3,
-            "window": 60
-        }
-    }
-}
-
-

-

Properties

-

The following properties are provided by the Monitor interface:

-

Monitor interface properties:

- - - - - - - - - - - - - -
PropertyDescription
status ROService statistics
-

-

status property

-

Provides access to the service statistics.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayService statistics
(property)[#]object
(property)[#].measurementsobjectMeasurements for the service
(property)[#].measurements.residentobjectResident memory measurement
(property)[#].measurements.resident.minnumberMinimal value measured
(property)[#].measurements.resident.maxnumberMaximal value measured
(property)[#].measurements.resident.averagenumberAverage of all measurements
(property)[#].measurements.resident.lastnumberLast measured value
(property)[#].measurements.allocatedobjectAllocated memory measurement
(property)[#].measurements.allocated.minnumberMinimal value measured
(property)[#].measurements.allocated.maxnumberMaximal value measured
(property)[#].measurements.allocated.averagenumberAverage of all measurements
(property)[#].measurements.allocated.lastnumberLast measured value
(property)[#].measurements.sharedobjectShared memory measurement
(property)[#].measurements.shared.minnumberMinimal value measured
(property)[#].measurements.shared.maxnumberMaximal value measured
(property)[#].measurements.shared.averagenumberAverage of all measurements
(property)[#].measurements.shared.lastnumberLast measured value
(property)[#].measurements.processobjectProcesses measurement
(property)[#].measurements.process.minnumberMinimal value measured
(property)[#].measurements.process.maxnumberMaximal value measured
(property)[#].measurements.process.averagenumberAverage of all measurements
(property)[#].measurements.process.lastnumberLast measured value
(property)[#].measurements.operationalbooleanWhether the service is up and running
(property)[#].measurements.countnumberNumber of measurements
(property)[#].observablestringA callsign of the watched service
(property)[#].restartobjectRestart limits for failures applying to the service
(property)[#].restart.limitnumberMaximum number or restarts to be attempted
(property)[#].restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-
-

The callsign argument shall be passed as the index to the property, e.g. Monitor.1.status@WebServer. If omitted then all observed objects will be returned on read.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.status@WebServer"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "measurements": {
-                "resident": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "allocated": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "shared": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "process": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "operational": true,
-                "count": 100
-            },
-            "observable": "callsign",
-            "restart": {
-                "limit": 3,
-                "window": 60
-            }
-        }
-    ]
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Monitor interface:

-

Monitor interface events:

- - - - - - - - - - - - - -
EventDescription
actionSignals an action taken by the Monitor
-

-

action event

-

Signals an action taken by the Monitor.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringCallsign of the service the Monitor acted upon
params.actionstringThe action executed by the Monitor on a service. One of: "Activate", "Deactivate", "StoppedRestarting"
params.reasonstringA message describing the reason the action was taken
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.action",
-    "params": {
-        "callsign": "WebServer",
-        "action": "Deactivate",
-        "reason": "EXCEEDED_MEMORY"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/MonitorPlugin/index.html b/MonitorPlugin/index.html deleted file mode 100644 index 56d2fa5..0000000 --- a/MonitorPlugin/index.html +++ /dev/null @@ -1,2598 +0,0 @@ - - - - - - - - - - - - - - - - - Monitor Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Monitor Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A Monitor plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Monitor plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Monitor)
classnamestringClass name: Monitor
locatorstringLibrary name: libWPEFrameworkMonitor.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Monitor plugin:

-

Monitor interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
restartlimitsSets new restart limits for a service
resetstatsResets memory and process statistics for a single service watched by the Monitor
-

-

restartlimits method

-

Sets new restart limits for a service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringThe callsign of a service to reset measurements snapshot of
params.restartobject
params.restart.limitnumberMaximum number or restarts to be attempted
params.restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.restartlimits",
-    "params": {
-        "callsign": "WebServer",
-        "restart": {
-            "limit": 3,
-            "window": 60
-        }
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

resetstats method

-

Resets memory and process statistics for a single service watched by the Monitor.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringThe callsign of a service to reset statistics of
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobjectMeasurements for the service before reset
result.measurementsobjectMeasurements for the service
result.measurements.residentobjectResident memory measurement
result.measurements.resident.minnumberMinimal value measured
result.measurements.resident.maxnumberMaximal value measured
result.measurements.resident.averagenumberAverage of all measurements
result.measurements.resident.lastnumberLast measured value
result.measurements.allocatedobjectAllocated memory measurement
result.measurements.allocated.minnumberMinimal value measured
result.measurements.allocated.maxnumberMaximal value measured
result.measurements.allocated.averagenumberAverage of all measurements
result.measurements.allocated.lastnumberLast measured value
result.measurements.sharedobjectShared memory measurement
result.measurements.shared.minnumberMinimal value measured
result.measurements.shared.maxnumberMaximal value measured
result.measurements.shared.averagenumberAverage of all measurements
result.measurements.shared.lastnumberLast measured value
result.measurements.processobjectProcesses measurement
result.measurements.process.minnumberMinimal value measured
result.measurements.process.maxnumberMaximal value measured
result.measurements.process.averagenumberAverage of all measurements
result.measurements.process.lastnumberLast measured value
result.measurements.operationalbooleanWhether the service is up and running
result.measurements.countnumberNumber of measurements
result.observablestringA callsign of the watched service
result.restartobjectRestart limits for failures applying to the service
result.restart.limitnumberMaximum number or restarts to be attempted
result.restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.resetstats",
-    "params": {
-        "callsign": "WebServer"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "measurements": {
-            "resident": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "allocated": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "shared": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "process": {
-                "min": 0,
-                "max": 100,
-                "average": 50,
-                "last": 100
-            },
-            "operational": true,
-            "count": 100
-        },
-        "observable": "callsign",
-        "restart": {
-            "limit": 3,
-            "window": 60
-        }
-    }
-}
-
-

-

Properties

-

The following properties are provided by the Monitor plugin:

-

Monitor interface properties:

- - - - - - - - - - - - - -
PropertyDescription
status ROService statistics
-

-

status property

-

Provides access to the service statistics.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayService statistics
(property)[#]object
(property)[#].measurementsobjectMeasurements for the service
(property)[#].measurements.residentobjectResident memory measurement
(property)[#].measurements.resident.minnumberMinimal value measured
(property)[#].measurements.resident.maxnumberMaximal value measured
(property)[#].measurements.resident.averagenumberAverage of all measurements
(property)[#].measurements.resident.lastnumberLast measured value
(property)[#].measurements.allocatedobjectAllocated memory measurement
(property)[#].measurements.allocated.minnumberMinimal value measured
(property)[#].measurements.allocated.maxnumberMaximal value measured
(property)[#].measurements.allocated.averagenumberAverage of all measurements
(property)[#].measurements.allocated.lastnumberLast measured value
(property)[#].measurements.sharedobjectShared memory measurement
(property)[#].measurements.shared.minnumberMinimal value measured
(property)[#].measurements.shared.maxnumberMaximal value measured
(property)[#].measurements.shared.averagenumberAverage of all measurements
(property)[#].measurements.shared.lastnumberLast measured value
(property)[#].measurements.processobjectProcesses measurement
(property)[#].measurements.process.minnumberMinimal value measured
(property)[#].measurements.process.maxnumberMaximal value measured
(property)[#].measurements.process.averagenumberAverage of all measurements
(property)[#].measurements.process.lastnumberLast measured value
(property)[#].measurements.operationalbooleanWhether the service is up and running
(property)[#].measurements.countnumberNumber of measurements
(property)[#].observablestringA callsign of the watched service
(property)[#].restartobjectRestart limits for failures applying to the service
(property)[#].restart.limitnumberMaximum number or restarts to be attempted
(property)[#].restart.windownumberTime period (in seconds) within which failures must happen for the limit to be considered crossed
-
-

The callsign argument shall be passed as the index to the property, e.g. Monitor.1.status@WebServer. If omitted then all observed objects will be returned on read.

-
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Monitor.1.status@WebServer"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "measurements": {
-                "resident": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "allocated": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "shared": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "process": {
-                    "min": 0,
-                    "max": 100,
-                    "average": 50,
-                    "last": 100
-                },
-                "operational": true,
-                "count": 100
-            },
-            "observable": "callsign",
-            "restart": {
-                "limit": 3,
-                "window": 60
-            }
-        }
-    ]
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Monitor plugin:

-

Monitor interface events:

- - - - - - - - - - - - - -
EventDescription
actionSignals an action taken by the Monitor
-

-

action event

-

Signals an action taken by the Monitor.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.callsignstringCallsign of the service the Monitor acted upon
params.actionstringThe action executed by the Monitor on a service. One of: "Activate", "Deactivate", "StoppedRestarting"
params.reasonstringA message describing the reason the action was taken
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.action",
-    "params": {
-        "callsign": "WebServer",
-        "action": "Deactivate",
-        "reason": "EXCEEDED_MEMORY"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/NetflixAPI/index.html b/NetflixAPI/index.html deleted file mode 100644 index e87bcd8..0000000 --- a/NetflixAPI/index.html +++ /dev/null @@ -1,2374 +0,0 @@ - - - - - - - - - - - - - - - - - Netflix API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Netflix API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Netflix interface for Thunder framework.

-

(Defined by Netflix.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Netflix interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Netflix JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Netflix interface:

-

Netflix interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
factoryresetPerforms a reset to factory defaults
systemcommandSends a system command to Netflix
-

-

factoryreset method

-

Performs a reset to factory defaults.

-
-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLENetflix is unavailable
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.factoryreset"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

systemcommand method

-

Sends a system command to Netflix.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.commandstringCommand to send to Netflix
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLENetflix is unavailable
22ERROR_UNKNOWN_KEYUnknown command
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.systemcommand",
-    "params": {
-        "command": "exit"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Netflix interface:

-

Netflix interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
esn ROESN value
visibility WOCurrent Netflix visibility
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

esn property

-

Provides access to the ESN value.

-
-

This property is read-only.

-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringESN value
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLENetflix is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.esn"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "DADDAUFV2=00000000000000000000000000000001"
-}
-
-

-

visibility property

-

Provides access to the current Netflix visibility.

-
-

This property is write-only.

-

This API is deprecated and may be removed in the future. It is no longer recommended for use in new implementations.

-
-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent Netflix visibility (must be one of the following: visible, hidden)
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Netflix.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Netflix interface:

-

Netflix interface events:

- - - - - - - - - - - - - -
EventDescription
playbackchangeSignals playback status change
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

playbackchange event

-

Signals playback status change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.playingbooleanDetermines if the Netflix is in playing mode (true) or not playing (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.playbackchange",
-    "params": {
-        "playing": true
-    }
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/NetworkControlAPI/index.html b/NetworkControlAPI/index.html deleted file mode 100644 index 0d7eb90..0000000 --- a/NetworkControlAPI/index.html +++ /dev/null @@ -1,2641 +0,0 @@ - - - - - - - - - - - - - - - - - Network Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Network Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A NetworkControl interface for Thunder framework.

-

(Defined by NetworkControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the NetworkControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Network Control JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the NetworkControl interface:

-

NetworkControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
reloadReloads a static or non-static network interface adapter
requestReloads a non-static network interface adapter
assignReloads a static network interface adapter
flushFlushes a network interface adapter
-

-

reload method

-

Reloads a static or non-static network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.reload",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

request method

-

Reloads a non-static network interface adapter.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.request",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

assign method

-

Reloads a static network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.assign",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

flush method

-

Flushes a network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.flush",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the NetworkControl interface:

-

NetworkControl interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
networkNetwork information
dnsDNS addresses
upInterface up status
-

-

network property

-

Provides access to the network information.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNetwork information
(property)[#]object
(property)[#]?.interfacestring(optional) Network interface name
(property)[#]?.modestring(optional) Mode (must be one of the following: Manual, Static, Dynamic)
(property)[#]?.addressstring(optional) IP address
(property)[#]?.masknumber(optional) Network interface mask
(property)[#]?.gatewaystring(optional) Gateway address
(property)[#]?.broadcaststring(optional) Broadcast IP
(property)[#]?.dnsarray(optional) DNS addresses
(property)[#]?.dns[#]string(optional) DNS addresses
-
-

The interface argument shall be passed as the index to the property, e.g. NetworkControl.1.network@eth0. If network interface is not given, all network interfaces are returned.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.network@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "eth0",
-            "mode": "dynamic",
-            "address": "192.168.1.158",
-            "mask": 24,
-            "gateway": "192.168.1.1",
-            "broadcast": "192.168.1.255",
-            "dns": [
-                "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-            ]
-        }
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.network@eth0",
-    "params": [
-        {
-            "interface": "eth0",
-            "mode": "dynamic",
-            "address": "192.168.1.158",
-            "mask": 24,
-            "gateway": "192.168.1.1",
-            "broadcast": "192.168.1.255",
-            "dns": [
-                "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-            ]
-        }
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

dns property

-

Provides access to the DNS addresses.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayDNS addresses
(property)[#]stringDNS addresses
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.dns"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.dns",
-    "params": [
-        "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

up property

-

Provides access to the interface up status.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)booleanInterface up status
-
-

The interface argument shall be passed as the index to the property, e.g. NetworkControl.1.up@eth0.

-
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.up@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.up@eth0",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the NetworkControl interface:

-

NetworkControl interface events:

- - - - - - - - - - - - - -
EventDescription
connectionchangeNotifies about connection status (created, updated, removed, connected, ipassigned and connectionfailed)
-

-

connectionchange event

-

Notifies about connection status (created, updated, removed, connected, ipassigned and connectionfailed).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringNetwork interface name
params.addressstringIP Address of network interface, if it is connected
params.statusstringStatus of the interface, update, connected or not (must be one of the following: created, updated, removed, connected, ipassigned, connectionfailed)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.connectionchange",
-    "params": {
-        "name": "eth0",
-        "address": "192.168.1.10",
-        "status": "connected"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/NetworkControlPlugin/index.html b/NetworkControlPlugin/index.html deleted file mode 100644 index dff0bac..0000000 --- a/NetworkControlPlugin/index.html +++ /dev/null @@ -1,2703 +0,0 @@ - - - - - - - - - - - - - - - - - Network Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Network Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A NetworkControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the NetworkControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Network Control plugin provides functionality for network interface management.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: NetworkControl)
classnamestringClass name: NetworkControl
locatorstringLibrary name: libWPEFrameworkNetworkControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.dnsfilestring(optional) Path to DNS resolve file (default: /etc/resolv.conf)
configuration?.responsenumber(optional) Maximum response time out of the DHCP server
configuration?.retriesnumber(optional) Maximum number of retries to the DHCP server
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the NetworkControl plugin:

-

NetworkControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
reloadReloads a static or non-static network interface adapter
requestReloads a non-static network interface adapter
assignReloads a static network interface adapter
flushFlushes a network interface adapter
-

-

reload method

-

Reloads a static or non-static network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.reload",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

request method

-

Reloads a non-static network interface adapter.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.request",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

assign method

-

Reloads a static network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.assign",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

flush method

-

Flushes a network interface adapter.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.interfacestringNetwork interface name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavaliable network interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.flush",
-    "params": {
-        "interface": "eth0"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the NetworkControl plugin:

-

NetworkControl interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
networkNetwork information
dnsDNS addresses
upInterface up status
-

-

network property

-

Provides access to the network information.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNetwork information
(property)[#]object
(property)[#]?.interfacestring(optional) Network interface name
(property)[#]?.modestring(optional) Mode (must be one of the following: Manual, Static, Dynamic)
(property)[#]?.addressstring(optional) IP address
(property)[#]?.masknumber(optional) Network interface mask
(property)[#]?.gatewaystring(optional) Gateway address
(property)[#]?.broadcaststring(optional) Broadcast IP
(property)[#]?.dnsarray(optional) DNS addresses
(property)[#]?.dns[#]string(optional) DNS addresses
-
-

The interface argument shall be passed as the index to the property, e.g. NetworkControl.1.network@eth0. If network interface is not given, all network interfaces are returned.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.network@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "eth0",
-            "mode": "dynamic",
-            "address": "192.168.1.158",
-            "mask": 24,
-            "gateway": "192.168.1.1",
-            "broadcast": "192.168.1.255",
-            "dns": [
-                "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-            ]
-        }
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.network@eth0",
-    "params": [
-        {
-            "interface": "eth0",
-            "mode": "dynamic",
-            "address": "192.168.1.158",
-            "mask": 24,
-            "gateway": "192.168.1.1",
-            "broadcast": "192.168.1.255",
-            "dns": [
-                "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-            ]
-        }
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

dns property

-

Provides access to the DNS addresses.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayDNS addresses
(property)[#]stringDNS addresses
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.dns"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.dns",
-    "params": [
-        "['192.168.1.1', 'www.google.com', '8.8.8.8']"
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

up property

-

Provides access to the interface up status.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)booleanInterface up status
-
-

The interface argument shall be passed as the index to the property, e.g. NetworkControl.1.up@eth0.

-
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnavailable network interface
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.up@eth0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkControl.1.up@eth0",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the NetworkControl plugin:

-

NetworkControl interface events:

- - - - - - - - - - - - - -
EventDescription
connectionchangeNotifies about connection status (created, updated, removed, connected, ipassigned and connectionfailed)
-

-

connectionchange event

-

Notifies about connection status (created, updated, removed, connected, ipassigned and connectionfailed).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringNetwork interface name
params.addressstringIP Address of network interface, if it is connected
params.statusstringStatus of the interface, update, connected or not (must be one of the following: created, updated, removed, connected, ipassigned, connectionfailed)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.connectionchange",
-    "params": {
-        "name": "eth0",
-        "address": "192.168.1.10",
-        "status": "connected"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/NetworkToolsAPI/index.html b/NetworkToolsAPI/index.html deleted file mode 100644 index d8db9ba..0000000 --- a/NetworkToolsAPI/index.html +++ /dev/null @@ -1,2178 +0,0 @@ - - - - - - - - - - - - - - - - - NetworkTools API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

NetworkTools API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A NetworkTools interface for Thunder framework.

-

(Defined with Exchange::INetworkTools in INetworkTools.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the NetworkTools interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

NetworkTools JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the NetworkTools interface:

-

NetworkTools interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange pingPing the given destination with ICMP packages
exchange tracerouteTraceRoute to the given destination with ICMP packages
-

-

exchange_ping method

-

Ping the given destination with ICMP packages.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.destinationstring
params.timeoutinsecondsinteger
params.countinteger
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_NONE,ERROR_INPROGRES means an icmp check is already in progress .
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkTools.1.exchange_ping",
-    "params": {
-        "destination": "...",
-        "timeoutinseconds": 0,
-        "count": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

exchange_traceroute method

-

TraceRoute to the given destination with ICMP packages.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.destinationstring
params.timeoutinsecondsinteger
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_NONE,ERROR_INPROGRES means an icmp check is already in progress
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "NetworkTools.1.exchange_traceroute",
-    "params": {
-        "destination": "...",
-        "timeoutinseconds": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the NetworkTools interface:

-

NetworkTools interface events:

- - - - - - - - - - - - - -
EventDescription
exchange reportSignals an message from a given host
-

-

exchange_report event

-

Signals an message from a given host.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.sourcestringis the NodeId of the system that send the metadta presented in the next field
params.metadatastringdepending on the tool started, this JSON string will contain additiona information on this notification
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_report",
-    "params": {
-        "source": "...",
-        "metadata": "..."
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/OpenCDMiAPI/index.html b/OpenCDMiAPI/index.html deleted file mode 100644 index e892ed9..0000000 --- a/OpenCDMiAPI/index.html +++ /dev/null @@ -1,2076 +0,0 @@ - - - - - - - - - - - - - - - - - OpenCDMi API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

OpenCDMi API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A OCDM interface for Thunder framework.

-

(Defined by OCDM.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the OCDM interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

OpenCDMi JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the OCDM interface:

-

OCDM interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
drms ROSupported DRM systems
keysystems RODRM key systems
-

-

drms property

-

Provides access to the supported DRM systems.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arraySupported DRM systems
(property)[#]object
(property)[#].namestringName of the DRM
(property)[#].keysystemsarray
(property)[#].keysystems[#]stringIdentifier of a key system
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "OCDM.1.drms"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "PlayReady",
-            "keysystems": [
-                "com.microsoft.playready"
-            ]
-        }
-    ]
-}
-
-

-

keysystems property

-

Provides access to the DRM key systems.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayDRM key systems
(property)[#]stringIdentifier of a key system
-
-

The drm system argument shall be passed as the index to the property, e.g. OCDM.1.keysystems@PlayReady.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTInvalid DRM name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "OCDM.1.keysystems@PlayReady"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "com.microsoft.playready"
-    ]
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/OpenCDMiPlugin/index.html b/OpenCDMiPlugin/index.html deleted file mode 100644 index f355e5d..0000000 --- a/OpenCDMiPlugin/index.html +++ /dev/null @@ -1,2168 +0,0 @@ - - - - - - - - - - - - - - - - - OpenCDMi Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

OpenCDMi Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A OCDM plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the OCDM plugin. It includes detailed specification about its configuration 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: OCDM)
classnamestringClass name: OCDM
locatorstringLibrary name: libWPEFrameworkOCDM.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.locationstring(optional) Location
configuration?.connectorstring(optional) Connector
configuration?.sharepathstring(optional) Sharepath
configuration?.sharesizestring(optional) Sharesize
configuration?.systemsarray(optional) List of key systems
configuration?.systems[#]object(optional) System properties
configuration?.systems[#]?.namestring(optional) Name
configuration?.systems[#]?.designatorsarray(optional)
configuration?.systems[#]?.designators[#]object(optional) designator
configuration?.systems[#]?.designators[#].namestring
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Properties

-

The following properties are provided by the OCDM plugin:

-

OCDM interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
drms ROSupported DRM systems
keysystems RODRM key systems
-

-

drms property

-

Provides access to the supported DRM systems.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arraySupported DRM systems
(property)[#]object
(property)[#].namestringName of the DRM
(property)[#].keysystemsarray
(property)[#].keysystems[#]stringIdentifier of a key system
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "OCDM.1.drms"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "PlayReady",
-            "keysystems": [
-                "com.microsoft.playready"
-            ]
-        }
-    ]
-}
-
-

-

keysystems property

-

Provides access to the DRM key systems.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayDRM key systems
(property)[#]stringIdentifier of a key system
-
-

The drm system argument shall be passed as the index to the property, e.g. OCDM.1.keysystems@PlayReady.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTInvalid DRM name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "OCDM.1.keysystems@PlayReady"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "com.microsoft.playready"
-    ]
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/OutputAPI/index.html b/OutputAPI/index.html deleted file mode 100644 index 5a5432f..0000000 --- a/OutputAPI/index.html +++ /dev/null @@ -1,2178 +0,0 @@ - - - - - - - - - - - - - - - - - Output API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Output API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Output interface for Thunder framework.

-

(Defined with Exchange::Dolby::IOutput in IDolby.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Output interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Output JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the Output interface:

-

Dolby Output interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
dolby atmosmetadata ROAtmos capabilities of Sink
dolby soundmode ROSound Mode - Mono/Stereo/Surround
dolby enableatmosoutput WOEnable Atmos Audio Output
dolby modeDolby Mode
-

-

dolby_atmosmetadata property

-

Provides access to the atmos capabilities of Sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
supportedbooleanAtmos capabilities of Sink
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Output.1.dolby_atmosmetadata"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

dolby_soundmode property

-

Provides access to the sound Mode - Mono/Stereo/Surround.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
modestringSound Mode - Mono/Stereo/Surround (must be one of the following: Unknown, Mono, Stereo, Surround, Passthru, SoundmodeAuto)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Output.1.dolby_soundmode"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unknown"
-}
-
-

-

dolby_enableatmosoutput property

-

Provides access to the enable Atmos Audio Output.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
enablebooleanenable/disable
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Output.1.dolby_enableatmosoutput",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

dolby_mode property

-

Provides access to the dolby Mode.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
modestringdolby mode type (must be one of the following: DigitalPcm, DigitalPlus, DigitalAc3, Auto, DigitalPassthrough, Ms12)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Output.1.dolby_mode"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "DigitalPcm"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Output.1.dolby_mode",
-    "params": "DigitalPcm"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Output interface:

-

Dolby Output interface events:

- - - - - - - - - - - - - -
EventDescription
dolby audiomodechanged
-

-

dolby_audiomodechanged event

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modestring(must be one of the following: Unknown, Mono, Stereo, Surround, Passthru, SoundmodeAuto)
params.enabledboolean
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.dolby_audiomodechanged",
-    "params": {
-        "mode": "Unknown",
-        "enabled": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PackagerAPI/index.html b/PackagerAPI/index.html deleted file mode 100644 index ca7f97e..0000000 --- a/PackagerAPI/index.html +++ /dev/null @@ -1,2089 +0,0 @@ - - - - - - - - - - - - - - - - - Packager API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Packager API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Packager interface for Thunder framework.

-

(Defined by Packager.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Packager interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Packager JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Packager interface:

-

Packager interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
installInstalls a package given by a name, an URL or a file path
synchronizeSynchronizes repository manifest with a repository
-

-

install method

-

Installs a package given by a name, an URL or a file path.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.packagestringA name, an URL or a file path of the package to install
params?.versionstring(optional) Version of the package to install
params?.architecturestring(optional) Architecture of the package to install
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the function is called while other installation/synchronization is already in progress.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Packager.1.install",
-    "params": {
-        "package": "wpeframework-plugin-netflix",
-        "version": "1.0",
-        "architecture": "arm"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

synchronize method

-

Synchronizes repository manifest with a repository.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the function is called while other installation/synchronization is already in progress.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Packager.1.synchronize"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PackagerPlugin/index.html b/PackagerPlugin/index.html deleted file mode 100644 index b0486dd..0000000 --- a/PackagerPlugin/index.html +++ /dev/null @@ -1,2131 +0,0 @@ - - - - - - - - - - - - - - - - - Packager Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Packager Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Packager plugin for Thunder framework.

-

Table of Contents

- -

-

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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Packager)
classnamestringClass name: Packager
locatorstringLibrary name: libWPEFrameworkPackager.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Packager plugin:

-

Packager interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
installInstalls a package given by a name, an URL or a file path
synchronizeSynchronizes repository manifest with a repository
-

-

install method

-

Installs a package given by a name, an URL or a file path.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.packagestringA name, an URL or a file path of the package to install
params?.versionstring(optional) Version of the package to install
params?.architecturestring(optional) Architecture of the package to install
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the function is called while other installation/synchronization is already in progress.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Packager.1.install",
-    "params": {
-        "package": "wpeframework-plugin-netflix",
-        "version": "1.0",
-        "architecture": "arm"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

synchronize method

-

Synchronizes repository manifest with a repository.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the function is called while other installation/synchronization is already in progress.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Packager.1.synchronize"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PerformanceMonitorAPI/index.html b/PerformanceMonitorAPI/index.html deleted file mode 100644 index 43b1dc6..0000000 --- a/PerformanceMonitorAPI/index.html +++ /dev/null @@ -1,2490 +0,0 @@ - - - - - - - - - - - - - - - - - Performance Monitor API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Performance Monitor API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A PerformanceMonitor interface for Thunder framework.

-

(Defined by PerformanceMonitor.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the PerformanceMonitor interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Performance Monitor JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the PerformanceMonitor interface:

-

PerformanceMonitor interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
clearClear all performance data collected
sendInterface to test send data
receiveInterface to test receive data
exchangeInterface to test exchange data
-

-

clear method

-

Clear all performance data collected.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.clear"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

send method

-

Interface to test send data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.datastring(optional) Any string data upto the size specified in the length
params?.lengthnumber(optional)
params?.durationnumber(optional)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberSize of data received by the jsonrpc interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.send",
-    "params": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

receive method

-

Interface to test receive data.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsnumberSize of data to be provided by the jsonrpc interface
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result?.datastring(optional) Any string data upto the size specified in the length
result?.lengthnumber(optional)
result?.durationnumber(optional)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.receive",
-    "params": 0
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

-

exchange method

-

Interface to test exchange data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.datastring(optional) Any string data upto the size specified in the length
params?.lengthnumber(optional)
params?.durationnumber(optional)
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result?.datastring(optional) Any string data upto the size specified in the length
result?.lengthnumber(optional)
result?.durationnumber(optional)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.exchange",
-    "params": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

-

Properties

-

The following properties are provided by the PerformanceMonitor interface:

-

PerformanceMonitor interface properties:

- - - - - - - - - - - - - -
PropertyDescription
measurement RORetrieve the performance measurement against given package size
-

-

measurement property

-

Provides access to the retrieve the performance measurement against given package size. Measurements will be provided in milliseconds.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectRetrieve the performance measurement against given package size. Measurements will be provided in milliseconds
(property).serializationobjectTime taken to complete serialization
(property).serialization?.minimumnumber(optional)
(property).serialization?.maximumnumber(optional)
(property).serialization?.averagenumber(optional)
(property).serialization?.countnumber(optional)
(property).deserializationobjectTime taken to complete deserialization
(property).deserialization?.minimumnumber(optional)
(property).deserialization?.maximumnumber(optional)
(property).deserialization?.averagenumber(optional)
(property).deserialization?.countnumber(optional)
(property).executionobjectTime taken to complete execution
(property).execution?.minimumnumber(optional)
(property).execution?.maximumnumber(optional)
(property).execution?.averagenumber(optional)
(property).execution?.countnumber(optional)
(property).threadpoolobjectTime taken to complete threadpool wait
(property).threadpool?.minimumnumber(optional)
(property).threadpool?.maximumnumber(optional)
(property).threadpool?.averagenumber(optional)
(property).threadpool?.countnumber(optional)
(property).communicationobjectTime taken to complete communication
(property).communication?.minimumnumber(optional)
(property).communication?.maximumnumber(optional)
(property).communication?.averagenumber(optional)
(property).communication?.countnumber(optional)
(property).totalobjectTime taken to complete whole jsonrpc process
(property).total?.minimumnumber(optional)
(property).total?.maximumnumber(optional)
(property).total?.averagenumber(optional)
(property).total?.countnumber(optional)
-
-

The package size argument shall be passed as the index to the property, e.g. PerformanceMonitor.1.measurement@1000. Size of package whose statistics info has to be retrieved.

-
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.measurement@1000"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "serialization": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "deserialization": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "execution": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "threadpool": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "communication": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "total": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        }
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PerformanceMonitorPlugin/index.html b/PerformanceMonitorPlugin/index.html deleted file mode 100644 index 2ce995b..0000000 --- a/PerformanceMonitorPlugin/index.html +++ /dev/null @@ -1,2532 +0,0 @@ - - - - - - - - - - - - - - - - - Performance Monitor Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Performance Monitor Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A PerformanceMonitor plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the PerformanceMonitor 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Retrieve the performance measurement against given package size.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: PerformanceMonitor)
classnamestringClass name: PerformanceMonitor
locatorstringLibrary name: libWPEFrameworkPerformanceMonitor.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the PerformanceMonitor plugin:

-

PerformanceMonitor interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
clearClear all performance data collected
sendInterface to test send data
receiveInterface to test receive data
exchangeInterface to test exchange data
-

-

clear method

-

Clear all performance data collected.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.clear"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

send method

-

Interface to test send data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.datastring(optional) Any string data upto the size specified in the length
params?.lengthnumber(optional)
params?.durationnumber(optional)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberSize of data received by the jsonrpc interface
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.send",
-    "params": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

receive method

-

Interface to test receive data.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsnumberSize of data to be provided by the jsonrpc interface
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result?.datastring(optional) Any string data upto the size specified in the length
result?.lengthnumber(optional)
result?.durationnumber(optional)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.receive",
-    "params": 0
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

-

exchange method

-

Interface to test exchange data.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.datastring(optional) Any string data upto the size specified in the length
params?.lengthnumber(optional)
params?.durationnumber(optional)
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result?.datastring(optional) Any string data upto the size specified in the length
result?.lengthnumber(optional)
result?.durationnumber(optional)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.exchange",
-    "params": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "data": "abababababab",
-        "length": 0,
-        "duration": 0
-    }
-}
-
-

-

Properties

-

The following properties are provided by the PerformanceMonitor plugin:

-

PerformanceMonitor interface properties:

- - - - - - - - - - - - - -
PropertyDescription
measurement RORetrieve the performance measurement against given package size
-

-

measurement property

-

Provides access to the retrieve the performance measurement against given package size. Measurements will be provided in milliseconds.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectRetrieve the performance measurement against given package size. Measurements will be provided in milliseconds
(property).serializationobjectTime taken to complete serialization
(property).serialization?.minimumnumber(optional)
(property).serialization?.maximumnumber(optional)
(property).serialization?.averagenumber(optional)
(property).serialization?.countnumber(optional)
(property).deserializationobjectTime taken to complete deserialization
(property).deserialization?.minimumnumber(optional)
(property).deserialization?.maximumnumber(optional)
(property).deserialization?.averagenumber(optional)
(property).deserialization?.countnumber(optional)
(property).executionobjectTime taken to complete execution
(property).execution?.minimumnumber(optional)
(property).execution?.maximumnumber(optional)
(property).execution?.averagenumber(optional)
(property).execution?.countnumber(optional)
(property).threadpoolobjectTime taken to complete threadpool wait
(property).threadpool?.minimumnumber(optional)
(property).threadpool?.maximumnumber(optional)
(property).threadpool?.averagenumber(optional)
(property).threadpool?.countnumber(optional)
(property).communicationobjectTime taken to complete communication
(property).communication?.minimumnumber(optional)
(property).communication?.maximumnumber(optional)
(property).communication?.averagenumber(optional)
(property).communication?.countnumber(optional)
(property).totalobjectTime taken to complete whole jsonrpc process
(property).total?.minimumnumber(optional)
(property).total?.maximumnumber(optional)
(property).total?.averagenumber(optional)
(property).total?.countnumber(optional)
-
-

The package size argument shall be passed as the index to the property, e.g. PerformanceMonitor.1.measurement@1000. Size of package whose statistics info has to be retrieved.

-
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PerformanceMonitor.1.measurement@1000"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "serialization": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "deserialization": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "execution": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "threadpool": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "communication": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        },
-        "total": {
-            "minimum": 0,
-            "maximum": 0,
-            "average": 0,
-            "count": 0
-        }
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PlayerInfoAPI/index.html b/PlayerInfoAPI/index.html deleted file mode 100644 index 28154e0..0000000 --- a/PlayerInfoAPI/index.html +++ /dev/null @@ -1,2061 +0,0 @@ - - - - - - - - - - - - - - - - - Player Info API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Player Info API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A PlayerInfo interface for Thunder framework.

-

(Defined by PlayerInfo.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the PlayerInfo interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

PlayerInfo JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the PlayerInfo interface:

-

PlayerInfo interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
playerinfo ROPlayer general information
dolbymodeDolby output mode
-

-

playerinfo property

-

Provides access to the player general information.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectPlayer general information
(property)?.audioarray(optional)
(property)?.audio[#]string(optional) Audio Codec supported by the platform (must be one of the following: Undefined, AAC, AC3, AC3Plus, DTS, MPEG1, MPEG2, MPEG3, MPEG4, OPUS, VorbisOGG, WAV)
(property)?.videoarray(optional)
(property)?.video[#]string(optional) Video Codec supported by the platform (must be one of the following: Undefined, H263, H264, H265, H26510, MPEG, VP8, VP9, VP10)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.playerinfo"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "audio": [
-            "AudioAAC"
-        ],
-        "video": [
-            "VideoH264"
-        ]
-    }
-}
-
-

-

dolbymode property

-

Provides access to the dolby output mode.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringDolby output mode (must be one of the following: DIGITAL_PCM, DIGITAL_PLUS, DIGITAL_AC3, AUTO)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolbymode"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "DIGITAL_PCM"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolbymode",
-    "params": "DIGITAL_PCM"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PlayerInfoPlugin/index.html b/PlayerInfoPlugin/index.html deleted file mode 100644 index 6d0cb5d..0000000 --- a/PlayerInfoPlugin/index.html +++ /dev/null @@ -1,2425 +0,0 @@ - - - - - - - - - - - - - - - - - Player Info Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Player Info Plugin

-

Version: 1.0

-

Status: ⚫⚫⚪

-

A PlayerInfo plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the PlayerInfo plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: PlayerInfo)
classnamestringClass name: PlayerInfo
locatorstringLibrary name: libWPEPlayerInfo.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the PlayerInfo plugin:

-

PlayerProperties interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange audiocodecs
exchange videocodecs
-

-

exchange_audiocodecs method

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecarray
codec[#]string(must be one of the following: AudioUndefined, AudioAac, AudioAc3, AudioAc3Plus, AudioDts, AudioMpeg1, AudioMpeg2, AudioMpeg3, AudioMpeg4, AudioOpus, AudioVorbisOgg, AudioWav)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.exchange_audiocodecs"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "AudioUndefined"
-    ]
-}
-
-

-

exchange_videocodecs method

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecarray
codec[#]string(must be one of the following: VideoUndefined, VideoH263, VideoH264, VideoH265, VideoH26510, VideoMpeg, VideoVp8, VideoVp9, VideoVp10)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.exchange_videocodecs"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "VideoUndefined"
-    ]
-}
-
-

-

Properties

-

The following properties are provided by the PlayerInfo plugin:

-

PlayerProperties interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange resolution ROCurrent Video playback resolution
exchange isaudioequivalenceenabled ROChecks Loudness Equivalence in platform
-

Dolby Output interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
dolby atmosmetadata ROAtmos capabilities of Sink
dolby soundmode ROSound Mode - Mono/Stereo/Surround
dolby enableatmosoutput WOEnable Atmos Audio Output
dolby modeDolby Mode
-

-

exchange_resolution property

-

Provides access to the current Video playback resolution.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
resstringresolution (must be one of the following: ResolutionUnknown, Resolution480I24, Resolution480I25, Resolution480I30, Resolution480I50, Resolution480I, Resolution480P24, Resolution480P25, Resolution480P30, Resolution480P50, Resolution480P, Resolution576I24, Resolution576I25, Resolution576I30, Resolution576I50, Resolution576I, Resolution576P24, Resolution576P25, Resolution576P30, Resolution576P50, Resolution576P, Resolution720P24, Resolution720P25, Resolution720P30, Resolution720P50, Resolution720P, Resolution1080I24, Resolution1080I25, Resolution1080I30, Resolution1080I50, Resolution1080I, Resolution1080P24, Resolution1080P25, Resolution1080P30, Resolution1080P50, Resolution1080P, Resolution2160P24, Resolution2160P25, Resolution2160P30, Resolution2160P50, Resolution2160P60, Resolution2160P)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.exchange_resolution"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "ResolutionUnknown"
-}
-
-

-

exchange_isaudioequivalenceenabled property

-

Provides access to the checks Loudness Equivalence in platform.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
aebooleanenabled/disabled
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.exchange_isaudioequivalenceenabled"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

dolby_atmosmetadata property

-

Provides access to the atmos capabilities of Sink.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
supportedbooleanAtmos capabilities of Sink
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolby_atmosmetadata"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

-

dolby_soundmode property

-

Provides access to the sound Mode - Mono/Stereo/Surround.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
modestringSound Mode - Mono/Stereo/Surround (must be one of the following: Unknown, Mono, Stereo, Surround, Passthru, SoundmodeAuto)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolby_soundmode"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Unknown"
-}
-
-

-

dolby_enableatmosoutput property

-

Provides access to the enable Atmos Audio Output.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
enablebooleanenable/disable
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolby_enableatmosoutput",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

dolby_mode property

-

Provides access to the dolby Mode.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
modestringdolby mode type (must be one of the following: DigitalPcm, DigitalPlus, DigitalAc3, Auto, DigitalPassthrough, Ms12)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolby_mode"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "DigitalPcm"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerInfo.1.dolby_mode",
-    "params": "DigitalPcm"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the PlayerInfo plugin:

-

Dolby Output interface events:

- - - - - - - - - - - - - -
EventDescription
dolby audiomodechanged
-

-

dolby_audiomodechanged event

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modestring(must be one of the following: Unknown, Mono, Stereo, Surround, Passthru, SoundmodeAuto)
params.enabledboolean
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.dolby_audiomodechanged",
-    "params": {
-        "mode": "Unknown",
-        "enabled": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PlayerPropertiesAPI/index.html b/PlayerPropertiesAPI/index.html deleted file mode 100644 index d84fc5c..0000000 --- a/PlayerPropertiesAPI/index.html +++ /dev/null @@ -1,2131 +0,0 @@ - - - - - - - - - - - - - - - - - PlayerProperties API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

PlayerProperties API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A PlayerProperties interface for Thunder framework.

-

(Defined with Exchange::IPlayerProperties in IPlayerInfo.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the PlayerProperties interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

PlayerProperties JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the PlayerProperties interface:

-

PlayerProperties interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
exchange audiocodecs
exchange videocodecs
-

-

exchange_audiocodecs method

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecarray
codec[#]string(must be one of the following: AudioUndefined, AudioAac, AudioAc3, AudioAc3Plus, AudioDts, AudioMpeg1, AudioMpeg2, AudioMpeg3, AudioMpeg4, AudioOpus, AudioVorbisOgg, AudioWav)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerProperties.1.exchange_audiocodecs"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "AudioUndefined"
-    ]
-}
-
-

-

exchange_videocodecs method

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
codecarray
codec[#]string(must be one of the following: VideoUndefined, VideoH263, VideoH264, VideoH265, VideoH26510, VideoMpeg, VideoVp8, VideoVp9, VideoVp10)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerProperties.1.exchange_videocodecs"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "VideoUndefined"
-    ]
-}
-
-

-

Properties

-

The following properties are provided by the PlayerProperties interface:

-

PlayerProperties interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange resolution ROCurrent Video playback resolution
exchange isaudioequivalenceenabled ROChecks Loudness Equivalence in platform
-

-

exchange_resolution property

-

Provides access to the current Video playback resolution.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
resstringresolution (must be one of the following: ResolutionUnknown, Resolution480I24, Resolution480I25, Resolution480I30, Resolution480I50, Resolution480I, Resolution480P24, Resolution480P25, Resolution480P30, Resolution480P50, Resolution480P, Resolution576I24, Resolution576I25, Resolution576I30, Resolution576I50, Resolution576I, Resolution576P24, Resolution576P25, Resolution576P30, Resolution576P50, Resolution576P, Resolution720P24, Resolution720P25, Resolution720P30, Resolution720P50, Resolution720P, Resolution1080I24, Resolution1080I25, Resolution1080I30, Resolution1080I50, Resolution1080I, Resolution1080P24, Resolution1080P25, Resolution1080P30, Resolution1080P50, Resolution1080P, Resolution2160P24, Resolution2160P25, Resolution2160P30, Resolution2160P50, Resolution2160P60, Resolution2160P)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerProperties.1.exchange_resolution"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "ResolutionUnknown"
-}
-
-

-

exchange_isaudioequivalenceenabled property

-

Provides access to the checks Loudness Equivalence in platform.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
aebooleanenabled/disabled
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "PlayerProperties.1.exchange_isaudioequivalenceenabled"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PowerAPI/index.html b/PowerAPI/index.html deleted file mode 100644 index cd07beb..0000000 --- a/PowerAPI/index.html +++ /dev/null @@ -1,2097 +0,0 @@ - - - - - - - - - - - - - - - - - Power API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Power API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Power interface for Thunder framework.

-

(Defined by Power.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Power interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Power JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Power interface:

-

Power interface methods:

- - - - - - - - - - - - - -
MethodDescription
setSets power state
-

-

set method

-

Sets power state.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.powerstatestringPower state (must be one of the following: on, activestandby, passivestandby, suspendtoram, hibernate, poweroff)
params.timeoutnumberTime to wait for power state change
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALGeneral failure
29ERROR_DUPLICATE_KEYTrying to set the same power mode
5ERROR_ILLEGAL_STATEPower state is not supported
30ERROR_BAD_REQUESTInvalid Power state or Bad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Power.1.set",
-    "params": {
-        "powerstate": "on",
-        "timeout": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Power interface:

-

Power interface properties:

- - - - - - - - - - - - - -
PropertyDescription
state ROPower state
-

-

state property

-

Provides access to the power state.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringPower state (must be one of the following: on, activestandby, passivestandby, suspendtoram, hibernate, poweroff)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Power.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "on"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/PowerPlugin/index.html b/PowerPlugin/index.html deleted file mode 100644 index 1b346ca..0000000 --- a/PowerPlugin/index.html +++ /dev/null @@ -1,2169 +0,0 @@ - - - - - - - - - - - - - - - - - Power Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Power Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Power plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Power 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Power)
classnamestringClass name: Power
locatorstringLibrary name: libWPEFrameworkPower.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.powerkeynumber(optional) Key associated as powerkey
configuration?.offmodestring(optional) Type of offmode
configuration?.controlboolean(optional) Enable control clients
configuration?.gpiopinnumber(optional) GGIO pin (Broadcom)
configuration?.gpiotypesting(optional) GPIO type (Broadcom)
configuration?.statechangenumber(optional) Statechange (Broadcom)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Power plugin:

-

Power interface methods:

- - - - - - - - - - - - - -
MethodDescription
setSets power state
-

-

set method

-

Sets power state.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.powerstatestringPower state (must be one of the following: on, activestandby, passivestandby, suspendtoram, hibernate, poweroff)
params.timeoutnumberTime to wait for power state change
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALGeneral failure
29ERROR_DUPLICATE_KEYTrying to set the same power mode
5ERROR_ILLEGAL_STATEPower state is not supported
30ERROR_BAD_REQUESTInvalid Power state or Bad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Power.1.set",
-    "params": {
-        "powerstate": "on",
-        "timeout": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Power plugin:

-

Power interface properties:

- - - - - - - - - - - - - -
PropertyDescription
state ROPower state
-

-

state property

-

Provides access to the power state.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringPower state (must be one of the following: on, activestandby, passivestandby, suspendtoram, hibernate, poweroff)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Power.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "on"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ProcessContainers/index.html b/ProcessContainers/index.html deleted file mode 100644 index 4a1add8..0000000 --- a/ProcessContainers/index.html +++ /dev/null @@ -1,2440 +0,0 @@ - - - - - - - - - - - - - - - - - Process Containers - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Process Containers

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Containers interface for Thunder framework.

-

(Defined by Containers.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Containers interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Process Containers JSON-RPC API.

-

-

Methods

-

The following methods are provided by the Containers interface:

-

Containers interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
startStarts a new container
stopStops a container
-

-

start method

-

Starts a new container.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.namestring(optional) Name of container
params?.commandstring(optional) Command that will be started in the container
params?.parametersarray(optional) List of parameters supplied to command
params?.parameters[#]string(optional)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
1ERROR_GENERALFailed to start container
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.start",
-    "params": {
-        "name": "ContainerName",
-        "command": "lsof",
-        "parameters": [
-            "-i"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

stop method

-

Stops a container.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.namestringName of container
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.stop",
-    "params": {
-        "name": "ContainerName"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Containers interface:

-

Containers interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
containers ROList of active containers
networks ROList of network interfaces of the container
memory ROMemory taken by container
cpu ROCPU time
-

-

containers property

-

Provides access to the list of active containers.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of names of all containers
(property)[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.containers"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "ContainerName"
-    ]
-}
-
-

-

networks property

-

Provides access to the list of network interfaces of the container.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of all network interfaces related to the container
(property)[#]objectReturns networks associated with the container
(property)[#]?.interfacestring(optional) Interface name
(property)[#]?.ipsarray(optional) List of ip addresses
(property)[#]?.ips[#]string(optional) IP address
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.networks@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.networks@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "interface": "veth3NF06K",
-            "ips": [
-                "192.168.0.12"
-            ]
-        }
-    ]
-}
-
-

-

memory property

-

Provides access to the memory taken by container.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMemory allocated by the container, in bytes
(property)?.allocatednumber(optional) Memory allocated by container
(property)?.residentnumber(optional) Resident memory of the container
(property)?.sharednumber(optional) Shared memory in the container
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.memory@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.memory@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "allocated": 0,
-        "resident": 0,
-        "shared": 0
-    }
-}
-
-

-

cpu property

-

Provides access to the CPU time.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectCPU time spent on running the container, in nanoseconds
(property)?.totalnumber(optional) CPU-time spent on container, in nanoseconds
(property)?.coresarray(optional) Time spent on each cpu core, in nanoseconds
(property)?.cores[#]number(optional)
-
-

The name argument shall be passed as the index to the property, e.g. Containers.1.cpu@ContainerName.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEContainer not found
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Containers.1.cpu@ContainerName"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "total": 2871287421,
-        "cores": [
-            2871287421
-        ]
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ProcessMonitorPlugin/index.html b/ProcessMonitorPlugin/index.html deleted file mode 100644 index 9e77fc2..0000000 --- a/ProcessMonitorPlugin/index.html +++ /dev/null @@ -1,1958 +0,0 @@ - - - - - - - - - - - - - - - - - ProcessMonitor Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

ProcessMonitor Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A ProcessMonitor plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the ProcessMonitor 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

This ProcessMonitor plugin monitors any deactivated plugin and kills the associate process if it exists even after predefined time.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: ProcessMonitor)
classnamestringClass name: ProcessMonitor
locatorstringLibrary name: libWPEFrameworkProcessMonitor.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ProvisioningAPI/index.html b/ProvisioningAPI/index.html deleted file mode 100644 index 755cb4d..0000000 --- a/ProvisioningAPI/index.html +++ /dev/null @@ -1,2284 +0,0 @@ - - - - - - - - - - - - - - - - - Provisioning API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Provisioning API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Provisioning interface for Thunder framework.

-

(Defined by Provisioning.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Provisioning interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Provisioning JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Provisioning interface:

-

Provisioning interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
provisionTrigers platform provision process
indexSet the index for a provisioning key
-

-

provision method

-

Trigers platform provision process.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSProvisioning in progress
2ERROR_UNAVAILABLEProvisioning Back Office Client not available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Provisioning.1.provision"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

index method

-

Set the index for a provisioning key.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.labelstring(optional) The label name for which the index should be changed
params?.indexnumber(optional) Index to be used for the key
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEProvisioning Back Office Client not available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Provisioning.1.index",
-    "params": {
-        "label": "cobalt",
-        "index": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Provisioning interface:

-

Provisioning interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
id ROProvision ID
state ROPlatform provision state
-

-

id property

-

Provides access to the provision ID.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringProvision ID
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Provisioning.1.id"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "WPE00000uCfrLF45"
-}
-
-

-

state property

-

Provides access to the platform provision state.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectPlatform provision state
(property).idstringProvision ID value
(property).statusnumberProvision status
(property).tokensarrayList of provisioned systems
(property).tokens[#]string
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEProvisioning Back Office Client not available
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Provisioning.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "id": "WPE00000uCfrLF45",
-        "status": 200,
-        "tokens": [
-            "netflix, playready"
-        ]
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Provisioning interface:

-

Provisioning interface events:

- - - - - - - - - - - - - -
EventDescription
provisioningchangeSignals a provisioning change
-

-

provisioningchange event

-

Signals a provisioning change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.statusnumberProvision status
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.provisioningchange",
-    "params": {
-        "status": 200
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/RemoteControlAPI/index.html b/RemoteControlAPI/index.html deleted file mode 100644 index ce07c92..0000000 --- a/RemoteControlAPI/index.html +++ /dev/null @@ -1,3291 +0,0 @@ - - - - - - - - - - - - - - - - - Remote Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Remote Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A RemoteControl interface for Thunder framework.

-

(Defined by RemoteControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the RemoteControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

RemoteControl JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the RemoteControl interface:

-

RemoteControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
keyGets key code details
sendSends a key to a device (press and release)
pressPresses a key on a device
releaseReleases a key on a device
addAdds a key code to the key map
modifyModifies a key code in the key map
deleteDeletes a key code from the key map
loadRe-loads the device's key map from persistent memory
saveSaves the device's key map into persistent path
pairActivates pairing mode of a device
unpairUnpairs a device
-

-

key method

-

Gets key code details.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.codenumberKey code
result.keynumberKey ingest value
result?.modifiersarray(optional) List of key modifiers
result?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYKey does not exist
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.key",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

-

send method

-

Sends a key to a device (press and release).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
36ERROR_ALREADY_RELEASEDKey is already released
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.send",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

press method

-

Presses a key on a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.press",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

release method

-

Releases a key on a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
36ERROR_ALREADY_RELEASEDKey is already released
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.release",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

add method

-

Adds a key code to the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
params.keynumberKey ingest value
params?.modifiersarray(optional) List of key modifiers
params?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYCode already exists
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.add",
-    "params": {
-        "device": "DevInput",
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

modify method

-

Modifies a key code in the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
params.keynumberKey ingest value
params?.modifiersarray(optional) List of key modifiers
params?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.modify",
-    "params": {
-        "device": "DevInput",
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

delete method

-

Deletes a key code from the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYKey does not exist
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.delete",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

load method

-

Re-loads the device's key map from persistent memory.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFile does not exist
30ERROR_BAD_REQUESTBad JSON param data format
5ERROR_ILLEGAL_STATEIllegal state
6ERROR_OPENING_FAILEDOpening failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.load",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

save method

-

Saves the device's key map into persistent path.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFile is not created
30ERROR_BAD_REQUESTBad JSON param data format
5ERROR_ILLEGAL_STATEIllegal state
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.save",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pair method

-

Activates pairing mode of a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFailed to activate pairing
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.pair",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

unpair method

-

Unpairs a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.bindidstringBinding ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFailed to unpair the device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.unpair",
-    "params": {
-        "device": "DevInput",
-        "bindid": "id"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the RemoteControl interface:

-

RemoteControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
devices RONames of all available devices
device ROMetadata of a specific device
-

-

devices property

-

Provides access to the names of all available devices.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNames of all available devices
(property)[#]stringDevice name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.devices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "Web"
-    ]
-}
-
-

-

device property

-

Provides access to the metadata of a specific device.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMetadata of a specific device
(property).metadatastringDevice metadata
-
-

The device argument shall be passed as the index to the property, e.g. RemoteControl.1.device@DevInput.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALMetadata not supported on a virtual device
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.device@DevInput"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "metadata": "It is based on protocol A"
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the RemoteControl interface:

-

RemoteControl interface events:

- - - - - - - - - - - - - -
EventDescription
keypressedNotifies of a key press/release action
-

-

keypressed event

-

Notifies of a key press/release action.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pressedbooleanDenotes if the key was pressed (true) or released (false)
-
-

The key code argument shall be passed within the designator, e.g. 42.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "42.client.events.1.keypressed",
-    "params": {
-        "pressed": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/RemoteControlPlugin/index.html b/RemoteControlPlugin/index.html deleted file mode 100644 index 0c3c617..0000000 --- a/RemoteControlPlugin/index.html +++ /dev/null @@ -1,3448 +0,0 @@ - - - - - - - - - - - - - - - - - Remote Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Remote Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A RemoteControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the RemoteControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The RemoteControl plugin provides user-input functionality from various key-code sources (e.g. STB RC).

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: RemoteControl)
classnamestringClass name: RemoteControl
locatorstringLibrary name: libWPEFrameworkRemoteControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.mapfilestring(optional) Map File
configuration?.postlookupfilestring(optional) PostLookup File
configuration?.passonboolean(optional) Enable passon
configuration?.repeatstartnumber(optional) Maximum number of repeats
configuration?.repeatintervalnumber(optional) Maximum duration between repeats
configuration?.releasetimeoutnumber(optional) Release timeout
configuration?.devicesarray(optional) List of devices
configuration?.devices[#]object(optional)
configuration?.devices[#]?.namestring(optional) Name
configuration?.devices[#]?.mapfilestring(optional) Map File
configuration?.devices[#]?.passonboolean(optional) Enable passon
configuration?.devices[#]?.settingsstring(optional) Settings
configuration?.virtualsarray(optional) List of virtuals
configuration?.virtuals[#]object(optional)
configuration?.virtuals[#]?.namestring(optional) Name
configuration?.virtuals[#]?.mapfilestring(optional) Map File
configuration?.virtuals[#]?.passonboolean(optional) Enable passon
configuration?.virtuals[#]?.settingsstring(optional) Settings
configuration?.linksarray(optional) List of Links
configuration?.links[#]object(optional)
configuration?.links[#]?.namestring(optional) Name
configuration?.links[#]?.mapfilestring(optional) Map File
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the RemoteControl plugin:

-

RemoteControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
keyGets key code details
sendSends a key to a device (press and release)
pressPresses a key on a device
releaseReleases a key on a device
addAdds a key code to the key map
modifyModifies a key code in the key map
deleteDeletes a key code from the key map
loadRe-loads the device's key map from persistent memory
saveSaves the device's key map into persistent path
pairActivates pairing mode of a device
unpairUnpairs a device
-

-

key method

-

Gets key code details.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.codenumberKey code
result.keynumberKey ingest value
result?.modifiersarray(optional) List of key modifiers
result?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYKey does not exist
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.key",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

-

send method

-

Sends a key to a device (press and release).

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
36ERROR_ALREADY_RELEASEDKey is already released
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.send",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

press method

-

Presses a key on a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.press",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

release method

-

Releases a key on a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
28ERROR_UNKNOWN_TABLEKey map table does not exist
36ERROR_ALREADY_RELEASEDKey is already released
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.release",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

add method

-

Adds a key code to the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
params.keynumberKey ingest value
params?.modifiersarray(optional) List of key modifiers
params?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYCode already exists
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.add",
-    "params": {
-        "device": "DevInput",
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

modify method

-

Modifies a key code in the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
params.keynumberKey ingest value
params?.modifiersarray(optional) List of key modifiers
params?.modifiers[#]string(optional) Key modifier (must be one of the following: leftshift, rightshift, leftalt, rightalt, leftctrl, rightctrl)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
22ERROR_UNKNOWN_KEYKey does not exist
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.modify",
-    "params": {
-        "device": "DevInput",
-        "code": 1,
-        "key": 103,
-        "modifiers": [
-            "leftshift"
-        ]
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

delete method

-

Deletes a key code from the key map.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.codenumberKey code
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYKey does not exist
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.delete",
-    "params": {
-        "device": "DevInput",
-        "code": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

load method

-

Re-loads the device's key map from persistent memory.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFile does not exist
30ERROR_BAD_REQUESTBad JSON param data format
5ERROR_ILLEGAL_STATEIllegal state
6ERROR_OPENING_FAILEDOpening failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.load",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

save method

-

Saves the device's key map into persistent path.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFile is not created
30ERROR_BAD_REQUESTBad JSON param data format
5ERROR_ILLEGAL_STATEIllegal state
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.save",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

pair method

-

Activates pairing mode of a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFailed to activate pairing
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.pair",
-    "params": {
-        "device": "DevInput"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

unpair method

-

Unpairs a device.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringDevice name
params.bindidstringBinding ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown device
1ERROR_GENERALFailed to unpair the device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.unpair",
-    "params": {
-        "device": "DevInput",
-        "bindid": "id"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the RemoteControl plugin:

-

RemoteControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
devices RONames of all available devices
device ROMetadata of a specific device
-

-

devices property

-

Provides access to the names of all available devices.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayNames of all available devices
(property)[#]stringDevice name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.devices"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "Web"
-    ]
-}
-
-

-

device property

-

Provides access to the metadata of a specific device.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMetadata of a specific device
(property).metadatastringDevice metadata
-
-

The device argument shall be passed as the index to the property, e.g. RemoteControl.1.device@DevInput.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALMetadata not supported on a virtual device
2ERROR_UNAVAILABLEUnknown device
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "RemoteControl.1.device@DevInput"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "metadata": "It is based on protocol A"
-    }
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the RemoteControl plugin:

-

RemoteControl interface events:

- - - - - - - - - - - - - -
EventDescription
keypressedNotifies of a key press/release action
-

-

keypressed event

-

Notifies of a key press/release action.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pressedbooleanDenotes if the key was pressed (true) or released (false)
-
-

The key code argument shall be passed within the designator, e.g. 42.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "42.client.events.1.keypressed",
-    "params": {
-        "pressed": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/ResourceMonitorPlugin/index.html b/ResourceMonitorPlugin/index.html deleted file mode 100644 index 2270364..0000000 --- a/ResourceMonitorPlugin/index.html +++ /dev/null @@ -1,1983 +0,0 @@ - - - - - - - - - - - - - - - - - ResourceMonitor Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

ResourceMonitor Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A ResourceMonitor plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the ResourceMonitor 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The ResourceMonitor plugin provides web browsing functionality based on the ResourceMonitor engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: ResourceMonitor)
classnamestringClass name: ResourceMonitor
locatorstringLibrary name: libWPEFrameworkResourceMonitor.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.pathstring(optional) Path of resource
configuration?.intervalnumber(optional) Duration between measurements (default: 5)
configuration?.modestring(optional) Mode (options: "single", "multiple", "callsign", "classname")
configuration?.parent-namestring(optional) Name of parent process
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SecureShellServerAPI/index.html b/SecureShellServerAPI/index.html deleted file mode 100644 index 5c4f114..0000000 --- a/SecureShellServerAPI/index.html +++ /dev/null @@ -1,2158 +0,0 @@ - - - - - - - - - - - - - - - - - SecureShell Server API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

SecureShell Server API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A SecureShellServer interface for Thunder framework.

-

(Defined by SecureShellServer.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SecureShellServer interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

SecureShell Server JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the SecureShellServer interface:

-

SecureShellServer interface methods:

- - - - - - - - - - - - - - - - - - - - - -
MethodDescription
get active sessions countGet count of currently active SSH client sessions maintained by SecureShell SSH Service
get active sessions info ROGet details of currently active SSH client sessions maintained by SecureShell SSH Service
close client sessionClose and active SSH client session
-

-

get_active_sessions_count method

-

Get count of currently active SSH client sessions maintained by SecureShell SSH Service.

-

Description

-

With this method SecureShell SSH service shall provide the count of active SSH client sessions.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberNumber of client sessions count
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to get client sessions count
2ERROR_UNAVAILABLEUnknown error
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecureShellServer.1.get_active_sessions_count"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

get_active_sessions_info method

-

Get details of currently active SSH client sessions maintained by SecureShell SSH Service.

-

Description

-

With this method SecureShell SSH service shall provide the full details of active SSH client sessions.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultarray
result[#]object
result[#].pidnumberSSH client process ID
result[#].ipaddressstringSSH client connected from this IP address
result[#].timestampstringSSH client connected at this timestamp
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to get client sessions details
2ERROR_UNAVAILABLEUnknown error
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecureShellServer.1.get_active_sessions_info"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "pid": 268,
-            "ipaddress": "192.168.33.57",
-            "timestamp": "Sun Jun 30 21:49:08 2019"
-        }
-    ]
-}
-
-

-

close_client_session method

-

Close and active SSH client session.

-

Description

-

With this method SecureShell an active SSH client session shall be closed.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.clientpidstringSSH client process id
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to close SSH client session
2ERROR_UNAVAILABLEUnknown error
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecureShellServer.1.close_client_session",
-    "params": {
-        "clientpid": "268"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SecurityAgentAPI/index.html b/SecurityAgentAPI/index.html deleted file mode 100644 index 7c19fb7..0000000 --- a/SecurityAgentAPI/index.html +++ /dev/null @@ -1,2130 +0,0 @@ - - - - - - - - - - - - - - - - - Security Agent API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Security Agent API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A SecurityAgent interface for Thunder framework.

-

(Defined by SecurityAgent.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SecurityAgent interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Security Agent JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the SecurityAgent interface:

-

SecurityAgent interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
createtokenCreates Token
validateValidates Token
-

-

createtoken method

-

Creates Token.

-

Description

-

Create a signed JsonWeb token from provided payload.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.urlstring(optional) Url of application origin
params?.userstring(optional) Username
params?.hashstring(optional) Random hash
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.tokenstringSigned JsonWeb token
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALToken creation failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecurityAgent.1.createtoken",
-    "params": {
-        "url": "https://test.comcast.com",
-        "user": "Test",
-        "hash": "1CLYex47SY"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgImpzb25ycGMiOiAiMi4wIiwgCiAgICAiaWQiOiAxMjM0NTY3ODkwLCAKICAgICJtZXRob2QiOiAiQ29udHJvbGxlci4xLmFjdGl2YXRlIiwgCiAgICAicGFyYW1zIjogewogICAgICAgICJjYWxsc2lnbiI6ICJTZWN1cml0eUFnZW50IgogICAgfQp9.lL40nTwRyBvMwiglZhl5_rB8ycY1uhAJRFx9pGATMRQ"
-    }
-}
-
-

-

validate method

-

Validates Token.

-

Description

-

Checks whether the token is valid and properly signed.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tokenstringToken that will be validated
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.validbooleanTells whether token is signature is correct
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecurityAgent.1.validate",
-    "params": {
-        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgImpzb25ycGMiOiAiMi4wIiwgCiAgICAiaWQiOiAxMjM0NTY3ODkwLCAKICAgICJtZXRob2QiOiAiQ29udHJvbGxlci4xLmFjdGl2YXRlIiwgCiAgICAicGFyYW1zIjogewogICAgICAgICJjYWxsc2lnbiI6ICJTZWN1cml0eUFnZW50IgogICAgfQp9.lL40nTwRyBvMwiglZhl5_rB8ycY1uhAJRFx9pGATMRQ"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "valid": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SecurityAgentPlugin/index.html b/SecurityAgentPlugin/index.html deleted file mode 100644 index 08ecada..0000000 --- a/SecurityAgentPlugin/index.html +++ /dev/null @@ -1,2187 +0,0 @@ - - - - - - - - - - - - - - - - - Security Agent Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Security Agent Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A SecurityAgent plugin for Thunder framework.

-

Table of Contents

- -

-

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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: SecurityAgent)
classnamestringClass name: SecurityAgent
locatorstringLibrary name: libWPEFrameworkSecurityAgent.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.aclstring(optional) ACL
configuration?.connectorstring(optional) Connector
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the SecurityAgent plugin:

-

SecurityAgent interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
createtokenCreates Token
validateValidates Token
-

-

createtoken method

-

Creates Token.

-

Description

-

Create a signed JsonWeb token from provided payload.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.urlstring(optional) Url of application origin
params?.userstring(optional) Username
params?.hashstring(optional) Random hash
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.tokenstringSigned JsonWeb token
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALToken creation failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecurityAgent.1.createtoken",
-    "params": {
-        "url": "https://test.comcast.com",
-        "user": "Test",
-        "hash": "1CLYex47SY"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgImpzb25ycGMiOiAiMi4wIiwgCiAgICAiaWQiOiAxMjM0NTY3ODkwLCAKICAgICJtZXRob2QiOiAiQ29udHJvbGxlci4xLmFjdGl2YXRlIiwgCiAgICAicGFyYW1zIjogewogICAgICAgICJjYWxsc2lnbiI6ICJTZWN1cml0eUFnZW50IgogICAgfQp9.lL40nTwRyBvMwiglZhl5_rB8ycY1uhAJRFx9pGATMRQ"
-    }
-}
-
-

-

validate method

-

Validates Token.

-

Description

-

Checks whether the token is valid and properly signed.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.tokenstringToken that will be validated
-

Result

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.validbooleanTells whether token is signature is correct
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SecurityAgent.1.validate",
-    "params": {
-        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgImpzb25ycGMiOiAiMi4wIiwgCiAgICAiaWQiOiAxMjM0NTY3ODkwLCAKICAgICJtZXRob2QiOiAiQ29udHJvbGxlci4xLmFjdGl2YXRlIiwgCiAgICAicGFyYW1zIjogewogICAgICAgICJjYWxsc2lnbiI6ICJTZWN1cml0eUFnZW50IgogICAgfQp9.lL40nTwRyBvMwiglZhl5_rB8ycY1uhAJRFx9pGATMRQ"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "valid": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SparkAPI/index.html b/SparkAPI/index.html deleted file mode 100644 index 93198ab..0000000 --- a/SparkAPI/index.html +++ /dev/null @@ -1,2435 +0,0 @@ - - - - - - - - - - - - - - - - - Spark API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Spark API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Spark interface for Thunder framework.

-

(Defined by Spark.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Spark interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Spark JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Spark interface:

-

Browser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Spark interface:

-

Browser interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
urlURL loaded in the browser
visibilityCurrent browser visibility
fps ROCurrent number of frames per second the browser is rendering
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

url property

-

Provides access to the URL loaded in the browser.

-

Also see: urlchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringURL loaded in the browser
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
15ERROR_INCORRECT_URLIncorrect URL given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://www.google.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.url",
-    "params": "https://www.google.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visibility property

-

Provides access to the current browser visibility.

-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent browser visibility (must be one of the following: visible, hidden)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "visible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

fps property

-

Provides access to the current number of frames per second the browser is rendering.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCurrent number of frames per second the browser is rendering
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 30
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Spark interface:

-

Browser interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
urlchangeSignals a URL change in the browser
visibilitychangeSignals a visibility change of the browser
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanDetermines if the URL has just been loaded (true) or if URL change has been requested (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.urlchange",
-    "params": {
-        "url": "https://www.google.com",
-        "loaded": false
-    }
-}
-
-

-

visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanDetermines if the browser has been hidden (true) or made visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SparkPlugin/index.html b/SparkPlugin/index.html deleted file mode 100644 index 94dd623..0000000 --- a/SparkPlugin/index.html +++ /dev/null @@ -1,2489 +0,0 @@ - - - - - - - - - - - - - - - - - Spark Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Spark Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Spark plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Spark plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Spark plugin provides web browsing functionality based on the Spark engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Spark)
classnamestringClass name: Spark
locatorstringLibrary name: libWPEFrameworkSpark.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.urlstring(optional) The URL that is loaded upon starting the browser
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Spark plugin:

-

Browser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Spark plugin:

-

Browser interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
urlURL loaded in the browser
visibilityCurrent browser visibility
fps ROCurrent number of frames per second the browser is rendering
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

url property

-

Provides access to the URL loaded in the browser.

-

Also see: urlchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringURL loaded in the browser
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
15ERROR_INCORRECT_URLIncorrect URL given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://www.google.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.url",
-    "params": "https://www.google.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

visibility property

-

Provides access to the current browser visibility.

-

Also see: visibilitychange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCurrent browser visibility (must be one of the following: visible, hidden)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "visible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.visibility",
-    "params": "visible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

fps property

-

Provides access to the current number of frames per second the browser is rendering.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCurrent number of frames per second the browser is rendering
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 30
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Spark.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Spark plugin:

-

Browser interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
urlchangeSignals a URL change in the browser
visibilitychangeSignals a visibility change of the browser
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanDetermines if the URL has just been loaded (true) or if URL change has been requested (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.urlchange",
-    "params": {
-        "url": "https://www.google.com",
-        "loaded": false
-    }
-}
-
-

-

visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanDetermines if the browser has been hidden (true) or made visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/StateControlAPI/index.html b/StateControlAPI/index.html deleted file mode 100644 index 3133e81..0000000 --- a/StateControlAPI/index.html +++ /dev/null @@ -1,2047 +0,0 @@ - - - - - - - - - - - - - - - - - StateControl API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

StateControl API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A StateControl interface for Thunder framework.

-

(Defined by StateControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the StateControl interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

StateControl JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the StateControl interface:

-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "StateControl.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "StateControl.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the StateControl interface:

-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/StreamerAPI/index.html b/StreamerAPI/index.html deleted file mode 100644 index e7acf98..0000000 --- a/StreamerAPI/index.html +++ /dev/null @@ -1,3426 +0,0 @@ - - - - - - - - - - - - - - - - - Streamer API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Streamer API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Streamer interface for Thunder framework.

-

(Defined by Streamer.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Streamer interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

Streamer JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the Streamer interface:

-

Streamer interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
createCreates a stream instance
destroyDestroys a stream instance
loadLoads a source into a stream
attachAttaches a decoder to the streamer
detachDetaches a decoder from the streamer
-

-

create method

-

Creates a stream instance.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.typestringStream type (must be one of the following: undefined, cable, handheld, satellite, terrestrial, dab, rf, unicast, multicast, ip)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberStream ID
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTInvalid stream type given
2ERROR_UNAVAILABLEFronted of the selected stream type is not available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.create",
-    "params": {
-        "type": "cable"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

destroy method

-

Destroys a stream instance.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.destroy",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

load method

-

Loads a source into a stream.

-

Also see: statechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
params.locationstringLocation of the source to load
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
15ERROR_INCORRECT_URLInvalid location given
1ERROR_GENERALUndefined loading error
5ERROR_ILLEGAL_STATEStream is not in a valid state
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.load",
-    "params": {
-        "id": 0,
-        "location": "http://example.com/sample.m3u8"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

attach method

-

Attaches a decoder to the streamer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
12ERROR_INPROGRESSDecoder already attached
5ERROR_ILLEGAL_STATEStream is not in a valid state
2ERROR_UNAVAILABLENo free decoders available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.attach",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

detach method

-

Detaches a decoder from the streamer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEStream is not in a valid state or decoder not attached
12ERROR_INPROGRESSDecoder is in use
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.detach",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Streamer interface:

-

Streamer interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
speedPlayback speed
positionStream position
windowStream playback window
speeds ROSpeeds supported by the stream player
streams ROAll created stream instance IDs
type ROType of a stream
drm RODRM type associated with a stream
state ROCurrent state of a stream
metadata ROMetadata associated with the stream
error ROMost recent error code
elements ROStream elements
-

-

speed property

-

Provides access to the playback speed.

-

Description

-

Speed (in percentage)

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberSpeed percentage; e.g.: 0 - pause, 100 - normal playback, -100 - rewind, -200 - reverse at twice the normal speed, 50 - forward at half speed, etc. Must be one of the speeds supported by the player
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.speed@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speed@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 100
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speed@0",
-    "params": 100
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

position property

-

Provides access to the stream position.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberPosition (in milliseconds)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.position@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.position@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 60000
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.position@0",
-    "params": 60000
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

window property

-

Provides access to the stream playback window.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectGeometry of the window
(property).xnumberHorizontal position of the window (in pixels)
(property).ynumberVertical position of the window (in pixels)
(property).widthnumberWidth of the window (in pixels)
(property).heightnumberHeight of the window (in pixels)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.window@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.window@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "x": 0,
-        "y": 0,
-        "width": 1080,
-        "height": 720
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.window@0",
-    "params": {
-        "x": 0,
-        "y": 0,
-        "width": 1080,
-        "height": 720
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

speeds property

-

Provides access to the speeds supported by the stream player.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arraySupported speeds (in percentage)
(property)[#]integer(speeds in percentage)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.speeds@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speeds@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0,
-        100,
-        -100,
-        200,
-        -200,
-        400,
-        -400
-    ]
-}
-
-

-

streams property

-

Provides access to the all created stream instance IDs.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayStream IDs
(property)[#]number(a stream ID)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.streams"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0,
-        1,
-        2,
-        3
-    ]
-}
-
-

-

type property

-

Provides access to the type of a stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringStream type (must be one of the following: undefined, cable, handheld, satellite, terrestrial, dab, rf, unicast, multicast, ip)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.type@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.type@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "cable"
-}
-
-

-

drm property

-

Provides access to the DRM type associated with a stream.

-
-

This property is read-only.

-
-

Also see: drmchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringDRM used (must be one of the following: none, clearkey, playready, widevine, unknown)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.drm@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.drm@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "clearkey"
-}
-
-

-

state property

-

Provides access to the current state of a stream.

-
-

This property is read-only.

-
-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringStream state (must be one of the following: idle, loading, prepared, controlled, error)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.state@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.state@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "controlled"
-}
-
-

-

metadata property

-

Provides access to the metadata associated with the stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCustom implementation-specific metadata
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.metadata@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.metadata@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "..."
-}
-
-

-

error property

-

Provides access to the most recent error code.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCustom implementation-specific error code value
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.error@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.error@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

elements property

-

Provides access to the stream elements.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of stream elements
(property)[#]objectStream element
(property)[#].typestringStream element type (must be one of the following: video, audio, subtitles, teletext, data)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.elements@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
2ERROR_UNAVAILABLEStream elements retrieval not supported
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.elements@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "type": "video"
-        }
-    ]
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Streamer interface:

-

Streamer interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
statechangeNotifies of stream state change
timeupdateNotifies of stream position change
streamNotifies of a custom stream incident
playerNotifies of a custom player incident
drmNotifies of a custom DRM-related incident
-

-

statechange event

-

Notifies of stream state change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.statestringStream state (must be one of the following: idle, loading, prepared, controlled, error)
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.statechange",
-    "params": {
-        "state": "controlled"
-    }
-}
-
-

-

timeupdate event

-

Notifies of stream position change. This event is fired every second to indicate the current stream position. It does not fire if the stream is paused (i.e. speed is set to 0).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.timenumberStream position in miliseconds
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.timeupdate",
-    "params": {
-        "time": 30000
-    }
-}
-
-

-

stream event

-

Notifies of a custom stream incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.stream",
-    "params": {
-        "code": 1
-    }
-}
-
-

-

player event

-

Notifies of a custom player incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.player",
-    "params": {
-        "code": 1
-    }
-}
-
-

-

drm event

-

Notifies of a custom DRM-related incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.drm",
-    "params": {
-        "code": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/StreamerPlugin/index.html b/StreamerPlugin/index.html deleted file mode 100644 index 04cccdf..0000000 --- a/StreamerPlugin/index.html +++ /dev/null @@ -1,3468 +0,0 @@ - - - - - - - - - - - - - - - - - Streamer Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Streamer Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A Streamer plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the Streamer plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: Streamer)
classnamestringClass name: Streamer
locatorstringLibrary name: libWPEFrameworkStreamer.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the Streamer plugin:

-

Streamer interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
createCreates a stream instance
destroyDestroys a stream instance
loadLoads a source into a stream
attachAttaches a decoder to the streamer
detachDetaches a decoder from the streamer
-

-

create method

-

Creates a stream instance.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.typestringStream type (must be one of the following: undefined, cable, handheld, satellite, terrestrial, dab, rf, unicast, multicast, ip)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberStream ID
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTInvalid stream type given
2ERROR_UNAVAILABLEFronted of the selected stream type is not available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.create",
-    "params": {
-        "type": "cable"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

destroy method

-

Destroys a stream instance.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.destroy",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

load method

-

Loads a source into a stream.

-

Also see: statechange

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
params.locationstringLocation of the source to load
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
15ERROR_INCORRECT_URLInvalid location given
1ERROR_GENERALUndefined loading error
5ERROR_ILLEGAL_STATEStream is not in a valid state
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.load",
-    "params": {
-        "id": 0,
-        "location": "http://example.com/sample.m3u8"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

attach method

-

Attaches a decoder to the streamer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
12ERROR_INPROGRESSDecoder already attached
5ERROR_ILLEGAL_STATEStream is not in a valid state
2ERROR_UNAVAILABLENo free decoders available
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.attach",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

detach method

-

Detaches a decoder from the streamer.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.idnumberStream ID
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEStream is not in a valid state or decoder not attached
12ERROR_INPROGRESSDecoder is in use
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.detach",
-    "params": {
-        "id": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the Streamer plugin:

-

Streamer interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
speedPlayback speed
positionStream position
windowStream playback window
speeds ROSpeeds supported by the stream player
streams ROAll created stream instance IDs
type ROType of a stream
drm RODRM type associated with a stream
state ROCurrent state of a stream
metadata ROMetadata associated with the stream
error ROMost recent error code
elements ROStream elements
-

-

speed property

-

Provides access to the playback speed.

-

Description

-

Speed (in percentage)

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberSpeed percentage; e.g.: 0 - pause, 100 - normal playback, -100 - rewind, -200 - reverse at twice the normal speed, 50 - forward at half speed, etc. Must be one of the speeds supported by the player
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.speed@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speed@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 100
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speed@0",
-    "params": 100
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

position property

-

Provides access to the stream position.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberPosition (in milliseconds)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.position@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.position@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 60000
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.position@0",
-    "params": 60000
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

window property

-

Provides access to the stream playback window.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectGeometry of the window
(property).xnumberHorizontal position of the window (in pixels)
(property).ynumberVertical position of the window (in pixels)
(property).widthnumberWidth of the window (in pixels)
(property).heightnumberHeight of the window (in pixels)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.window@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.window@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "x": 0,
-        "y": 0,
-        "width": 1080,
-        "height": 720
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.window@0",
-    "params": {
-        "x": 0,
-        "y": 0,
-        "width": 1080,
-        "height": 720
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

speeds property

-

Provides access to the speeds supported by the stream player.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arraySupported speeds (in percentage)
(property)[#]integer(speeds in percentage)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.speeds@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
5ERROR_ILLEGAL_STATEPlayer is not in a valid state or decoder not attached
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.speeds@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0,
-        100,
-        -100,
-        200,
-        -200,
-        400,
-        -400
-    ]
-}
-
-

-

streams property

-

Provides access to the all created stream instance IDs.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayStream IDs
(property)[#]number(a stream ID)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.streams"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        0,
-        1,
-        2,
-        3
-    ]
-}
-
-

-

type property

-

Provides access to the type of a stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringStream type (must be one of the following: undefined, cable, handheld, satellite, terrestrial, dab, rf, unicast, multicast, ip)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.type@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.type@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "cable"
-}
-
-

-

drm property

-

Provides access to the DRM type associated with a stream.

-
-

This property is read-only.

-
-

Also see: drmchange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringDRM used (must be one of the following: none, clearkey, playready, widevine, unknown)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.drm@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.drm@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "clearkey"
-}
-
-

-

state property

-

Provides access to the current state of a stream.

-
-

This property is read-only.

-
-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringStream state (must be one of the following: idle, loading, prepared, controlled, error)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.state@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.state@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "controlled"
-}
-
-

-

metadata property

-

Provides access to the metadata associated with the stream.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringCustom implementation-specific metadata
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.metadata@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.metadata@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "..."
-}
-
-

-

error property

-

Provides access to the most recent error code.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberCustom implementation-specific error code value
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.error@0.

-
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.error@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

elements property

-

Provides access to the stream elements.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of stream elements
(property)[#]objectStream element
(property)[#].typestringStream element type (must be one of the following: video, audio, subtitles, teletext, data)
-
-

The stream id argument shall be passed as the index to the property, e.g. Streamer.1.elements@0.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYUnknown stream ID given
2ERROR_UNAVAILABLEStream elements retrieval not supported
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "Streamer.1.elements@0"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "type": "video"
-        }
-    ]
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the Streamer plugin:

-

Streamer interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
statechangeNotifies of stream state change
timeupdateNotifies of stream position change
streamNotifies of a custom stream incident
playerNotifies of a custom player incident
drmNotifies of a custom DRM-related incident
-

-

statechange event

-

Notifies of stream state change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.statestringStream state (must be one of the following: idle, loading, prepared, controlled, error)
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.statechange",
-    "params": {
-        "state": "controlled"
-    }
-}
-
-

-

timeupdate event

-

Notifies of stream position change. This event is fired every second to indicate the current stream position. It does not fire if the stream is paused (i.e. speed is set to 0).

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.timenumberStream position in miliseconds
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.timeupdate",
-    "params": {
-        "time": 30000
-    }
-}
-
-

-

stream event

-

Notifies of a custom stream incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.stream",
-    "params": {
-        "code": 1
-    }
-}
-
-

-

player event

-

Notifies of a custom player incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.player",
-    "params": {
-        "code": 1
-    }
-}
-
-

-

drm event

-

Notifies of a custom DRM-related incident.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.codenumberImplementation-specific incident code
-
-

The Stream ID argument shall be passed within the designator, e.g. 0.client.events.1.

-
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "0.client.events.1.drm",
-    "params": {
-        "code": 1
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SubsystemControlAPI/index.html b/SubsystemControlAPI/index.html deleted file mode 100644 index 09af61e..0000000 --- a/SubsystemControlAPI/index.html +++ /dev/null @@ -1,2069 +0,0 @@ - - - - - - - - - - - - - - - - - Subsystem Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Subsystem Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A SubsystemControl interface for Thunder framework.

-

(Defined by SubsystemControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SubsystemControl interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

SubsystemControl JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the SubsystemControl interface:

-

SubsystemControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
activateActivates a subsystem
deactivateDeactivates a subsystem
-

-

activate method

-

Activates a subsystem.

-

Description

-

This method allows a subsystem to be activated from the outside. This is usefull in case Thunder can not determine the availability of a subsystem but it needs to be triggered from the outside.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.systemstringSubsystem to activate (must be one of the following: platform, network, internet, time, security, location, identifier, provisioning, decryption, bluetooth, websource, graphics, streaming)
params?.configurationstring(optional) A JSON string that holds the information applicable to the subsystem to be activated
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnumberThe result of the activating anythin unequal to 0 means somthing failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SubsystemControl.1.activate",
-    "params": {
-        "system": "network",
-        "configuration": "..."
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

deactivate method

-

Deactivates a subsystem.

-

Description

-

This method allows a subsystem to be deactivated from the outside. This is usefull in case Thunder can not determine the availability of a subsystem but it needs to be triggered from the outside.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsstringSubsystem to deactivate (must be one of the following: platform, network, internet, time, security, location, identifier, provisioning, decryption, bluetooth, websource, graphics, streaming)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SubsystemControl.1.deactivate",
-    "params": "network"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SubsystemControlPlugin/index.html b/SubsystemControlPlugin/index.html deleted file mode 100644 index 35644fe..0000000 --- a/SubsystemControlPlugin/index.html +++ /dev/null @@ -1,1958 +0,0 @@ - - - - - - - - - - - - - - - - - Subsystem Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Subsystem Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A SubsystemControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SubsystemControl 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: SubsystemControl)
classnamestringClass name: SubsystemControl
locatorstringLibrary name: libWPEFrameworkSubsystemControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SystemCommandsAPI/index.html b/SystemCommandsAPI/index.html deleted file mode 100644 index 1f4a748..0000000 --- a/SystemCommandsAPI/index.html +++ /dev/null @@ -1,2026 +0,0 @@ - - - - - - - - - - - - - - - - - System Commands API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

System Commands API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A SystemCommands interface for Thunder framework.

-

(Defined by SystemCommands.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SystemCommands interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

System Commands JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the SystemCommands interface:

-

SystemCommands interface methods:

- - - - - - - - - - - - - -
MethodDescription
usbresetResets a USB device
-

-

usbreset method

-

Resets a USB device.

-

Description

-

With this method a USB device can be reset using USBFS_RESET ioctl command.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringUSB device to reset
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to reset the USB device
2ERROR_UNAVAILABLEUnknown USB device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SystemCommands.1.usbreset",
-    "params": {
-        "device": "/dev/usb/001"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/SystemCommandsPlugin/index.html b/SystemCommandsPlugin/index.html deleted file mode 100644 index 2559aac..0000000 --- a/SystemCommandsPlugin/index.html +++ /dev/null @@ -1,2068 +0,0 @@ - - - - - - - - - - - - - - - - - System Commands Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

System Commands Plugin

-

Version: 1.0

-

Status: ⚫⚫⚪

-

A SystemCommands plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the SystemCommands 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The System Commands plugin allows executing of low level actions on the system.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: SystemCommands)
classnamestringClass name: SystemCommands
locatorstringLibrary name: libWPEFrameworkSystemCommands.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the SystemCommands plugin:

-

SystemCommands interface methods:

- - - - - - - - - - - - - -
MethodDescription
usbresetResets a USB device
-

-

usbreset method

-

Resets a USB device.

-

Description

-

With this method a USB device can be reset using USBFS_RESET ioctl command.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.devicestringUSB device to reset
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
1ERROR_GENERALFailed to reset the USB device
2ERROR_UNAVAILABLEUnknown USB device
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "SystemCommands.1.usbreset",
-    "params": {
-        "device": "/dev/usb/001"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TestControllerAPI/index.html b/TestControllerAPI/index.html deleted file mode 100644 index 7ebe061..0000000 --- a/TestControllerAPI/index.html +++ /dev/null @@ -1,2268 +0,0 @@ - - - - - - - - - - - - - - - - - Test Controller API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Test Controller API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A TestController interface for Thunder framework.

-

(Defined by TestController.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TestController interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

TestController JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the TestController interface:

-

TestController interface methods:

- - - - - - - - - - - - - -
MethodDescription
runRuns a single test or multiple tests
-

-

run method

-

Runs a single test or multiple tests.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params?.categorystring(optional) Test category name, if omitted: all tests are executed
params?.teststring(optional) Test name, if omitted: all tests of category are executed
params?.argsstring(optional) The test arguments in JSON format
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultarrayList of test results
result[#]object
result[#].teststringTest name
result[#].statusstringTest status
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category/test
30ERROR_BAD_REQUESTBad json param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestController.1.run",
-    "params": {
-        "category": "JSONRPC",
-        "test": "JSONRPCTest",
-        "args": "{ }"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "test": "JSONRPCTest",
-            "status": "Success"
-        }
-    ]
-}
-
-

-

Properties

-

The following properties are provided by the TestController interface:

-

TestController interface properties:

- - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
categories ROList of test categories
tests ROList of tests for a category
description RODescription of a test
-

-

categories property

-

Provides access to the list of test categories.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of test categories
(property)[#]stringTest category name
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestController.1.categories"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "JSONRPC"
-    ]
-}
-
-

-

tests property

-

Provides access to the list of tests for a category.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of tests for a category
(property)[#]stringTest name
-
-

The category argument shall be passed as the index to the property, e.g. TestController.1.tests@JSONRPC.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestController.1.tests@JSONRPC"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "JSONRPCTest"
-    ]
-}
-
-

-

description property

-

Provides access to the description of a test.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectDescription of a test
(property).descriptionstringTest description
-
-

The test argument shall be passed as the index to the property, e.g. TestController.1.description@JSONRPC.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category/test
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestController.1.description@JSONRPC"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "description": "Tests JSONRPC functionality"
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TestUtilityAPI/index.html b/TestUtilityAPI/index.html deleted file mode 100644 index 1854b8e..0000000 --- a/TestUtilityAPI/index.html +++ /dev/null @@ -1,2453 +0,0 @@ - - - - - - - - - - - - - - - - - Test Utility API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Test Utility API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A TestUtility interface for Thunder framework.

-

(Defined by TestUtility.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TestUtility interface. 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

TestUtility JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the TestUtility interface:

-

TestUtility interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
runmemoryRuns a memory test command
runcrashRuns a crash test command
-

-

runmemory method

-

Runs a memory test command.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.commandstringTest command name
params?.sizenumber(optional) The amount of memory in KB for allocation (applicable for Malloc commands)
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.allocatednumberAlready allocated memory in KB
result.sizenumberCurrent allocation in KB
result.residentnumberResident memory in KB
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.runmemory",
-    "params": {
-        "command": "Malloc",
-        "size": 0
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "allocated": 0,
-        "size": 0,
-        "resident": 0
-    }
-}
-
-

-

runcrash method

-

Runs a crash test command.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.commandstringTest command name
params?.delaynumber(optional) Delay (in seconds) before the crash attempt (applicable for Crash command)
params?.countnumber(optional) How many times a Crash command will be executed consecutively (applicable for CrashNTimes command)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.runcrash",
-    "params": {
-        "command": "Crash",
-        "delay": 1,
-        "count": 1
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the TestUtility interface:

-

TestUtility interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
commands ROList of test commands
description RODescription of a test command
parameters ROParameters of a test command
shutdowntimeout WOTimeout to be waited before deactivating the plugin
-

-

commands property

-

Provides access to the list of test commands.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayList of test commands
(property)[#]stringAvailable test commands
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.commands"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "Malloc"
-    ]
-}
-
-

-

description property

-

Provides access to the description of a test command.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectDescription of a test command
(property).descriptionstringTest command description
-
-

The command argument shall be passed as the index to the property, e.g. TestUtility.1.description@Malloc.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.description@Malloc"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "description": "Allocates desired amount of memory (in KB) and holds it"
-    }
-}
-
-

-

parameters property

-

Provides access to the parameters of a test command.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectParameters of a test command
(property)?.inputarray(optional)
(property)?.input[#]object(optional)
(property)?.input[#].namestringTest command input parameter
(property)?.input[#].typestringTest command input parameter type (must be one of the following: Number, String, Boolean, Object, Symbol)
(property)?.input[#].commentstringTest command input parameter description
(property).outputobject
(property).output.namestringTest command output parameter
(property).output.typestringTest command output parameter type (must be one of the following: Number, String, Boolean, Object, Symbol)
(property).output.commentstringTest command output parameter description
-
-

The command argument shall be passed as the index to the property, e.g. TestUtility.1.parameters@Malloc.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEUnknown category
30ERROR_BAD_REQUESTBad JSON param data format
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.parameters@Malloc"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "input": [
-            {
-                "name": "memory",
-                "type": "Number",
-                "comment": "Memory statistics in KB"
-            }
-        ],
-        "output": {
-            "name": "memory",
-            "type": "Number",
-            "comment": "Memory statistics in KB"
-        }
-    }
-}
-
-

-

shutdowntimeout property

-

Provides access to the timeout to be waited before deactivating the plugin.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberTimeout in milli seconds
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TestUtility.1.shutdowntimeout",
-    "params": 5000
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TimeSyncAPI/index.html b/TimeSyncAPI/index.html deleted file mode 100644 index 8948dfe..0000000 --- a/TimeSyncAPI/index.html +++ /dev/null @@ -1,2177 +0,0 @@ - - - - - - - - - - - - - - - - - Time Sync API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Time Sync API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A TimeSync interface for Thunder framework.

-

(Defined by TimeSync.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TimeSync interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

TimeSync JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the TimeSync interface:

-

TimeSync interface methods:

- - - - - - - - - - - - - -
MethodDescription
synchronizeSynchronizes time
-

-

synchronize method

-

Synchronizes time.

-

Description

-

Use this method to synchronize the system time with the currently configured time source. If automatic time synchronization is initially disabled or stopped, it will be restarted.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the method is called while previously triggered synchronization is in progress.
23ERROR_INCOMPLETE_CONFIGReturned when the source configuration is missing or invalid.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.synchronize"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the TimeSync interface:

-

TimeSync interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
synctime ROMost recent synchronized time
timeCurrent system time
-

-

synctime property

-

Provides access to the most recent synchronized time.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMost recent synchronized time
(property).timestringSynchronized time (in ISO8601 format); empty string if the time has never been synchronized
(property)?.sourcestring(optional) The synchronization source e.g. an NTP server
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.synctime"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "time": "2019-05-07T07:20:26Z",
-        "source": "ntp://example.com"
-    }
-}
-
-

-

time property

-

Provides access to the current system time.

-

Description

-

Upon setting this property automatic time synchronization will be stopped. If not already active, the framework's time subsystem will become activated. If the property is set empty then the time subsystem will still become activated but without setting the time (thereby notifying the framework that the time has been set externally).

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringSystem time (in ISO8601 format)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTThe time is invalid
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.time"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "2019-05-07T07:20:26Z"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.time",
-    "params": "2019-05-07T07:20:26Z"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the TimeSync interface:

-

TimeSync interface events:

- - - - - - - - - - - - - -
EventDescription
timechangeSignals a time change
-

-

timechange event

-

Signals a time change.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.timechange"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TimeSyncPlugin/index.html b/TimeSyncPlugin/index.html deleted file mode 100644 index 1d8aff4..0000000 --- a/TimeSyncPlugin/index.html +++ /dev/null @@ -1,2249 +0,0 @@ - - - - - - - - - - - - - - - - - Time Sync Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Time Sync Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A TimeSync plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TimeSync plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Time Sync plugin provides time synchronization functionality from various time sources (e.g. NTP).

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: TimeSync)
classnamestringClass name: TimeSync
locatorstringLibrary name: libWPEFrameworkTimeSync.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
deferredboolean(optional) Determines if automatic time sync shall be initially disabled
periodicitynumber(optional) Periodicity of time synchronization (in hours), 0 for one-off synchronization
retriesnumber(optional) Number of synchronization attempts if the source cannot be reached (may be 0)
intervalnumber(optional) Time to wait (in milliseconds) before retrying a synchronization attempt after a failure
sourcesarrayTime sources
sources[#]string(a time source entry)
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the TimeSync plugin:

-

TimeSync interface methods:

- - - - - - - - - - - - - -
MethodDescription
synchronizeSynchronizes time
-

-

synchronize method

-

Synchronizes time.

-

Description

-

Use this method to synchronize the system time with the currently configured time source. If automatic time synchronization is initially disabled or stopped, it will be restarted.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when the method is called while previously triggered synchronization is in progress.
23ERROR_INCOMPLETE_CONFIGReturned when the source configuration is missing or invalid.
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.synchronize"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the TimeSync plugin:

-

TimeSync interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
synctime ROMost recent synchronized time
timeCurrent system time
-

-

synctime property

-

Provides access to the most recent synchronized time.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectMost recent synchronized time
(property).timestringSynchronized time (in ISO8601 format); empty string if the time has never been synchronized
(property)?.sourcestring(optional) The synchronization source e.g. an NTP server
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.synctime"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "time": "2019-05-07T07:20:26Z",
-        "source": "ntp://example.com"
-    }
-}
-
-

-

time property

-

Provides access to the current system time.

-

Description

-

Upon setting this property automatic time synchronization will be stopped. If not already active, the framework's time subsystem will become activated. If the property is set empty then the time subsystem will still become activated but without setting the time (thereby notifying the framework that the time has been set externally).

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringSystem time (in ISO8601 format)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
30ERROR_BAD_REQUESTThe time is invalid
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.time"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "2019-05-07T07:20:26Z"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TimeSync.1.time",
-    "params": "2019-05-07T07:20:26Z"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the TimeSync plugin:

-

TimeSync interface events:

- - - - - - - - - - - - - -
EventDescription
timechangeSignals a time change
-

-

timechange event

-

Signals a time change.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.timechange"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TraceControlAPI/index.html b/TraceControlAPI/index.html deleted file mode 100644 index ac9575c..0000000 --- a/TraceControlAPI/index.html +++ /dev/null @@ -1,2146 +0,0 @@ - - - - - - - - - - - - - - - - - Trace Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Trace Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A TraceControl interface for Thunder framework.

-

(Defined by TraceControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TraceControl interface. It includes detailed specification about its 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

TraceControl JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the TraceControl interface:

-

TraceControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
statusRetrieves general information
setSets traces
-

-

status method

-

Retrieves general information.

-

Description

-

Retrieves the actual trace status information for targeted module and category, if either category nor module is given, all information is returned. It will retrieves the details about console status and remote address(port and binding address), if these are configured.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modulestringModule name
params.categorystringCategory name
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.consolebooleanConfig attribute (Console)
result.remoteobject
result.remote.portnumberConfig attribute (port)
result.remote.bindingstringConfig attribute (binding)
result.settingsarray
result.settings[#]object
result.settings[#].modulestringModule name
result.settings[#].categorystringCategory name
result.settings[#].statestringState value (must be one of the following: enabled, disabled, tristated)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TraceControl.1.status",
-    "params": {
-        "module": "Plugin_Monitor",
-        "category": "Information"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "console": false,
-        "remote": {
-            "port": 2200,
-            "binding": "0.0.0.0"
-        },
-        "settings": [
-            {
-                "module": "Plugin_Monitor",
-                "category": "Information",
-                "state": "disabled"
-            }
-        ]
-    }
-}
-
-

-

set method

-

Sets traces.

-

Description

-

Disables/enables all/select category traces for particular module.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modulestringModule name
params.categorystringCategory name
params.statestringState value (must be one of the following: enabled, disabled, tristated)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TraceControl.1.set",
-    "params": {
-        "module": "Plugin_Monitor",
-        "category": "Information",
-        "state": "disabled"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/TraceControlPlugin/index.html b/TraceControlPlugin/index.html deleted file mode 100644 index 55abccb..0000000 --- a/TraceControlPlugin/index.html +++ /dev/null @@ -1,2223 +0,0 @@ - - - - - - - - - - - - - - - - - Trace Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Trace Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A TraceControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the TraceControl 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Trace Control plugin provides ability to disable/enable trace output an set its verbosity level.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: TraceControl)
classnamestringClass name: TraceControl
locatorstringLibrary name: libWPEFrameworkTraceControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.consoleboolean(optional) Enable console
configuration?.syslogboolean(optional) Enable SysLog
configuration?.abbreviatedboolean(optional) Enable abbreviated logging
configuration?.remotesobject(optional)
configuration?.remotes?.portnumber(optional) Port
configuration?.remotes?.bindigbindig(optional) Binding
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the TraceControl plugin:

-

TraceControl interface methods:

- - - - - - - - - - - - - - - - - -
MethodDescription
statusRetrieves general information
setSets traces
-

-

status method

-

Retrieves general information.

-

Description

-

Retrieves the actual trace status information for targeted module and category, if either category nor module is given, all information is returned. It will retrieves the details about console status and remote address(port and binding address), if these are configured.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modulestringModule name
params.categorystringCategory name
-

Result

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
resultobject
result.consolebooleanConfig attribute (Console)
result.remoteobject
result.remote.portnumberConfig attribute (port)
result.remote.bindingstringConfig attribute (binding)
result.settingsarray
result.settings[#]object
result.settings[#].modulestringModule name
result.settings[#].categorystringCategory name
result.settings[#].statestringState value (must be one of the following: enabled, disabled, tristated)
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TraceControl.1.status",
-    "params": {
-        "module": "Plugin_Monitor",
-        "category": "Information"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "console": false,
-        "remote": {
-            "port": 2200,
-            "binding": "0.0.0.0"
-        },
-        "settings": [
-            {
-                "module": "Plugin_Monitor",
-                "category": "Information",
-                "state": "disabled"
-            }
-        ]
-    }
-}
-
-

-

set method

-

Sets traces.

-

Description

-

Disables/enables all/select category traces for particular module.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.modulestringModule name
params.categorystringCategory name
params.statestringState value (must be one of the following: enabled, disabled, tristated)
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "TraceControl.1.set",
-    "params": {
-        "module": "Plugin_Monitor",
-        "category": "Information",
-        "state": "disabled"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/VolumeControlAPI/index.html b/VolumeControlAPI/index.html deleted file mode 100644 index ecdad49..0000000 --- a/VolumeControlAPI/index.html +++ /dev/null @@ -1,2172 +0,0 @@ - - - - - - - - - - - - - - - - - VolumeControl API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

VolumeControl API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A VolumeControl interface for Thunder framework.

-

(Defined with Exchange::IVolumeControl in IVolumeControl.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the VolumeControl interface. It includes detailed specification about its properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

VolumeControl JSON-RPC interface.

-

-

Properties

-

The following properties are provided by the VolumeControl interface:

-

VolumeControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange mutedAudio mute state
exchange volumeAudio volume level
-

-

exchange_muted property

-

Provides access to the audio mute state.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
mutedbooleanMute state (true: muted, false: un-muted)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALFailed to set/retrieve muting state
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_muted"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_muted",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_volume property

-

Provides access to the audio volume level.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
volumeintegerVolume level in percent
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALFailed to set/retrieve audio volume
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_volume"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 100
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_volume",
-    "params": 100
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the VolumeControl interface:

-

VolumeControl interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
exchange volumeSignals volume change
exchange mutedSignals mute state change
-

-

exchange_volume event

-

Signals volume change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.volumeintegerNew bolume level in percent
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_volume",
-    "params": {
-        "volume": 100
-    }
-}
-
-

-

exchange_muted event

-

Signals mute state change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.mutedbooleanNew mute state (true: muted, false: un-muted)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_muted",
-    "params": {
-        "muted": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/VolumeControlPlugin/index.html b/VolumeControlPlugin/index.html deleted file mode 100644 index 5b5599a..0000000 --- a/VolumeControlPlugin/index.html +++ /dev/null @@ -1,2214 +0,0 @@ - - - - - - - - - - - - - - - - - Volume Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Volume Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚪

-

A VolumeControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the VolumeControl plugin. It includes detailed specification about its configuration, properties 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The Volume Control plugin allows to manage system's audio volume.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: VolumeControl)
classnamestringClass name: VolumeControl
locatorstringLibrary name: libWPEVolumeControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Properties

-

The following properties are provided by the VolumeControl plugin:

-

VolumeControl interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange mutedAudio mute state
exchange volumeAudio volume level
-

-

exchange_muted property

-

Provides access to the audio mute state.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
mutedbooleanMute state (true: muted, false: un-muted)
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALFailed to set/retrieve muting state
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_muted"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_muted",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_volume property

-

Provides access to the audio volume level.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
volumeintegerVolume level in percent
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
ERROR_GENERALFailed to set/retrieve audio volume
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_volume"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 100
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "VolumeControl.1.exchange_volume",
-    "params": 100
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the VolumeControl plugin:

-

VolumeControl interface events:

- - - - - - - - - - - - - - - - - -
EventDescription
exchange volumeSignals volume change
exchange mutedSignals mute state change
-

-

exchange_volume event

-

Signals volume change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.volumeintegerNew bolume level in percent
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_volume",
-    "params": {
-        "volume": 100
-    }
-}
-
-

-

exchange_muted event

-

Signals mute state change.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.mutedbooleanNew mute state (true: muted, false: un-muted)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_muted",
-    "params": {
-        "muted": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WebBrowserAPI/index.html b/WebBrowserAPI/index.html deleted file mode 100644 index 67a248e..0000000 --- a/WebBrowserAPI/index.html +++ /dev/null @@ -1,2587 +0,0 @@ - - - - - - - - - - - - - - - - - WebBrowser API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

WebBrowser API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A WebBrowser interface for Thunder framework.

-

(Defined with Exchange::IWebBrowser in IBrowser.h)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WebBrowser interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

WebBrowser JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the WebBrowser interface:

-

WebBrowser interface methods:

- - - - - - - - - - - - - -
MethodDescription
exchange collectgarbageInitiate garbage collection
-

-

exchange_collectgarbage method

-

Initiate garbage collection.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_collectgarbage"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the WebBrowser interface:

-

WebBrowser interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange urlPage loaded in the browser
exchange visibilityBrowser window visibility state
exchange fps ROCurrent framerate the browser is rendering at
exchange useragentUserAgent string used by the browser
exchange localstorageenabledControls the local storage availability
exchange httpcookieacceptpolicyHTTP cookies accept policy
exchange bridgereply WOResponse for legacy $badger
exchange bridgeevent WOSend legacy $badger event
-

-

exchange_url property

-

Provides access to the page loaded in the browser.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
urlstringLoaded URL
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://example.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_url",
-    "params": "https://example.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_visibility property

-

Provides access to the browser window visibility state.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
visiblestringVisiblity state (must be one of the following: hidden, visible)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "hidden"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_visibility",
-    "params": "hidden"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_fps property

-

Provides access to the current framerate the browser is rendering at.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
fpsintegerCurrent FPS
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_useragent property

-

Provides access to the userAgent string used by the browser.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
useragentstringUserAgent value
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_useragent"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Mozilla/5.0 (Linux; x86_64 GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 WP"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_useragent",
-    "params": "Mozilla/5.0 (Linux; x86_64 GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 WP"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_localstorageenabled property

-

Provides access to the controls the local storage availability.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
enabledbooleanControls the local storage availability
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_localstorageenabled"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_localstorageenabled",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_httpcookieacceptpolicy property

-

Provides access to the HTTP cookies accept policy.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
policystringHTTP Cookie Accept Policy Type (must be one of the following: always, never, onlyfrommaindocumentdomain, exclusivelyfrommaindocumentdomain)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_httpcookieacceptpolicy"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "always"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_httpcookieacceptpolicy",
-    "params": "always"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_bridgereply property

-

Provides access to the response for legacy $badger.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
payloadstringbase64 encoded JSON string response to be delivered to $badger.callback
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_bridgereply",
-    "params": "..."
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_bridgeevent property

-

Provides access to the send legacy $badger event.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
payloadstringbase64 encoded JSON string response to be delivered to window.$badger.event
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebBrowser.1.exchange_bridgeevent",
-    "params": "..."
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the WebBrowser interface:

-

WebBrowser interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
exchange loadfinishedInitial HTML document has been completely loaded and parsed
exchange loadfailedBrowser failed to load page
exchange urlchangeSignals a URL change in the browser
exchange visibilitychangeSignals a visibility change of the browser
exchange pageclosureNotifies that the web page requests to close its window
-

-

exchange_loadfinished event

-

Initial HTML document has been completely loaded and parsed.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded
params.httpstatusintegerThe response code of main resource request
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_loadfinished",
-    "params": {
-        "url": "https://example.com",
-        "httpstatus": 200
-    }
-}
-
-

-

exchange_loadfailed event

-

Browser failed to load page.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been failed to load
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_loadfailed",
-    "params": {
-        "url": "https://example.com"
-    }
-}
-
-

-

exchange_urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanloaded (true) or not (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_urlchange",
-    "params": {
-        "url": "https://example.com",
-        "loaded": false
-    }
-}
-
-

-

exchange_visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanhidden (true) or visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

exchange_pageclosure event

-

Notifies that the web page requests to close its window.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_pageclosure"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WebKitBrowserAPI/index.html b/WebKitBrowserAPI/index.html deleted file mode 100644 index 14db3af..0000000 --- a/WebKitBrowserAPI/index.html +++ /dev/null @@ -1,2343 +0,0 @@ - - - - - - - - - - - - - - - - - WebKit Browser API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

WebKit Browser API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A WebKitBrowser interface for Thunder framework.

-

(Defined by WebKitBrowser.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WebKitBrowser interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

WebKitBrowser JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the WebKitBrowser interface:

-

WebKitBrowser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the WebKitBrowser interface:

-

WebKitBrowser interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
languagesUser preferred languages
headersHeaders to send on all requests that the browser makes
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

languages property

-

Provides access to the user preferred languages.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayUser preferred languages
(property)[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.languages"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "en-US"
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.languages",
-    "params": [
-        "en-US"
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

headers property

-

Provides access to the headers to send on all requests that the browser makes.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayHeaders to send on all requests that the browser makes
(property)[#]object
(property)[#]?.namestring(optional) Header name
(property)[#]?.valuestring(optional) Header value
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.headers"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "X-Forwarded-For",
-            "value": "::1"
-        }
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.headers",
-    "params": [
-        {
-            "name": "X-Forwarded-For",
-            "value": "::1"
-        }
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the WebKitBrowser interface:

-

WebKitBrowser interface events:

- - - - - - - - - - - - - -
EventDescription
bridgequeryA Base64 encoded JSON message from legacy $badger bridge
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

bridgequery event

-

A Base64 encoded JSON message from legacy $badger bridge.

-
-

This API is obsolete. It is no longer recommended for use in new implementations.

-
-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsstring
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.bridgequery",
-    "params": "..."
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WebKitBrowserPlugin/index.html b/WebKitBrowserPlugin/index.html deleted file mode 100644 index 89c4e8c..0000000 --- a/WebKitBrowserPlugin/index.html +++ /dev/null @@ -1,3421 +0,0 @@ - - - - - - - - - - - - - - - - - WebKit Browser Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

WebKit Browser Plugin

-

Version: 1.0

-

Status: ⚫⚫⚫

-

A WebKitBrowser plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WebKitBrowser plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder 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].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: WebKitBrowser)
classnamestringClass name: WebKitBrowser
locatorstringLibrary name: libWPEFrameworkWebKitBrowser.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.useragentstring(optional) The UserAgent used during communication with the web server
configuration?.urlstring(optional) The URL that is loaded upon starting the browser
configuration?.injectedbundlestring(optional) The name of the .so loaded to extend the HTML5 with customized JavaScript handlers
configuration?.cookiestoragestring(optional) Post-fixed path to the persistent location on where cookies will be stored
configuration?.localstoragestring(optional) Post-fixed path to the persistent location on where local-storage will be stored
configuration?.certificatecheckboolean(optional) If enabled, SSL certificate error will lead to a page error
configuration?.javascriptobject(optional)
configuration?.javascript?.useLLIntboolean(optional) Enable Low Level Interpreter
configuration?.javascript?.useJITboolean(optional) Enable JIT
configuration?.javascript?.useDFGboolean(optional) Enable Data-Flow-Graph-JIT compiler
configuration?.javascript?.useFTLboolean(optional) Enable Faster-Than-Light-JIT compiler
configuration?.javascript?.useDOMboolean(optional) Enable the DOM-JIT compiler
configuration?.javascript?.dumpOptionsstring(optional) Dump options: 0 = None, 1 = Overridden only, 2 = All, 3 = Verbose
configuration?.secureboolean(optional) If false, every domain can access any other domain, otherwise fill in fields in whitelist definition table
configuration?.whitelistobject(optional)
configuration?.whitelist?.originstring(optional) Origin domain allowed to access domains in domain
configuration?.whitelist?.domainarray(optional)
configuration?.whitelist?.domain[#]string(optional) Domain allowed to access from origin
configuration?.whitelist?.subdomainstring(optional) whether it is also OK to access subdomains of domains listed in domain
configuration?.localstorageenabledboolean(optional) Controls the local storage availability
configuration?.logtosystemconsoleenabledboolean(optional) Enable page logging to system console (stderr)
configuration?.watchdogchecktimeoutinsecondsnumber(optional) How often to check main event loop for responsiveness (0 - disable)
configuration?.watchdoghangthresholdtinsecondsnumber(optional) The amount of time to give a process to recover before declaring a hang state
configuration?.loadblankpageonsuspendenabledboolean(optional) Load 'about:blank' before suspending the page
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the WebKitBrowser plugin:

-

WebBrowser interface methods:

- - - - - - - - - - - - - -
MethodDescription
exchange collectgarbageInitiate garbage collection
-

WebKitBrowser interface methods:

- - - - - - - - - - - - - -
MethodDescription
deleteRemoves contents of a directory from the persistent storage
-

-

exchange_collectgarbage method

-

Initiate garbage collection.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_collectgarbage"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

delete method

-

Removes contents of a directory from the persistent storage.

-

Description

-

Use this method to recursively delete contents of a directory

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.pathstringPath to directory (within the persistent storage) to delete contents of
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYThe given path was incorrect
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.delete",
-    "params": {
-        "path": ".cache/wpe/disk-cache"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the WebKitBrowser plugin:

-

WebBrowser interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
exchange urlPage loaded in the browser
exchange visibilityBrowser window visibility state
exchange fps ROCurrent framerate the browser is rendering at
exchange useragentUserAgent string used by the browser
exchange localstorageenabledControls the local storage availability
exchange httpcookieacceptpolicyHTTP cookies accept policy
exchange bridgereply WOResponse for legacy $badger
exchange bridgeevent WOSend legacy $badger event
-

BrowserResources interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange userscriptsUser scripts used by the browser
exchange userstylesheetsUser style sheets used by the browser
-

BrowserSecurity interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
exchange securityprofileSecurity profile for secure connections
exchange mixedcontentpolicyMixed content policy
-

WebKitBrowser interface properties:

- - - - - - - - - - - - - - - - - -
PropertyDescription
languagesUser preferred languages
headersHeaders to send on all requests that the browser makes
-

StateControl interface properties:

- - - - - - - - - - - - - -
PropertyDescription
stateRunning state of the service
-

-

exchange_url property

-

Provides access to the page loaded in the browser.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
urlstringLoaded URL
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_url"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "https://example.com"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_url",
-    "params": "https://example.com"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_visibility property

-

Provides access to the browser window visibility state.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
visiblestringVisiblity state (must be one of the following: hidden, visible)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_visibility"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "hidden"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_visibility",
-    "params": "hidden"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_fps property

-

Provides access to the current framerate the browser is rendering at.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
fpsintegerCurrent FPS
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_fps"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": 0
-}
-
-

-

exchange_useragent property

-

Provides access to the userAgent string used by the browser.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
useragentstringUserAgent value
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_useragent"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "Mozilla/5.0 (Linux; x86_64 GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 WP"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_useragent",
-    "params": "Mozilla/5.0 (Linux; x86_64 GNU/Linux) AppleWebKit/601.1 (KHTML, like Gecko) Version/8.0 Safari/601.1 WP"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_localstorageenabled property

-

Provides access to the controls the local storage availability.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
enabledbooleanControls the local storage availability
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_localstorageenabled"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": false
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_localstorageenabled",
-    "params": false
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_httpcookieacceptpolicy property

-

Provides access to the HTTP cookies accept policy.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
policystringHTTP Cookie Accept Policy Type (must be one of the following: always, never, onlyfrommaindocumentdomain, exclusivelyfrommaindocumentdomain)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_httpcookieacceptpolicy"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "always"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_httpcookieacceptpolicy",
-    "params": "always"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_bridgereply property

-

Provides access to the response for legacy $badger.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
payloadstringbase64 encoded JSON string response to be delivered to $badger.callback
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_bridgereply",
-    "params": "..."
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_bridgeevent property

-

Provides access to the send legacy $badger event.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
payloadstringbase64 encoded JSON string response to be delivered to window.$badger.event
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_bridgeevent",
-    "params": "..."
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_userscripts property

-

Provides access to the user scripts used by the browser.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
urisarrayJSON array containing URIs pointing to user scripts, supported protocols: file://
uris[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_userscripts"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "..."
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_userscripts",
-    "params": [
-        "..."
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_userstylesheets property

-

Provides access to the user style sheets used by the browser.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
urisarrayJSON array containing URIs pointing to user style sheets, supported protocols: file://
uris[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_userstylesheets"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "..."
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_userstylesheets",
-    "params": [
-        "..."
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_securityprofile property

-

Provides access to the security profile for secure connections.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
profilestringSecurity profile for secure connections
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_securityprofile"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "compatible"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_securityprofile",
-    "params": "compatible"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

exchange_mixedcontentpolicy property

-

Provides access to the mixed content policy.

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
policystringMixed content policy type (must be one of the following: allowed, blocked)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_mixedcontentpolicy"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "allowed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.exchange_mixedcontentpolicy",
-    "params": "allowed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

languages property

-

Provides access to the user preferred languages.

-

Value

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayUser preferred languages
(property)[#]string
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.languages"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        "en-US"
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.languages",
-    "params": [
-        "en-US"
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

headers property

-

Provides access to the headers to send on all requests that the browser makes.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayHeaders to send on all requests that the browser makes
(property)[#]object
(property)[#]?.namestring(optional) Header name
(property)[#]?.valuestring(optional) Header value
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.headers"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "name": "X-Forwarded-For",
-            "value": "::1"
-        }
-    ]
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.headers",
-    "params": [
-        {
-            "name": "X-Forwarded-For",
-            "value": "::1"
-        }
-    ]
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

state property

-

Provides access to the running state of the service.

-

Also see: statechange

-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)stringRunning state of the service (must be one of the following: resumed, suspended)
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.state"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "resumed"
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WebKitBrowser.1.state",
-    "params": "resumed"
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the WebKitBrowser plugin:

-

WebBrowser interface events:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EventDescription
exchange loadfinishedInitial HTML document has been completely loaded and parsed
exchange loadfailedBrowser failed to load page
exchange urlchangeSignals a URL change in the browser
exchange visibilitychangeSignals a visibility change of the browser
exchange pageclosureNotifies that the web page requests to close its window
-

WebKitBrowser interface events:

- - - - - - - - - - - - - -
EventDescription
bridgequeryA Base64 encoded JSON message from legacy $badger bridge
-

StateControl interface events:

- - - - - - - - - - - - - -
EventDescription
statechangeSignals a state change of the service
-

-

exchange_loadfinished event

-

Initial HTML document has been completely loaded and parsed.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded
params.httpstatusintegerThe response code of main resource request
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_loadfinished",
-    "params": {
-        "url": "https://example.com",
-        "httpstatus": 200
-    }
-}
-
-

-

exchange_loadfailed event

-

Browser failed to load page.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been failed to load
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_loadfailed",
-    "params": {
-        "url": "https://example.com"
-    }
-}
-
-

-

exchange_urlchange event

-

Signals a URL change in the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.urlstringThe URL that has been loaded or requested
params.loadedbooleanloaded (true) or not (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_urlchange",
-    "params": {
-        "url": "https://example.com",
-        "loaded": false
-    }
-}
-
-

-

exchange_visibilitychange event

-

Signals a visibility change of the browser.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.hiddenbooleanhidden (true) or visible (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_visibilitychange",
-    "params": {
-        "hidden": false
-    }
-}
-
-

-

exchange_pageclosure event

-

Notifies that the web page requests to close its window.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.exchange_pageclosure"
-}
-
-

-

bridgequery event

-

A Base64 encoded JSON message from legacy $badger bridge.

-
-

This API is obsolete. It is no longer recommended for use in new implementations.

-
-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsstring
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.bridgequery",
-    "params": "..."
-}
-
-

-

statechange event

-

Signals a state change of the service.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.suspendedbooleanDetermines if the service has entered suspended state (true) or resumed state (false)
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.statechange",
-    "params": {
-        "suspended": false
-    }
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WebPAPlugin/index.html b/WebPAPlugin/index.html deleted file mode 100644 index 6f21c77..0000000 --- a/WebPAPlugin/index.html +++ /dev/null @@ -1,2008 +0,0 @@ - - - - - - - - - - - - - - - - - WebPA Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

WebPA Plugin

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A WebPA plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WebPA 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The WebPA plugin provides web browsing functionality based on the WebPA engine.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: WebPA)
classnamestringClass name: WebPA
locatorstringLibrary name: libWPEFrameworkWebPA.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.interfacestring(optional) Interface
configuration?.pingwaittimestring(optional) Ping waittime timout
configuration?.webpaurlstring(optional) WebPA url
configuration?.paroduslocalurlstring(optional) Parodus local url
configuration?.partneridstring(optional) Partner id
configuration?.webpabackoffmaxstring(optional) WebPA backoff max
configuration?.sslcertpathstring(optional) Path of SSL certification
configuration?.forceipv4string(optional) Force IPv4
configuration?.locationstring(optional) Location
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WiFiControlAPI/index.html b/WiFiControlAPI/index.html deleted file mode 100644 index f47063d..0000000 --- a/WiFiControlAPI/index.html +++ /dev/null @@ -1,2982 +0,0 @@ - - - - - - - - - - - - - - - - - WiFi Control API - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

WiFi Control API

-

Version: 1.0

-

Status: ⚫⚪⚪

-

A WifiControl interface for Thunder framework.

-

(Defined by WifiControl.json)

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WifiControl interface. It includes detailed specification about its methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

WifiControl JSON-RPC interface.

-

-

Methods

-

The following methods are provided by the WifiControl interface:

-

WifiControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
deleteForgets the configuration of a network
storeStores the configurations in persistent storage
scanSearches for available networks
connectAttempts connection to a network
disconnectDisconnects from a network
-

-

delete method

-

Forgets the configuration of a network.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when unable to update config list stored on disk
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.delete",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

store method

-

Stores the configurations in persistent storage.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
40ERROR_WRITE_ERRORReturned when the operation failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.store"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

scan method

-

Searches for available networks.

-

Also see: scanresults

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when scan is already in progress
2ERROR_UNAVAILABLEReturned when scanning is not available for some reason
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.scan"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

connect method

-

Attempts connection to a network.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
43ERROR_NOT_EXISTReturned when the network with a the given SSID doesn't exists
22ERROR_UNKNOWN_KEYReturned when the network with a the given security type doesn't exists
2ERROR_UNAVAILABLEReturned when connection fails if there is no associated bssid to connect and not defined as AccessPoint. Rescan and try to connect
38ERROR_INVALID_SIGNATUREReturned when connection is attempted with wrong password
9ERROR_ALREADY_CONNECTEDReturned when connection already exists
4ERROR_ASYNC_ABORTEDReturned when connection attempt fails for other reasons
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.connect",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

disconnect method

-

Disconnects from a network.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYReturned when the network with a the given SSID doesn't exists
4ERROR_ASYNC_ABORTEDReturned when disconnection attempt fails for other reasons
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.disconnect",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the WifiControl interface:

-

WifiControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
status RONetwork status
networks ROAvailable networks
configs ROAll WiFi configurations
configSingle WiFi configuration
debug WOSets debug level
-

-

status property

-

Provides access to the network status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectNetwork status
(property).connectedstringIdentifier of the connected network
(property).scanningbooleanIndicates whether a scanning for available network is in progress
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.status"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "connected": "MyCorporateNetwork",
-        "scanning": false
-    }
-}
-
-

-

networks property

-

Provides access to the available networks.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayAvailable networks
(property)[#]object
(property)[#].ssidstringIdentifier of a network
(property)[#].pairsarray
(property)[#].pairs[#]object
(property)[#].pairs[#].methodstringEncryption method used by the network
(property)[#].pairs[#].keysarray
(property)[#].pairs[#].keys[#]stringTypes of supported keys
(property)[#]?.bssidstring(optional) 48-bits long BSS identifier (might be MAC format)
(property)[#].frequencynumberNetwork's frequency in MHz
(property)[#].signalnumberNetwork's signal level in dBm
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.networks"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "pairs": [
-                {
-                    "method": "WPA",
-                    "keys": [
-                        "psk"
-                    ]
-                }
-            ],
-            "bssid": "94:b4:0f:77:cc:71",
-            "frequency": 5180,
-            "signal": -44
-        }
-    ]
-}
-
-

-

configs property

-

Provides access to the all WiFi configurations.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayAll WiFi configurations
(property)[#]object
(property)[#].ssidstringIdentifier of a network
(property)[#]?.typestring(optional) Type of protection. WPA_WPA2 means WPA, WPA2 and mixed types are allowed (must be one of the following: Unknown, Unsecure, WPA, WPA2, WPA_WPA2, Enterprise)
(property)[#].hiddenbooleanIndicates whether a network is hidden
(property)[#].accesspointbooleanIndicates if the network operates in AP mode
(property)[#]?.pskstring(optional) Network's PSK in plaintext (irrelevant if hash is provided)
(property)[#]?.hashstring(optional) Network's PSK as a hash
(property)[#].identitystringUser credentials (username part) for EAP
(property)[#].passwordstringUser credentials (password part) for EAP
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYConfiguration does not exist
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.configs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "type": "WPA_WPA2",
-            "hidden": false,
-            "accesspoint": true,
-            "psk": "secretpresharedkey",
-            "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-            "identity": "user",
-            "password": "password"
-        }
-    ]
-}
-
-

-

config property

-

Provides access to the single WiFi configuration.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSingle WiFi configuration
(property).ssidstringIdentifier of a network
(property)?.typestring(optional) Type of protection. WPA_WPA2 means WPA, WPA2 and mixed types are allowed (must be one of the following: Unknown, Unsecure, WPA, WPA2, WPA_WPA2, Enterprise)
(property).hiddenbooleanIndicates whether a network is hidden
(property).accesspointbooleanIndicates if the network operates in AP mode
(property)?.pskstring(optional) Network's PSK in plaintext (irrelevant if hash is provided)
(property)?.hashstring(optional) Network's PSK as a hash
(property).identitystringUser credentials (username part) for EAP
(property).passwordstringUser credentials (password part) for EAP
-
-

The ssid argument shall be passed as the index to the property, e.g. WifiControl.1.config@MyCorporateNetwork. If not specified all configurations are returned.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYConfiguration does not exist
23ERROR_INCOMPLETE_CONFIGPassed in configuration is invalid
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.config@MyCorporateNetwork"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "ssid": "MyCorporateNetwork",
-        "type": "WPA_WPA2",
-        "hidden": false,
-        "accesspoint": true,
-        "psk": "secretpresharedkey",
-        "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-        "identity": "user",
-        "password": "password"
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.config@MyCorporateNetwork",
-    "params": {
-        "ssid": "MyCorporateNetwork",
-        "type": "WPA_WPA2",
-        "hidden": false,
-        "accesspoint": true,
-        "psk": "secretpresharedkey",
-        "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-        "identity": "user",
-        "password": "password"
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

debug property

-

Provides access to the sets debug level.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberDebug level
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.debug",
-    "params": 0
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the WifiControl interface:

-

WifiControl interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
scanresultsSignals that the scan operation has finished
networkchangeSignals that a network property has changed
connectionchangeNotifies about connection state change
-

-

scanresults event

-

Signals that the scan operation has finished.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsarray
params[#]object
params[#].ssidstringIdentifier of a network
params[#].pairsarray
params[#].pairs[#]object
params[#].pairs[#].methodstringEncryption method used by the network
params[#].pairs[#].keysarray
params[#].pairs[#].keys[#]stringTypes of supported keys
params[#]?.bssidstring(optional) 48-bits long BSS identifier (might be MAC format)
params[#].frequencynumberNetwork's frequency in MHz
params[#].signalnumberNetwork's signal level in dBm
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scanresults",
-    "params": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "pairs": [
-                {
-                    "method": "WPA",
-                    "keys": [
-                        "psk"
-                    ]
-                }
-            ],
-            "bssid": "94:b4:0f:77:cc:71",
-            "frequency": 5180,
-            "signal": -44
-        }
-    ]
-}
-
-

-

networkchange event

-

Signals that a network property has changed. e.g. frequency.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.networkchange"
-}
-
-

-

connectionchange event

-

Notifies about connection state change. i.e. connected/disconnected.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsstringSSID of the connected network in case of connect or empty in case of disconnect
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.connectionchange",
-    "params": "MyCorporateNetwork"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/WifiControlPlugin/index.html b/WifiControlPlugin/index.html deleted file mode 100644 index ead79d3..0000000 --- a/WifiControlPlugin/index.html +++ /dev/null @@ -1,3044 +0,0 @@ - - - - - - - - - - - - - - - - - Wifi Control Plugin - Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - Skip to content - - -
-
- -
- - - -
- - -
- -
- - - - - - -
-
- - - -
-
-
- - - - -
-
-
- - - -
-
-
- - - - -
-
-
- - -
-
- - - - -

-

Wifi Control Plugin

-

Version: 1.0

-

Status: ⚫⚫⚪

-

A WifiControl plugin for Thunder framework.

-

Table of Contents

- -

-

Introduction

-

-

Scope

-

This document describes purpose and functionality of the WifiControl plugin. It includes detailed specification about its configuration, methods and properties provided, as well as 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.

- - - - - - - - - - - - - - - - - - - - - - - - - -
AcronymDescription
APIApplication Programming Interface
HTTPHypertext Transfer Protocol
JSONJavaScript Object Notation; a data interchange format
JSON-RPCA remote procedure call protocol encoded in JSON
-

The table below provides and overview of terms and abbreviations used in this document and their definitions.

- - - - - - - - - - - - - -
TermDescription
callsignThe 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 IDDescription
HTTPHTTP specification
JSON-RPCJSON-RPC 2.0 specification
JSONJSON specification
ThunderThunder API Reference
-

-

Description

-

The WiFi Control plugin allows to manage various aspects of wireless connectivity.

-

The plugin is designed to be loaded and executed within the Thunder framework. For more information about the framework refer to [Thunder].

-

-

Configuration

-

The table below lists configuration options of the plugin.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
callsignstringPlugin instance name (default: WifiControl)
classnamestringClass name: WifiControl
locatorstringLibrary name: libWPEWifiControl.so
autostartbooleanDetermines if the plugin shall be started automatically along with the framework
configurationobject(optional)
configuration?.connectorstring(optional) Connector name
configuration?.interfacestring(optional) Interface name
configuration?.applicationstring(optional) Application name
configuration?.preferredstring(optional) Preferred
configuration?.autoconnectstring(optional) Enable autoconnect
configuration?.retryintervalstring(optional) Retry interval
-

-

Interfaces

-

This plugin implements the following interfaces:

- -

-

Methods

-

The following methods are provided by the WifiControl plugin:

-

WifiControl interface methods:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MethodDescription
deleteForgets the configuration of a network
storeStores the configurations in persistent storage
scanSearches for available networks
connectAttempts connection to a network
disconnectDisconnects from a network
-

-

delete method

-

Forgets the configuration of a network.

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when unable to update config list stored on disk
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.delete",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

store method

-

Stores the configurations in persistent storage.

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
40ERROR_WRITE_ERRORReturned when the operation failed
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.store"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

scan method

-

Searches for available networks.

-

Also see: scanresults

-

Parameters

-

This method takes no parameters.

-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
12ERROR_INPROGRESSReturned when scan is already in progress
2ERROR_UNAVAILABLEReturned when scanning is not available for some reason
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.scan"
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

connect method

-

Attempts connection to a network.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
43ERROR_NOT_EXISTReturned when the network with a the given SSID doesn't exists
22ERROR_UNKNOWN_KEYReturned when the network with a the given security type doesn't exists
2ERROR_UNAVAILABLEReturned when connection fails if there is no associated bssid to connect and not defined as AccessPoint. Rescan and try to connect
38ERROR_INVALID_SIGNATUREReturned when connection is attempted with wrong password
9ERROR_ALREADY_CONNECTEDReturned when connection already exists
4ERROR_ASYNC_ABORTEDReturned when connection attempt fails for other reasons
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.connect",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

disconnect method

-

Disconnects from a network.

-

Also see: connectionchange

-

Parameters

- - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsobject
params.ssidstringIdentifier of a network
-

Result

- - - - - - - - - - - - - - - -
NameTypeDescription
resultnullAlways null
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYReturned when the network with a the given SSID doesn't exists
4ERROR_ASYNC_ABORTEDReturned when disconnection attempt fails for other reasons
-

Example

-

Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.disconnect",
-    "params": {
-        "ssid": "MyCorporateNetwork"
-    }
-}
-
-

Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": null
-}
-
-

-

Properties

-

The following properties are provided by the WifiControl plugin:

-

WifiControl interface properties:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PropertyDescription
status RONetwork status
networks ROAvailable networks
configs ROAll WiFi configurations
configSingle WiFi configuration
debug WOSets debug level
-

-

status property

-

Provides access to the network status.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectNetwork status
(property).connectedstringIdentifier of the connected network
(property).scanningbooleanIndicates whether a scanning for available network is in progress
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.status"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "connected": "MyCorporateNetwork",
-        "scanning": false
-    }
-}
-
-

-

networks property

-

Provides access to the available networks.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayAvailable networks
(property)[#]object
(property)[#].ssidstringIdentifier of a network
(property)[#].pairsarray
(property)[#].pairs[#]object
(property)[#].pairs[#].methodstringEncryption method used by the network
(property)[#].pairs[#].keysarray
(property)[#].pairs[#].keys[#]stringTypes of supported keys
(property)[#]?.bssidstring(optional) 48-bits long BSS identifier (might be MAC format)
(property)[#].frequencynumberNetwork's frequency in MHz
(property)[#].signalnumberNetwork's signal level in dBm
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.networks"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "pairs": [
-                {
-                    "method": "WPA",
-                    "keys": [
-                        "psk"
-                    ]
-                }
-            ],
-            "bssid": "94:b4:0f:77:cc:71",
-            "frequency": 5180,
-            "signal": -44
-        }
-    ]
-}
-
-

-

configs property

-

Provides access to the all WiFi configurations.

-
-

This property is read-only.

-
-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)arrayAll WiFi configurations
(property)[#]object
(property)[#].ssidstringIdentifier of a network
(property)[#]?.typestring(optional) Type of protection. WPA_WPA2 means WPA, WPA2 and mixed types are allowed (must be one of the following: Unknown, Unsecure, WPA, WPA2, WPA_WPA2, Enterprise)
(property)[#].hiddenbooleanIndicates whether a network is hidden
(property)[#].accesspointbooleanIndicates if the network operates in AP mode
(property)[#]?.pskstring(optional) Network's PSK in plaintext (irrelevant if hash is provided)
(property)[#]?.hashstring(optional) Network's PSK as a hash
(property)[#].identitystringUser credentials (username part) for EAP
(property)[#].passwordstringUser credentials (password part) for EAP
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYConfiguration does not exist
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.configs"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "type": "WPA_WPA2",
-            "hidden": false,
-            "accesspoint": true,
-            "psk": "secretpresharedkey",
-            "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-            "identity": "user",
-            "password": "password"
-        }
-    ]
-}
-
-

-

config property

-

Provides access to the single WiFi configuration.

-

Value

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
(property)objectSingle WiFi configuration
(property).ssidstringIdentifier of a network
(property)?.typestring(optional) Type of protection. WPA_WPA2 means WPA, WPA2 and mixed types are allowed (must be one of the following: Unknown, Unsecure, WPA, WPA2, WPA_WPA2, Enterprise)
(property).hiddenbooleanIndicates whether a network is hidden
(property).accesspointbooleanIndicates if the network operates in AP mode
(property)?.pskstring(optional) Network's PSK in plaintext (irrelevant if hash is provided)
(property)?.hashstring(optional) Network's PSK as a hash
(property).identitystringUser credentials (username part) for EAP
(property).passwordstringUser credentials (password part) for EAP
-
-

The ssid argument shall be passed as the index to the property, e.g. WifiControl.1.config@MyCorporateNetwork. If not specified all configurations are returned.

-
-

Errors

- - - - - - - - - - - - - - - - - - - - -
CodeMessageDescription
22ERROR_UNKNOWN_KEYConfiguration does not exist
23ERROR_INCOMPLETE_CONFIGPassed in configuration is invalid
-

Example

-

Get Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.config@MyCorporateNetwork"
-}
-
-

Get Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": {
-        "ssid": "MyCorporateNetwork",
-        "type": "WPA_WPA2",
-        "hidden": false,
-        "accesspoint": true,
-        "psk": "secretpresharedkey",
-        "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-        "identity": "user",
-        "password": "password"
-    }
-}
-
-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.config@MyCorporateNetwork",
-    "params": {
-        "ssid": "MyCorporateNetwork",
-        "type": "WPA_WPA2",
-        "hidden": false,
-        "accesspoint": true,
-        "psk": "secretpresharedkey",
-        "hash": "59e0d07fa4c7741797a4e394f38a5c321e3bed51d54ad5fcbd3f84bc7415d73d",
-        "identity": "user",
-        "password": "password"
-    }
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

debug property

-

Provides access to the sets debug level.

-
-

This property is write-only.

-
-

Value

- - - - - - - - - - - - - - - -
NameTypeDescription
(property)numberDebug level
-

Errors

- - - - - - - - - - - - - - - -
CodeMessageDescription
2ERROR_UNAVAILABLEReturned when the operation is unavailable
-

Example

-

Set Request

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "method": "WifiControl.1.debug",
-    "params": 0
-}
-
-

Set Response

-
{
-    "jsonrpc": "2.0",
-    "id": 42,
-    "result": "null"
-}
-
-

-

Notifications

-

Notifications are autonomous events, triggered by the internals of the implementation, and broadcasted via JSON-RPC to all registered observers. Refer to [Thunder] for information on how to register for a notification.

-

The following events are provided by the WifiControl plugin:

-

WifiControl interface events:

- - - - - - - - - - - - - - - - - - - - - -
EventDescription
scanresultsSignals that the scan operation has finished
networkchangeSignals that a network property has changed
connectionchangeNotifies about connection state change
-

-

scanresults event

-

Signals that the scan operation has finished.

-

Parameters

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeDescription
paramsarray
params[#]object
params[#].ssidstringIdentifier of a network
params[#].pairsarray
params[#].pairs[#]object
params[#].pairs[#].methodstringEncryption method used by the network
params[#].pairs[#].keysarray
params[#].pairs[#].keys[#]stringTypes of supported keys
params[#]?.bssidstring(optional) 48-bits long BSS identifier (might be MAC format)
params[#].frequencynumberNetwork's frequency in MHz
params[#].signalnumberNetwork's signal level in dBm
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.scanresults",
-    "params": [
-        {
-            "ssid": "MyCorporateNetwork",
-            "pairs": [
-                {
-                    "method": "WPA",
-                    "keys": [
-                        "psk"
-                    ]
-                }
-            ],
-            "bssid": "94:b4:0f:77:cc:71",
-            "frequency": 5180,
-            "signal": -44
-        }
-    ]
-}
-
-

-

networkchange event

-

Signals that a network property has changed. e.g. frequency.

-

Parameters

-

This event carries no parameters.

-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.networkchange"
-}
-
-

-

connectionchange event

-

Notifies about connection state change. i.e. connected/disconnected.

-

Parameters

- - - - - - - - - - - - - - - -
NameTypeDescription
paramsstringSSID of the connected network in case of connect or empty in case of disconnect
-

Example

-
{
-    "jsonrpc": "2.0",
-    "method": "client.events.1.connectionchange",
-    "params": "MyCorporateNetwork"
-}
-
- - - - - - - -
-
-
- -
- - - - -
-
-
-
- - - - - - - - \ No newline at end of file