Skip to content

Conversation

@egalla204
Copy link
Contributor

No description provided.

egalla204 and others added 15 commits October 24, 2025 00:43
* Deploy cla action

* RDKEMW-7174 : update AMC APP key mapping (#98)

* RDKEMW-3409 : move certselector logic into ctrlm-main repo (#102)

* RDKEMW-6767: getNetStatus call time out due to SAT download retries (#97)

Reason for change: During initial setup, the device is attempting
to download the SAT token and timing out, which is holding up
the ctrlm message queue processing, which allows BLE pairing to
fail

Test Procedure: boot and attempt to pair BLE remote, keeping an eye
on ctrlm loggging. Look for "CTRLM : ERROR: call_plugin: Thunder
call failed <getServiceAccessToken> <11>, attempt 1 of 1"
We expect BLE pairing to succeed rather than timeout. If the
call_plugin log error occurs and BLE pairing succeed then the
code change has been exercised and the issue is resolved.

Risks: Low

Priority: P1

Signed-off-by: Jason Thomson <[email protected]>

* RDKEMW-7333: remove device from bluez during factory reset (#100)

When an RDK device is factory reset, controlMgr will send a message to the remote to also factory reset itself. Once controlMgr gets notified from the remote of a successful RCU factory reset, it needs to be requested to bluez to remove the device. This prevents a connection attempt from happening to the just factory-reset RCU before the RDK device reboots. This connection attempt will prevent the RCU from autopairing during the activation flow after the RDK factory reset.

* RDKEMW-7573 : remove ctrlm compile flags (#104)

* RDKEMW-7694 : remove ctrlm build flags - CPC, DUNFELL (#105)

* RDKEMW-7834 : remove ctrlm build flags - RF4CE_PACKET_ANALYSIS (#107)

* RDKEMW-7772 : remove ctrlm build flags - DISABLE_BLE_VOICE (#106)

* RDKEMW-7122 : Missing Thunder cflags in ctrlm implemenation (#103)

* RDKEMW-7979 : use version/branch from recipe (#109)

* RDKEMW-8349 : ctrlm release v1.1.4 (#113)

* RDKEMW-8133: Optional param name for voiceSessionRequest (#108)

* RDKEMW-8133: Optional param name for voiceSessionRequest

Reason for change: Adding optional name param for voiceSessionRequest
                   which is needed to track metadata about voice
                   sessions from various ipcontrol clients
Test Procedure: Use VoiceControl voiceSessionRequest method with name
                param
Risks: Low
Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-8133: Optional param name for voiceSessionRequest

Reason for change: remove the required conditional of name
Test Procedure:
Risks:
Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-8133: Optional param name for voiceSessionRequest

Reason for change: Clean up log messaging
Test Procedure:
Risks:
Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-8133: Optional param name for voiceSessionRequest

Reason for change: Move obj != NULL block to prevent null dereference
Test Procedure:
Risks:
Signed-off-by: Kelvin Lu <[email protected]>

---------

Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-8354: ctrlm-main crash while holding standby during OTA (#115)

* RDKEMW-8354: ctrlm-main crash while holding standby during OTA

Reason for change: crash due to null reference on repeating timer event
Test Procedure: see ticket
Risks: low
Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-8354: ctrlm-main crash on timer

Reason for change: add comment for clarity
Test Procedure:
Risks:
Signed-off-by: Kelvin Lu <[email protected]>

---------

Signed-off-by: Kelvin Lu <[email protected]>

* Deploy cla action

* Deploy fossid_integration_stateless_diffscan_target_repo action

* RDKEMW-8815: only return SUCCESS for autolookup if it found at least 1 code.

* Revert "RDKEMW-8815: only return SUCCESS for autolookup if it found at least 1 code." (#124)

* RDKEMW-8815: only return SUCCESS for autolookup if it found at least 1 code. (#125)

It can often happen that the IRDB returns success but no codes are returned, this leads to confusing UI screens. So even if the IR database returned successfully, only return success to the plugin API if there is at least 1 code is present

* Update CODEOWNERS (#130)

* RDKEMW-8929 (#129)

* RDKEMW-8929: Refactor ctrlm_voice_ipc_t to inherit ctrlm_ipc_iarm_t

Reason for change: Inherit ctrlm_ipc_iarm_t
Test Procedure: Verify behavior of events before & after no diff
Risks: Low
Signed-off-by: Kelvin Lu <[email protected]>

* RDKEMW-7225: BLE pairing retries (#126)

if BLE pairing fails, retry 3 times or up to the pairing timeout (currently configured at 20 seconds), whichever comes first.

---------

Signed-off-by: Jason Thomson <[email protected]>
Signed-off-by: Kelvin Lu <[email protected]>
Co-authored-by: rdkcmf <[email protected]>
Co-authored-by: dwolaver <[email protected]>
Co-authored-by: jthomp007c <[email protected]>
Co-authored-by: Kelvin Lu <[email protected]>
Co-authored-by: Alan Ryan <[email protected]>
Co-authored-by: Stephen Barrett <[email protected]>
Copilot AI review requested due to automatic review settings December 5, 2025 17:20
@egalla204 egalla204 requested a review from a team as a code owner December 5, 2025 17:20
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds support for multiple IRDB (Infrared Database) vendors by introducing new APIs to query supported vendors and set the preferred vendor based on the RCU's (Remote Control Unit) bitmask preference.

Key Changes:

  • Added ctrlm_irdb_get_supported_vendor_info() to retrieve all installed IRDB vendors
  • Added ctrlm_irdb_set_preferred_vendor() to configure the preferred vendor based on RCU bitmask
  • Updated BLE controller to set vendor preferences when RCU reports supported IRDBs

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/irdb/ctrlm_irdb_stub.h Added stub function declarations for the two new vendor-related APIs
src/irdb/ctrlm_irdb_stub.cpp Implemented stub functions that return false with "not implemented" error logging
src/irdb/ctrlm_irdb_plugin.h Added public API declarations with documentation comments for the new vendor functions
src/irdb/ctrlm_irdb_interface.h Added set_vendor() method to the interface class for setting preferred vendor
src/irdb/ctrlm_irdb_interface.cpp Implemented plugin loading, symbol resolution, and supported vendors query on plugin open
src/ble/ctrlm_ble_controller.cpp Modified setSupportedIrdbs() to call the new set_vendor() API with RCU bitmask and improved error handling

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// Will return info on all the IRDB vendors currently installed, could be multiple vendors returned
bool ctrlm_irdb_get_supported_vendor_info(std::vector<ctrlm_irdb_vendor_info_t> &info);

// This will basically pass through the bitmask coming from the RCU, so it will be Ruwido ONLY, Quickset ONLY, or BOTH
Copy link

Copilot AI Dec 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The comment mentions "Ruwido ONLY, Quickset ONLY, or BOTH" which appears to reference specific vendor names. Consider making this comment more generic or clarifying that these are example vendors, as the implementation should work with any IRDB vendors that follow the bitmask pattern.

Suggested change
// This will basically pass through the bitmask coming from the RCU, so it will be Ruwido ONLY, Quickset ONLY, or BOTH
// This will pass through the bitmask coming from the RCU, representing any combination of supported IRDB vendors (e.g., "Ruwido", "Quickset", or others) that follow the bitmask pattern.

Copilot uses AI. Check for mistakes.
egalla204 and others added 2 commits December 5, 2025 12:55
RDKEMW-10480 : ctrlm release v1.1.6, xr-voice-sdk v1.0.7
Copilot AI review requested due to automatic review settings December 5, 2025 17:56
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…_multiple_IRDBs-FIXED' into feature/RDKEMW-9474_multiple_IRDBs-FIXED
see RDKEMW-11249 or CHANGELOG for release notes
RDKEMW-12151 : ctrlm release v1.1.8, xr-voice-sdk v1.0.9
Copilot AI review requested due to automatic review settings January 14, 2026 20:07
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

src/irdb/ctrlm_irdb_interface.cpp:1

  • The rcu_vendor_info struct is only partially initialized with rcu_support_bitmask, leaving the name field empty. The set_vendor() function receives this incomplete vendor info. Consider whether the plugin needs both fields, or if the API design should be clarified to indicate that name is optional when setting preferred vendor from RCU.
/*

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

isSupportedIrdb(vendor_info) ? "DOES" : "does NOT", vendor_info.name.c_str());
} else {
XLOGD_INFO("Controller <%s> IRDBs supported bitmask = <0x%X>, couldn't retrieve IRDB plugin vendor info.",
XLOGD_WARN("Controller <%s> IRDBs supported bitmask = <0x%X>, couldn't retrieve IRDB plugin vendor info.",
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The log level change from XLOGD_INFO to XLOGD_WARN is appropriate for this error condition, but consider whether the earlier successful case at line 549 should remain at INFO level or be changed to DEBUG, since it's called every time setSupportedIrdbs() is invoked and may generate excessive logs during normal operation.

Copilot uses AI. Check for mistakes.
Comment on lines +300 to +309
if (g_irdb.pluginGetSupportedVendors) {
std::vector<ctrlm_irdb_vendor_info_t> supported_vendors;
if ((*g_irdb.pluginGetSupportedVendors)(supported_vendors) == true) {
for (const auto &it : supported_vendors) {
XLOGD_INFO("Found supported IRDB Vendor <%s, 0x%X>", it.name.c_str(), it.rcu_support_bitmask);
}
} else {
XLOGD_WARN("Unable to query IRDB plugin for list of supported vendors, check version of the plugin...");
}
}
Copy link

Copilot AI Jan 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This informational logging is placed in the critical path of open_plugin() which is called during initialization. If a plugin supports many vendors, this could generate numerous log entries. Consider whether this should be at DEBUG level or only log a summary (e.g., 'Found N supported IRDB vendors').

Copilot uses AI. Check for mistakes.
@rdkcmf-jenkins
Copy link
Contributor

b'## Blackduck scan failure details

Summary: 0 violations, 0 files pending approval, 1 file pending identification.

  • Protex Server Path: /home/blackduck/github/control/161/rdk/components/generic/control

  • Commit: 79ec2a1

Report detail: gist'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants