RDK Resources
[*RDK Preferred*]
Code Management Facility
RDK Forums
[RDK Conferences]
RDK Support
Archives
Papers & Presentations Archive
...
Below table enlists the API mapping details of current DAB adapter implementation of RDK for STB devices. RDK APIs are listed under 'Thunder Implementation'.
API details are as per dab-adapter version : https://github.com/device-automation-bus/dab-adapter-rs/commit/f6318d0080ab8282f758bb2bf19a0097f58f34a6 (6.0 f6318d)
DAB Request | DAB Category | Thunder Implementation for the Request | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
operations/list | Supported Operations | No RDK specific implementation required except platform specific key map configuration. | ||||||||
applications/list | Applications | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getavailabletypes Use the response to match the AppID as per DAB-2.0 spec. [Note: should have YouTube, Amazon & Netflix as types in the API response.] | ||||||||
applications/launch | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=launchgetstate Note: Implementation supports only YouTube common port. https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=setfocusapplications/launch-with-contentlaunch getvisibilitycode rdkcentral.rdkcentral github.com io/r rdkservices/plugins #/gitiles/rdk/components/generic/cobalt/+/refs/heads/24.lts.dev/plugin/doc/CobaltPlugin.md#method.deeplink https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=movetofront https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=setfocus api/RDKShellPlugin?id=setvisibility Note: Implementation supports only YouTube common port. | applications/get-state | If parameter is present; App specific deeplink API is invoked. Please see Provideplatformspecificapplifecycledelays/timeouts for adding platform specific tuning. | |||||||
applications/launch-with-contentrdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getstateapplications/exit | https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=destroygetstate https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=suspend | device/info | Systemhttps://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginRDKShellPlugin?id=getconnectedvideodisplaysmovetofront https://rdkcentral.github.io/rdkservices/#/api/SystemPluginRDKShellPlugin?id=getdeviceinfo [estb_mac is used as DAB Device ID]setfocus https://rdkcentral.github.io/rdkservices/#/api/RDKShellPlugin?id=getscreenresolution getvisibilityNetworkPlugin RDKShellPlugin?id=getinterfaces setvisibilityhttps://rdkcentral.github.io/rdkservices/#/api/DeviceInfoPlugin?id=systeminfo [uptime is extracted from this] Note: Implementation supports only YouTube common port. Please see Provideplatformspecificapplifecycledelays/timeouts for adding platform specific tuning. | |||||||
applications/get-state | https://rdkcentral.github.io/rdkservices/#/api/ DeviceIdentificationPluginRDKShellPlugin?id= deviceidentificationgetstate | |||||||||
applications/exit | https://rdkcentral.github.io/rdkservices/#/api/ NetworkPluginRDKShellPlugin?id= getipsettingsgetstate DeviceInfoPluginRDKShellPlugin?id= makedestroy https://rdkcentral.github.io/rdkservices/#/api/DeviceInfoPluginRDKShellPlugin?id=modelidsuspend Please see Provideplatformspecificapplifecycledelays/timeouts for adding platform specific tuning. | |||||||||
device/info | System | https://rdkcentral.github.io/rdkservices/#/api/DeviceInfoPluginDisplaySettingsPlugin?id=serialnumbergetconnectedvideodisplays https://rdkcentral.github.io/rdkservices/#/api/DeviceInfoPluginSystemPlugin?id=firmwareversiongetdeviceinfo [estb_mac is used as DAB Device ID] https://rdkcentral.github.io/rdkservices/#/api/DeviceIdentificationPluginRDKShellPlugin?id=deviceidentification [chipset is extracted from this] system/restarthttps://rdkcentral.github.io/rdkservices/#/api/ SystemPluginrebootsystem/settings/list https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDeviceInfoPlugin?id=getsupportedresolutionssysteminfo [uptime is extracted from this] https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDeviceIdentificationPlugin?id=getsupportedaudioportsdeviceidentification https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginNetworkPlugin?id=getsupportedaudiomodesgetipsettings https://rdkcentral.github.io/rdkservices/#/api/FrameRatePluginDeviceInfoPlugin?id=getdisplayframeratemake https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDeviceInfoPlugin?id=getsettophdrsupportmodelid https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDeviceInfoPlugin?id=gettvhdrsupportserialnumber MEMC: false LowLatencyMode: true as its being enabled by the pipeline property. No plugin exposed APIs available. VideoInputSource : Home (STB's playback source is its app itself.) PictureMode: None (not an STB feature) https://rdkcentral.github.io/rdkservices/#/api/DeviceInfoPlugin?id=firmwareversion https://rdkcentral.github.io/rdkservices/#/api/DeviceIdentificationPlugin?id=deviceidentification [chipset is extracted from this] | ||||||||
system/restartsystem/settings/get | https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin SystemPlugin?id=getsupportedresolutions reboot | |||||||||
system/settings/list | https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getsupportedaudioportsgetsupportedresolutions https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getsupportedaudiomodesgetsupportedaudioports https://rdkcentral.github.io/rdkservices/#/api/HdmiCec_2PluginDisplaySettingsPlugin?id=getenabledgetsupportedaudiomodes https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getsoundmodegetsettophdrsupport https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getmutedgettvhdrsupport https://rdkcentral.github.io/rdkservices/#/api/FrameRatePluginTextToSpeechPlugin?id=getdisplayframerateisttsenabled CEC: checks availability of https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getconnectedvideodisplays https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=getsettophdrsupport https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=gettvhdrsupportMEMC: false LowLatencyMode: true as its being enabled by the pipeline property. No plugin exposed APIs available. VideoInputSource : Home (STB's playback source is its app itself.) PictureMode: None (not an STB feature) | |||||||||
system/settings/get | https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDisplayInfoPlugin?id=getconnectedaudioportswidth https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginDisplayInfoPlugin?id=getvolumelevelheight https://rdkcentral.github.io/rdkservices/#/api/TextToSpeechPluginDisplayInfoPlugin?id=isttsenabledframerate Note: expecting response as "Framerate60" instead of "FRAMERATE_60" as per component owner review. Documentation needs updation. https://rdkcentral.github.io/rdkservices/#/api/UserPreferencesPluginDisplaySettingsPlugin?id=getuilanguage system/settings/sethttps://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setcurrentresolutiongetsupportedaudioports https://rdkcentral.github.io/rdkservices/#/api/FrameRatePluginDisplaySettingsPlugin?id=setdisplayframerategetsupportedaudiomodes https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPluginHdmiCec_2Plugin?id=setvolumelevelgetenabled https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setmutedgetsoundmode https://rdkcentral.github.io/rdkservices/#/api/HdmiCec_2PluginDisplaySettingsPlugin?id=setenabledgetmuted https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setenableaudioportgetconnectedvideodisplays https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setforcehdrmodegetsettophdrsupport https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setsoundmodegettvhdrsupport https://rdkcentral.github.io/rdkservices/#/api/TextToSpeechPluginDisplaySettingsPlugin?id=enablettsgetconnectedaudioports https://rdkcentral.github.io/rdkservices/#/api/UserPreferencesPluginDisplaySettingsPlugin?id=setuilanguagegetvolumelevel PictureMode: not implemented (not an STB feature) VideoInputSource : not implemented due to lack of device capability. | input/key/list | InputPlatform configurable key map /opt/dab_platform_keymap.json with following format: key value pair of "DAB_KEY": PLATFORM_KEYCODE
| https://rdkcentral.github.io/rdkservices/#/api/TextToSpeechPlugin?id=isttsenabled https://rdkcentral.github.io/rdkservices/#/api/UserPreferencesPlugin?id=getuilanguage | ||||||
system/settings/set | input/key-press | https:/ /rdkcentral.github.io/rdkservices/#/api/ RDKShellPlugininjectkey[Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] input/long-key-presshttps://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setcurrentresolution https://rdkcentral.github.io/rdkservices/#/api/RDKShellPluginDisplaySettingsPlugin?id=injectkeygetconnectedaudioports [Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] | output/image | Output https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setvolumelevel https://rdkcentral.github.io/rdkservices/#/api/ScreenCapturePluginDisplaySettingsPlugin?id=uploadscreencapture | device-telemetry/start | Device & Application TelemetryTBD: Funtionality not tested. | ||||
device-telemetry/stop | TBD: Funtionality not tested. | |||||||||
device-telemetry/metrics | TBD: Funtionality not tested. | |||||||||
app-telemetry/start | TBD: Funtionality not tested. | |||||||||
app-telemetry/stop | TBD: Funtionality not tested. | |||||||||
app-telemetry/metrics | TBD: Funtionality not tested. | |||||||||
health-check/get | Health Check | No RDK specific implementation required. | ||||||||
messages | Operational General Notifications | TBD: Funtionality not tested. | ||||||||
https://rdkcentral.github.io/rdkservices/#/api/HdmiCec_2Plugin?id=setenabled https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setenableaudioport https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setforcehdrmode https://rdkcentral.github.io/rdkservices/#/api/DisplaySettingsPlugin?id=setsoundmode | voice/list | Voicehttps:// rdkcentral.github.io/rdkservices/#/api/ VoiceControlPluginvoicestatusvoice/sethttps://rdkcentral.github.io/rdkservices/#/api/ VoiceControlPluginconfigurevoice with following parameter in the current implementation.
PictureMode: not implemented (not an STB feature) VideoInputSource : not implemented due to lack of device capability. | ||||||||
input/key/list | Input | Platform configurable key map /opt/dab_platform_keymap.json. Please see Provideplatformkeymapconfiguration | ||||||||
input/key-press | voice/send-audio | | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin RDKShellPlugin?id=voicesessionrequest
| voice/send-text | injectkey [Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] | |||||
input/long-key-press | To convert the audio to platform compatible format; gst-launch-1.0 binary is required. https://rdkcentral.githubVoiceControlPluginvoicesessionrequest
| |||||||||
version | Version | No RDK specific implementation required. | ||||||||
[Note: injectKey will not be overridden by the rdkshell_keymapping.json so put the final KEYCODE in /opt/dab_platform_keymap.json] | ||||||||||
output/image | Output | For generating DAB Device ID | Generic | https://rdkcentral.github.io/rdkservices/#/api/SystemPluginScreenCapturePlugin?id=getdeviceinfo with param estb_mac | ||||||
For feature/service availability | Generic | https://github.com/rdkcentral/Thunder/blob/master/Source/WPEFramework/doc/ControllerPlugin.md#property.services [Used as 'status@callsign'] |
...
device-telemetry/start | Device & Application Telemetry | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. | ||||
device-telemetry/stop | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. | |||||
device-telemetry/metrics | As per DAB-2.0 specifiction; it is an optional requirement. | |||||
app-telemetry/start | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. | |||||
app-telemetry/stop | As per DAB-2.0 specifiction; it is an optional requirement. TBD: Funtionality not tested. | |||||
app-telemetry/metrics | As per DAB-2.0 specifiction; it is an optional requirement. Funtionality not implemented. | |||||
health-check/get | Health Check | No RDK specific implementation required. | ||||
messages | Operational General Notifications | As per DAB-2.0 specifiction; it is an optional requirement. | ||||
voice/list | Voice | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicestatus | ||||
voice/set | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=configurevoice with following parameter in the current implementation.
| |||||
voice/send-audio | https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicesessionrequest
| |||||
voice/send-text | To convert the audio to platform compatible format; gst-launch-1.0 binary is required. https://rdkcentral.github.io/rdkservices/#/api/VoiceControlPlugin?id=voicesessionrequest
| |||||
version | Version | No RDK specific implementation required. | ||||
For generating DAB Device ID | Generic | https://rdkcentral.github.io/rdkservices/#/api/SystemPlugin?id=getdeviceinfo with param estb_mac | ||||
For feature/service availability | Generic | https://github.com/rdkcentral/Thunder/blob/master/Source/WPEFramework/doc/ControllerPlugin.md#property.services [Used as 'status@callsign'] |
RDK dab-adapter by default is configured to align DAB keymap with RDKShell keycodes https://github.com/rdkcentral/RDKShell/blob/master/linuxkeys.h. There is another provision to override or add more keys by introducing a platform specific keymap configuration file to dab-adapter runtime.
Create /opt/dab_platform_keymap.json with following format: key value pair of "DAB_KEY": PLATFORM_KEYCODE.
Code Block | ||
---|---|---|
| ||
{
"KEY_GREEN": 406,
"KEY_YELLOW": 403,
"KEY_BLUE": 404,
"KEY_HOME": 173
} |
The time required to launch and exit an app runtime would be greately dependent on the platform. DAB-2.0 specification mandates that the DAB app lifecycle APIs shall only return the DAB response after the app lifecycle is completed.
Create /opt/dab_platform_app_lifecycle.json and add app specific parameters as per following template.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"dab-app-id-lowercase": {
"cold_launch_timeout_ms": 6000,
"resume_launch_timeout_ms": 3000,
"exit_to_destroy_timeout_ms": 2500,
"exit_to_background_timeout_ms": 2000
}
}
|
Code Block | ||||
---|---|---|---|---|
| ||||
{
"youtube": {
"cold_launch_timeout_ms": 6000,
"resume_launch_timeout_ms": 3000,
"exit_to_destroy_timeout_ms": 2500,
"exit_to_background_timeout_ms": 2000
},
"primevideo": {
"cold_launch_timeout_ms": 8000,
"resume_launch_timeout_ms": 4000,
"exit_to_destroy_timeout_ms": 5000,
"exit_to_background_timeout_ms": 2300
}
}
|
...