RDKEMW-14903: MFV Device Support in Control Manager#244
Open
msmith113 wants to merge 94 commits into
Open
Conversation
msmith113
force-pushed
the
feature/RDKEMW-14903
branch
from
June 23, 2026 15:27
02c91ba to
7dbebb5
Compare
Contributor
Contributor
|
b'## WARNING: A Blackduck scan failure has been waived A prior failure has been upvoted
|
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Comment on lines
+2117
to
+2119
| ctrlm_voice_iarm_call_voice_session_t v_params; | ||
| v_params.ieee_address = dqm->rcu_data.ieee_address; | ||
|
|
Comment on lines
+550
to
551
| ctrlm_voice_device_t device = dqm->voice_device; | ||
| ctrlm_voice_session_response_status_t voice_status; |
Comment on lines
+489
to
+491
| bool ctrlm_obj_controller_ble_t::get_mid_field_voice_capable() const { | ||
| return true; | ||
| } |
Comment on lines
+547
to
+549
| // BLE RCUs use PTT for keypress-triggered sessions and FF for MFV wake-word sessions. | ||
| // The voice_device field of the message is set by the caller; it defaults to | ||
| // CTRLM_VOICE_DEVICE_PTT (0) when the struct is zeroed via memset. |
Comment on lines
+2081
to
+2082
| //schedule_status_print(); | ||
| //schedule_status_event(); |
Comment on lines
+2087
to
+2088
| //schedule_status_print(); | ||
| //schedule_status_event(); |
Comment on lines
+335
to
+337
| void ctrlm_obj_controller_t::set_mid_field_voice_capable(bool capable) { | ||
| XLOGD_WARN("not implemented."); | ||
| } |
Comment on lines
+489
to
+491
| bool ctrlm_obj_controller_ble_t::get_mid_field_voice_capable() const { | ||
| return true; | ||
| } |
Comment on lines
+2117
to
+2118
| ctrlm_voice_iarm_call_voice_session_t v_params; | ||
| v_params.ieee_address = dqm->rcu_data.ieee_address; |
Comment on lines
+547
to
+550
| // BLE RCUs use PTT for keypress-triggered sessions and FF for MFV wake-word sessions. | ||
| // The voice_device field of the message is set by the caller; it defaults to | ||
| // CTRLM_VOICE_DEVICE_PTT (0) when the struct is zeroed via memset. | ||
| ctrlm_voice_device_t device = dqm->voice_device; |
Comment on lines
+489
to
+491
| bool ctrlm_obj_controller_ble_t::get_mid_field_voice_capable() const { | ||
| return true; | ||
| } |
Comment on lines
+2117
to
+2118
| ctrlm_voice_iarm_call_voice_session_t v_params; | ||
| v_params.ieee_address = dqm->rcu_data.ieee_address; |
Comment on lines
2079
to
+2082
| controller->setWakeupConfig(dqm->rcu_data.wakeup_config); | ||
| XLOGD_INFO("Controller <%s> notified wakeup config = <%s>", controller->ieee_address_get().to_string().c_str(), ctrlm_rcu_wakeup_config_str(controller->get_wakeup_config())); | ||
| schedule_status_print(); | ||
| schedule_status_event(); | ||
| //schedule_status_print(); | ||
| //schedule_status_event(); |
Comment on lines
2085
to
+2088
| controller->setWakeupCustomList(dqm->rcu_data.wakeup_custom_list, dqm->rcu_data.wakeup_custom_list_size); | ||
| XLOGD_INFO("Controller <%s> notified wakeup custom list = <%s>", controller->ieee_address_get().to_string().c_str(), controller->wakeupCustomListToString().c_str()); | ||
| schedule_status_print(); | ||
| schedule_status_event(); | ||
| //schedule_status_print(); | ||
| //schedule_status_event(); |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (3)
src/ble/ctrlm_ble_controller.cpp:491
- get_mid_field_voice_capable() always returns true, ignoring the mid_field_voice_capable_ state set by set_mid_field_voice_capable(). This makes the capability flag meaningless and will misreport MFV support.
bool ctrlm_obj_controller_ble_t::get_mid_field_voice_capable() const {
return true;
}
src/ble/ctrlm_ble_network.cpp:550
- The comment says MFV wake-word sessions use FF, but the code (and the rest of this PR) uses CTRLM_VOICE_DEVICE_MFV. This mismatch is confusing when debugging session source selection.
// BLE RCUs use PTT for keypress-triggered sessions and FF for MFV wake-word sessions.
// The voice_device field of the message is set by the caller; it defaults to
// CTRLM_VOICE_DEVICE_PTT (0) when the struct is zeroed via memset.
ctrlm_voice_device_t device = dqm->voice_device;
src/ble/ctrlm_ble_network.cpp:2088
- These schedule_status_* calls were commented out rather than being removed or controlled via a flag, leaving dead/commented code in the event handler. If wakeup config/custom list changes should no longer trigger status print/event, consider deleting these lines and adding a short rationale (or gate via a config/verbosity knob). If they should still trigger, uncomment them.
controller->setWakeupConfig(dqm->rcu_data.wakeup_config);
XLOGD_INFO("Controller <%s> notified wakeup config = <%s>", controller->ieee_address_get().to_string().c_str(), ctrlm_rcu_wakeup_config_str(controller->get_wakeup_config()));
//schedule_status_print();
//schedule_status_event();
break;
case CTRLM_HAL_BLE_PROPERTY_WAKEUP_CUSTOM_LIST:
controller->setWakeupCustomList(dqm->rcu_data.wakeup_custom_list, dqm->rcu_data.wakeup_custom_list_size);
XLOGD_INFO("Controller <%s> notified wakeup custom list = <%s>", controller->ieee_address_get().to_string().c_str(), controller->wakeupCustomListToString().c_str());
//schedule_status_print();
//schedule_status_event();
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (3)
src/ble/ctrlm_ble_network.cpp:2124
- The wakeup-config status update no longer schedules the status print/event because these calls were commented out. This looks like an accidental regression (UI/telemetry won’t reflect updated wakeup config).
//schedule_status_print();
//schedule_status_event();
src/ble/ctrlm_ble_network.cpp:2130
- The wakeup-custom-list status update no longer schedules the status print/event because these calls were commented out. This looks like an accidental regression (UI/telemetry won’t reflect updated wakeup custom list).
//schedule_status_print();
//schedule_status_event();
src/ble/ctrlm_ble_network.cpp:557
- The comment says MFV wake-word sessions use FF, but the code now uses the dedicated CTRLM_VOICE_DEVICE_MFV device type. This mismatch makes it harder to reason about routing behavior for BLE voice sessions.
// BLE RCUs use PTT for keypress-triggered sessions and FF for MFV wake-word sessions.
// The voice_device field of the message is set by the caller; it defaults to
// CTRLM_VOICE_DEVICE_PTT (0) when the struct is zeroed via memset.
Comment on lines
+169
to
+176
| // TEMPORARY: hardcode all voice server URLs used by ctrlm, overriding any configured/RFC/settings values. | ||
| // ctrlm selects the protocol handler by scheme prefix: "vrngs" -> secure ws_nextgen (vrex), translated | ||
| // internally to "wss". A raw "wss" prefix is not recognized and is rejected as "unsupported url". | ||
| static const char *CTRLM_VOICE_HARDCODED_URL = "vrngs://eng.voice.xvp.eu-1.xcal.tv/vrex/speech/websocket?stbSwVersion=QSE041.004.00U"; | ||
| this->prefs.server_url_src_ptt = CTRLM_VOICE_HARDCODED_URL; | ||
| this->prefs.server_url_src_ff = CTRLM_VOICE_HARDCODED_URL; | ||
| this->prefs.server_url_src_mic_tap = CTRLM_VOICE_HARDCODED_URL; | ||
|
|
Comment on lines
+2176
to
+2178
| g_ctrlm_ble_network.mfv_detection_pending_ieee = dqm->rcu_data.ieee_address; | ||
| ctrlm_timeout_destroy(&g_ctrlm_ble_network.mfv_detection_timer_tag); | ||
| g_ctrlm_ble_network.mfv_detection_timer_tag = ctrlm_timeout_create(CTRLM_BLE_MFV_DETECTION_DATA_TIMEOUT, ctrlm_ble_mfv_detection_timer_cb, &id_); |
Comment on lines
+162
to
+165
| // MFV wake-word (detection-triggered) session state. Such a session starts audio streaming, waits | ||
| // for the detection data (wake word timing/confidence), then opens the voice session. See | ||
| // ctrlm_obj_network_ble_t::req_process_detection_voice_session_begin(). | ||
| void setMfvDetectionPending(bool pending, int audio_fd = -1); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://ccp.sys.comcast.net/browse/RDKEMW-14903