
{"id":13072,"date":"2026-10-29T09:43:23","date_gmt":"2026-10-29T09:43:23","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=13072"},"modified":"2026-10-29T10:31:06","modified_gmt":"2026-10-29T10:31:06","slug":"rdk-control-manager","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/","title":{"rendered":"RDK Control Manager"},"content":{"rendered":"\n<p><code>rdkcentral\/control<\/code> provides the Control Manager for RDK-based set-top boxes and smart TV platforms. It coordinates remote controls and their input, voice sessions, device state, configuration, firmware and IR database operations, and integration with platform services.<\/p>\n\n\n\n<p>The main product is the <code>controlMgr<\/code> executable. The project is intended to be built as part of an RDK platform or SDK environment; it is not a standalone desktop application.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">System Context<\/h2>\n\n\n\n<p><code>controlMgr<\/code> exposes its public-facing functionality through the <code>RemoteControl<\/code> and <code>VoiceControl<\/code> Thunder plugins. It uses platform HALs and services to communicate with physical remotes and voice hardware:<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">flowchart TB\n  Applications[\"RDK applications and platform services\"] --> RemoteControl[\"RemoteControl\\nThunder plugin\"]\n  Applications --> VoiceControl[\"VoiceControl\\nThunder plugin\"]\n\n  RemoteControl --> ControlMgr[\"controlMgr\"]\n  VoiceControl --> ControlMgr\n\n  ControlMgr --> BlueZ[\"BlueZ\\nBLE remotes\"]\n  ControlMgr --> IRDB[\"IR Database HAL\\nProvides third-party IR codes\"]\n  ControlMgr --> RF4CE[\"RF4CE HAL\\nSupport for legacy remotes\\n(deprecated)\"]\n  ControlMgr --> FarField[\"Far Field Voice HAL\\nSupport for hands-free voice\\n(not yet supported)\"]<\/pre><\/div>\n\n\n\n<p>The HAL and service integrations are platform-facing implementation dependencies; the Thunder plugins are the primary public interface consumed by the rest of the RDK system. The RF4CE HAL integration is deprecated and is retained for legacy remote support.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What It Provides<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Remote control management over BLE and RF4CE, including discovery, pairing, key events, device updates, and firmware operations.<\/li>\n\n\n\n<li>Voice and audio session handling for supported remote control networks and voice endpoints.<\/li>\n\n\n\n<li>IR database and IR input support, including platform and vendor integration points.<\/li>\n\n\n\n<li>Runtime configuration, RFC-backed settings, persistence, validation, and recovery.<\/li>\n\n\n\n<li>Device power-state handling and integration with RDK services through Thunder plugins.<\/li>\n\n\n\n<li>Optional telemetry, authentication, Breakpad, asynchronous messaging, and platform-specific features controlled by CMake options.<\/li>\n<\/ul>\n\n\n\n<p>See<a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/control-product-functionality\/\"> Control Product Functionality<\/a> for a fuller description of product capabilities and <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/CHANGELOG.md\">CHANGELOG.md<\/a> for release history.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Repository Layout<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Path<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td><code>src\/<\/code><\/td><td>Control Manager implementation and subsystem code<\/td><\/tr><tr><td><code>src\/ble\/<\/code><\/td><td>BLE remote-control support and BLE HAL adapters<\/td><\/tr><tr><td><code>src\/rf4ce\/<\/code><\/td><td>RF4CE remote-control support<\/td><\/tr><tr><td><code>src\/voice\/<\/code><\/td><td>Voice session, audio endpoint, IPC, and telemetry code<\/td><\/tr><tr><td><code>src\/irdb\/<\/code><\/td><td>IR database interfaces and platform stubs<\/td><\/tr><tr><td><code>src\/thunder\/<\/code><\/td><td>Thunder controller, plugins, and platform-service integration<\/td><\/tr><tr><td><code>src\/config\/<\/code><\/td><td>Runtime configuration and configuration attributes<\/td><\/tr><tr><td><code>src\/database\/<\/code><\/td><td>Persistent Control Manager data<\/td><\/tr><tr><td><code>src\/rfc\/<\/code><\/td><td>RFC configuration integration<\/td><\/tr><tr><td><code>src\/ipc\/<\/code><\/td><td>Inter-process communication and event handling<\/td><\/tr><tr><td><code>include\/<\/code><\/td><td>Public Control Manager, HAL, and IPC interfaces<\/td><\/tr><tr><td><code>ci\/<\/code><\/td><td>Dependency and CI build scripts<\/td><\/tr><tr><td><code>CMakeLists.txt<\/code><\/td><td>Build options, dependencies, targets, and installation rules<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Building<\/h2>\n\n\n\n<p>Builds require an RDK-compatible Linux environment or the corresponding Yocto SDK\/container. The project links to platform-provided components such as Thunder\/WPEFramework, BLE and RF4CE libraries, <code>xr-voice-sdk<\/code>, GLib, SQLite, D-Bus, and other RDK libraries. A regular macOS or generic Linux installation does not provide these dependencies by itself.<\/p>\n\n\n\n<p>For a native CI build, inspect the scripts in <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/ci\"><code>ci\/<\/code><\/a> and the <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/.github\/workflows\/native_full_build.yml\">native build workflow<\/a>. Enable or disable features with CMake options. The exact options and their dependencies are defined in <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/CMakeLists.txt\">CMakeLists.txt<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Runtime Configuration<\/h2>\n\n\n\n<p>The default configuration is defined in <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/src\/ctrlm_config_default.json\"><code>src\/ctrlm_config_default.json<\/code><\/a>, with configuration handling implemented under <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/src\/config\"><code>src\/config\/<\/code><\/a>. The build installs the generated <code>ctrlm_config.json<\/code> into the target system configuration directory. Platform or vendor layers may provide overrides through their RDK integration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">BLE Network Configuration<\/h3>\n\n\n\n<p>The <code>network_ble<\/code> object controls BLE network behavior:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>options.disable_voice<\/code> disables BLE voice handling when set to <code>true<\/code>. It defaults to <code>false<\/code>.<\/li>\n\n\n\n<li><code>timeouts.discovery<\/code> is the discovery timeout in milliseconds.<\/li>\n\n\n\n<li><code>timeouts.pair<\/code> is the pairing timeout in milliseconds.<\/li>\n\n\n\n<li><code>timeouts.setup<\/code> is the remote setup timeout in milliseconds.<\/li>\n\n\n\n<li><code>timeouts.unpair<\/code> is the unpair timeout in milliseconds.<\/li>\n\n\n\n<li><code>timeouts.hidrawPoll<\/code> is the interval used while polling for the HID raw device, in milliseconds.<\/li>\n\n\n\n<li><code>timeouts.hidrawLimit<\/code> is the maximum HID raw-device polling limit, in milliseconds.<\/li>\n\n\n\n<li><code>models<\/code> is the list of supported BLE remote models. Each model identifies the remote by its advertised name and describes the GATT services required for the remote to be usable.<\/li>\n<\/ul>\n\n\n\n<p>Each <code>models<\/code> entry has these fields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>name<\/code> is a required field for the model identifier used by Control Manager.<\/li>\n\n\n\n<li><code>advertisingNames.regexPairing<\/code> is a required field that needs to match the bluetooth advertising name. This is an ECMAScript regular expression matched during discovery and pairing. A regex can be used here for remotes that include unique identifiers in the advertising name, for example <code>[U][0-9][0-9][0-9] RDK-RCU<\/code><\/li>\n\n\n\n<li><code>advertisingNames.optional.regexReconnect<\/code> optionally supplies a different expression for reconnecting to a previously paired remote. This is useful for models that change the advertising name based on paired status or include unique identifier digits, for example <code>[UP][0-9][0-9][0-9] RDK-RCU<\/code><\/li>\n\n\n\n<li><code>advertisingNames.optional.formatSpecifierTargetedPairing<\/code> optionally formats a targeted-pairing name, for example <code>U%03hhu RDK-RCU<\/code>. This is used for models that include unique identifiers in the name and allows for targeting a specific device for pairing.<\/li>\n\n\n\n<li><code>otaProductName<\/code> optionally identifies the product name used by remote firmware updates.<\/li>\n\n\n\n<li><code>standbyMode<\/code> optionally selects the infrared standby mode. The supported values are <code>B<\/code> and <code>C<\/code>; an unrecognized or missing value uses the default mode B. This is only used if the model supports the RDK Infrared GATT service<\/li>\n\n\n\n<li><code>services.type<\/code> currently must be <code>gatt<\/code>.<\/li>\n\n\n\n<li><code>services.required<\/code> lists GATT services that must be present for the model to be accepted.<\/li>\n\n\n\n<li><code>services.optional<\/code> lists GATT services that may be present but are not required.<\/li>\n\n\n\n<li><code>disabled<\/code> optionally disables an otherwise defined model.<\/li>\n<\/ul>\n\n\n\n<p>Service names must be recognized by the BLE service catalog. Common values include <code>Battery<\/code>, <code>Device Info<\/code>, <code>Immediate Alert<\/code>, <code>RDK Voice<\/code>, <code>RDK Infrared<\/code>, <code>RDK Firmware Upgrade<\/code>, and <code>RDK Remote Control<\/code>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Vendor BLE Model Override<\/h4>\n\n\n\n<p>The vendor layer can deploy <code>\/etc\/vendor\/input\/ble_remote_whitelist.json<\/code> to define the supported model list. This file is a JSON array containing model objects directly; it is not wrapped in a <code>network_ble<\/code> object. When the file is present, it replaces the default <code>network_ble.models<\/code> array, so it should contain every model the product supports, including existing models that must remain enabled.<\/p>\n\n\n\n<p>For example, the following vendor file adds support for an <code>RDK-RCU<\/code> remote that advertises as <code>U-RDK-RCU<\/code> when its unpaired and <code>P-RDK-RCU<\/code> when its paired. In a product that also supports other remotes, include their model objects in the same array:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[\n  {\n    \"name\": \"RDK-RCU\",\n    \"advertisingNames\": {\n      \"regexPairing\": \"[U]-RDK-RCU\",\n      \"optional\": {\n        \"regexReconnect\": \"[UP]-RDK-RCU\"\n      }\n    },\n    \"services\": {\n      \"type\": \"gatt\",\n      \"required\": [\n        \"Battery\",\n        \"Device Info\",\n        \"Immediate Alert\"\n      ],\n      \"optional\": [\n        \"RDK Voice\",\n        \"RDK Infrared\",\n        \"RDK Firmware Upgrade\",\n        \"RDK Remote Control\"\n      ]\n    }\n  }\n]<\/pre>\n\n\n\n<p>BLE options and timeouts can be overridden separately with <code>\/etc\/vendor\/input\/ble_network_options.json<\/code> and <code>\/etc\/vendor\/input\/ble_network_timeouts.json<\/code>. These files contain the <code>options<\/code> and <code>timeouts<\/code> objects directly, and their properties update the corresponding values from the main configuration.<\/p>\n\n\n\n<p>For example, a vendor can disable BLE voice handling with <code>\/etc\/vendor\/input\/ble_network_options.json<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n  \"disable_voice\": true\n}<\/pre>\n\n\n\n<p>The timeout override file uses milliseconds. This example increases the discovery and pairing windows while retaining the other timeout values:<\/p>\n\n\n\n<p><code>\/etc\/vendor\/input\/ble_network_timeouts.json<\/code><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n  \"discovery\": 30000,\n  \"pair\": 30000,\n  \"setup\": 60000,\n  \"unpair\": 20000,\n  \"hidrawPoll\": 20000,\n  \"hidrawLimit\": 65000\n}<\/pre>\n\n\n\n<p>Only the properties that need to change are required in an override file. For example, a vendor changing only the discovery timeout may deploy <code>{ \"discovery\": 30000 }<\/code>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Development<\/h2>\n\n\n\n<p>Start with the relevant subsystem under <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/src\"><code>src\/<\/code><\/a> and its public interfaces under <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/include\"><code>include\/<\/code><\/a>. Changes should preserve the platform contracts exposed through the HAL, Thunder, and voice interfaces. Pull requests are built by the repository&#8217;s GitHub Actions workflows in an RDK CI container.<\/p>\n\n\n\n<p>Contribution requirements are described in <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/CONTRIBUTING.md\">CONTRIBUTING.md<\/a>. Before contributing, review the repository&#8217;s <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/LICENSE\">LICENSE<\/a> and <a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/NOTICE\">NOTICE<\/a> files.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Related Documentation<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/control-product-functionality\/\">Product functionality<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/CHANGELOG.md\">Release history<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/CONTRIBUTING.md\">Contribution guide<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/ci\">CI build scripts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/rdkcentral\/control\/blob\/develop\/.github\/workflows\">GitHub Actions workflows<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>rdkcentral\/control provides the Control Manager for RDK-based set-top boxes and smart TV platforms. It coordinates [&hellip;]<\/p>\n","protected":false},"author":659,"featured_media":0,"parent":9844,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-13072","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>RDK Control Manager - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"RDK Control Manager - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"rdkcentral\/control provides the Control Manager for RDK-based set-top boxes and smart TV platforms. It coordinates [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T10:31:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/\",\"name\":\"RDK Control Manager - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2026-10-29T09:43:23+00:00\",\"dateModified\":\"2026-10-29T10:31:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Video\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"RDK Control Manager\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"RDK Control Manager - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/","og_locale":"en_US","og_type":"article","og_title":"RDK Control Manager - RDK Documentation Portal | Documentation","og_description":"rdkcentral\/control provides the Control Manager for RDK-based set-top boxes and smart TV platforms. It coordinates [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-10-29T10:31:06+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/","name":"RDK Control Manager - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2026-10-29T09:43:23+00:00","dateModified":"2026-10-29T10:31:06+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/rdk-control-manager\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Video","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_video_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"RDK Control Manager"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/13072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/659"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=13072"}],"version-history":[{"count":5,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/13072\/revisions"}],"predecessor-version":[{"id":13089,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/13072\/revisions\/13089"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9844"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=13072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}