From a16daf6da6558d3f67f4e12db9cc8263f9beee84 Mon Sep 17 00:00:00 2001 From: dwolav200 Date: Thu, 13 Aug 2026 15:09:44 -0400 Subject: [PATCH 1/3] RDKEMW-22932 : Remove ctrlm IARM calls/events removed from control test app --- include/ctrlm_ipc.h | 36 ------------------------------------ src/ctrlm_main_iarm.cpp | 21 --------------------- 2 files changed, 57 deletions(-) diff --git a/include/ctrlm_ipc.h b/include/ctrlm_ipc.h index c48f8b38..36b1917e 100644 --- a/include/ctrlm_ipc.h +++ b/include/ctrlm_ipc.h @@ -28,7 +28,6 @@ #define CTRLM_MAIN_IARM_CALL_STATUS_GET "Main_StatusGet" ///< Retrieves Control Manager's Status information #define CTRLM_MAIN_IARM_CALL_NETWORK_STATUS_GET "Main_NetworkStatusGet" ///< Retrieves the network's Status information -#define CTRLM_MAIN_IARM_CALL_PROPERTY_SET "Main_PropertySet" ///< Sets a property of the Control Manager #define CTRLM_MAIN_IARM_CALL_FACTORY_RESET "Main_FactoryReset" ///< Sets the configuration back to factory default #define CTRLM_MAIN_IARM_CALL_CONTROLLER_UNBIND "Main_ControllerUnbind" ///< Removes a binding between the target and the specified controller #define CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET "Main_IrRemoteUsageGet" ///< Retrieves the ir remote usage info @@ -80,13 +79,6 @@ #define CTRLM_PROPERTY_ACTIVE_PERIOD_SCREENBIND_VALUE_MIN (5000) ///< Minimum active period (in ms) for screen bind. #define CTRLM_PROPERTY_ACTIVE_PERIOD_SCREENBIND_VALUE_MAX (600000) ///< Maximum active period (in ms) for screen bind. -#define CTRLM_PROPERTY_VALIDATION_TIMEOUT_MIN (1000) ///< Validation timeout value minimum (in ms) -#define CTRLM_PROPERTY_VALIDATION_TIMEOUT_MAX (45000) ///< Validation timeout value maximum (in ms) -#define CTRLM_PROPERTY_VALIDATION_MAX_ATTEMPTS_MAX (20) ///< Maximum number of validation attempts - -#define CTRLM_PROPERTY_CONFIGURATION_TIMEOUT_MIN (1000) ///< Configuration timeout value minimum (in ms) -#define CTRLM_PROPERTY_CONFIGURATION_TIMEOUT_MAX (60000) ///< Configuration timeout value maximum (in ms) - #define CTRLM_AUTOBIND_THRESHOLD_MIN (1) ///< Autobind threshold minimum value #define CTRLM_AUTOBIND_THRESHOLD_MAX (7) ///< Autobind threshold maximum value @@ -141,26 +133,6 @@ typedef enum { CTRLM_IARM_CALL_RESULT_INVALID = 6, ///< Invalid call result value } ctrlm_iarm_call_result_t; -typedef enum { - CTRLM_PROPERTY_BINDING_BUTTON_ACTIVE = 0, ///< (RO) Boolean value indicating whether a front panel button was recently pressed (1) or not (0). - CTRLM_PROPERTY_BINDING_SCREEN_ACTIVE = 1, ///< (RW) Boolean value indicating whether the 'Pairing Description Screen' is being displayed (1) or not (0). - CTRLM_PROPERTY_BINDING_LINE_OF_SIGHT_ACTIVE = 2, ///< (RO) Boolean value indicating whether the STB has received the Line of Sight remote command and is within the active period. - CTRLM_PROPERTY_AUTOBIND_LINE_OF_SIGHT_ACTIVE = 3, ///< (RO) Boolean value indicating that the STB has received the Autobind Line of Sight remote code and is within the active period. - CTRLM_PROPERTY_ACTIVE_PERIOD_BUTTON = 4, ///< (RW) Active period (in ms) for button binding. - CTRLM_PROPERTY_ACTIVE_PERIOD_LINE_OF_SIGHT = 5, ///< (RW) Active period (in ms) for line of sight. - CTRLM_PROPERTY_VALIDATION_TIMEOUT_INITIAL = 6, ///< (RW) Timeout value (in ms) used for the start of the validation period. - CTRLM_PROPERTY_VALIDATION_TIMEOUT_DURING = 7, ///< (RW) Timeout value (in ms) used during the validation period. - CTRLM_PROPERTY_CONFIGURATION_TIMEOUT = 8, ///< (RW) Timeout value (in ms) used during the configuration period. - CTRLM_PROPERTY_VALIDATION_MAX_ATTEMPTS = 9, ///< (RW) Maximum number of validation attempts. - CTRLM_PROPERTY_ACTIVE_PERIOD_SCREENBIND = 10, ///< (RW) Active period (in ms) for screenbind. - CTRLM_PROPERTY_ACTIVE_PERIOD_ONE_TOUCH_AUTOBIND = 11, ///< (RW) Active period (in ms) for one-touch autobind. - CTRLM_PROPERTY_REMOTE_REVERSE_CMD_ACTIVE = 12, ///< (RW) Boolean value indicating whether the 'Remote Reverse Command' feature is enabled (1) or not (0). - CTRLM_PROPERTY_MAC_POLLING_INTERVAL = 13, ///< (RW) MAC polling polling interval, in milliseconds. - CTRLM_PROPERTY_RCU_REVERSE_CMD_TIMEOUT = 14, ///< (RW) Find My Remote RC response timeout, Factor of CTRLM_PROPERTY_MAC_POLLING_INTERVAL, min 2 - CTRLM_PROPERTY_AUTO_ACK = 15, ///< (RW) Boolean value indicating whether the 'Automatic Packet Acknowledgment' feature is enabled (1) or not (0). - CTRLM_PROPERTY_MAX = 16, ///< (NA) Maximum property enumeration value. -} ctrlm_property_t; - typedef enum { CTRLM_MAIN_IARM_EVENT_BINDING_BUTTON = 0, ///< Generated when a state change of the binding button status occurs CTRLM_MAIN_IARM_EVENT_BINDING_LINE_OF_SIGHT = 1, ///< Generated when a state change of the line of sight status occurs @@ -407,14 +379,6 @@ typedef struct { } status; ///< OUT - Union of network status types } ctrlm_main_iarm_call_network_status_t; -typedef struct { - unsigned char api_revision; ///< Revision of this API - ctrlm_iarm_call_result_t result; ///< Result of the operation - ctrlm_network_id_t network_id; ///< IN - identifier of network or CTRLM_MAIN_NETWORK_ID_ALL for all networks - ctrlm_property_t name; ///< Property name on which this call will operate - unsigned long value; ///< Value for this property -} ctrlm_main_iarm_call_property_t; - typedef struct { unsigned char api_revision; ///< Revision of this API ctrlm_iarm_call_result_t result; ///< Result of the IARM call diff --git a/src/ctrlm_main_iarm.cpp b/src/ctrlm_main_iarm.cpp index 8a9b2627..2741bd9e 100644 --- a/src/ctrlm_main_iarm.cpp +++ b/src/ctrlm_main_iarm.cpp @@ -35,7 +35,6 @@ static IARM_Result_t ctrlm_main_iarm_call_status_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_network_status_get(void *arg); -static IARM_Result_t ctrlm_main_iarm_call_property_set(void *arg); static IARM_Result_t ctrlm_main_iarm_call_controller_unbind(void *arg); static IARM_Result_t ctrlm_main_iarm_call_ir_remote_usage_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_last_key_info_get(void *arg); @@ -59,7 +58,6 @@ static volatile int running = 0; ctrlm_iarm_call_t ctrlm_iarm_calls[] = { {CTRLM_MAIN_IARM_CALL_STATUS_GET, ctrlm_main_iarm_call_status_get }, {CTRLM_MAIN_IARM_CALL_NETWORK_STATUS_GET, ctrlm_main_iarm_call_network_status_get }, - {CTRLM_MAIN_IARM_CALL_PROPERTY_SET, ctrlm_main_iarm_call_property_set }, {CTRLM_MAIN_IARM_CALL_CONTROLLER_UNBIND, ctrlm_main_iarm_call_controller_unbind }, {CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET, ctrlm_main_iarm_call_ir_remote_usage_get }, {CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET, ctrlm_main_iarm_call_last_key_info_get }, @@ -204,25 +202,6 @@ IARM_Result_t ctrlm_main_iarm_call_network_status_get(void *arg) { return(IARM_RESULT_SUCCESS); } -IARM_Result_t ctrlm_main_iarm_call_property_set(void *arg) { - ctrlm_main_iarm_call_property_t *property = (ctrlm_main_iarm_call_property_t *)arg; - - if(0 == g_atomic_int_get(&running)) { - XLOGD_ERROR("IARM Call received when IARM component in stopped/terminated state, reply with ERROR"); - return(IARM_RESULT_INVALID_STATE); - } - if(NULL == property) { - XLOGD_ERROR("NULL Property Argument"); - g_assert(0); - return(IARM_RESULT_INVALID_PARAM); - } - XLOGD_INFO("not supported"); - - property->result = CTRLM_IARM_CALL_RESULT_ERROR; - - return(IARM_RESULT_SUCCESS); -} - IARM_Result_t ctrlm_main_iarm_call_controller_unbind(void *arg) { ctrlm_main_iarm_call_controller_unbind_t *unbind = (ctrlm_main_iarm_call_controller_unbind_t *)arg; From e47925df6dfb9d1c474b2d32844fc03ce618b01b Mon Sep 17 00:00:00 2001 From: dwolav200 Date: Thu, 13 Aug 2026 15:49:55 -0400 Subject: [PATCH 2/3] remove controller unbind and rib get/set iarm apis --- include/ctrlm_ipc.h | 8 -- include/ctrlm_ipc_rcu.h | 14 -- src/ctrlm.h | 9 -- src/ctrlm_main.cpp | 66 --------- src/ctrlm_main_iarm.cpp | 25 ---- src/ctrlm_network.cpp | 32 ----- src/ctrlm_network.h | 2 - src/ctrlm_rcu.cpp | 94 ------------ src/ctrlm_rcu.h | 15 -- src/ctrlm_rcu_iarm.cpp | 14 -- src/ctrlm_utils.cpp | 1 - src/rf4ce/ctrlm_rf4ce_network.cpp | 230 ------------------------------ src/rf4ce/ctrlm_rf4ce_network.h | 4 - 13 files changed, 514 deletions(-) diff --git a/include/ctrlm_ipc.h b/include/ctrlm_ipc.h index 36b1917e..73bedd6c 100644 --- a/include/ctrlm_ipc.h +++ b/include/ctrlm_ipc.h @@ -29,7 +29,6 @@ #define CTRLM_MAIN_IARM_CALL_STATUS_GET "Main_StatusGet" ///< Retrieves Control Manager's Status information #define CTRLM_MAIN_IARM_CALL_NETWORK_STATUS_GET "Main_NetworkStatusGet" ///< Retrieves the network's Status information #define CTRLM_MAIN_IARM_CALL_FACTORY_RESET "Main_FactoryReset" ///< Sets the configuration back to factory default -#define CTRLM_MAIN_IARM_CALL_CONTROLLER_UNBIND "Main_ControllerUnbind" ///< Removes a binding between the target and the specified controller #define CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET "Main_IrRemoteUsageGet" ///< Retrieves the ir remote usage info #define CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET "Main_LastKeyInfoGet" ///< Retrieves the last key info #define CTRLM_MAIN_IARM_CALL_LAST_KEYPRESS_GET "Main_LastKeyPressGet" ///< Retrieves the last key press (TODO: replace CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET with this) @@ -379,13 +378,6 @@ typedef struct { } status; ///< OUT - Union of network status types } ctrlm_main_iarm_call_network_status_t; -typedef struct { - unsigned char api_revision; ///< Revision of this API - ctrlm_iarm_call_result_t result; ///< Result of the IARM call - ctrlm_network_id_t network_id; ///< IN - identifier of network on which the controller is bound - ctrlm_controller_id_t controller_id; ///< IN - identifier of the controller -} ctrlm_main_iarm_call_controller_unbind_t; - typedef struct { unsigned char api_revision; ///< Revision of this API unsigned char active; ///< Indicates that the binding button status is active (1) or not active (0) diff --git a/include/ctrlm_ipc_rcu.h b/include/ctrlm_ipc_rcu.h index 18247c12..87adbe0f 100644 --- a/include/ctrlm_ipc_rcu.h +++ b/include/ctrlm_ipc_rcu.h @@ -23,8 +23,6 @@ #define CTRLM_RCU_IARM_CALL_CONTROLLER_STATUS "Rcu_ControllerStatus" ///< IARM Call to get controller information #define CTRLM_RCU_IARM_CALL_CONTROLLER_LINK_KEY "Rcu_ControllerLinkKey" ///< IARM Call to get controller link key -#define CTRLM_RCU_IARM_CALL_RIB_REQUEST_GET "Rcu_RibRequestGet" ///< IARM Call to retrieves an attribute from the controller's RIB -#define CTRLM_RCU_IARM_CALL_RIB_REQUEST_SET "Rcu_RibRequestSet" ///< IARM Call to set an attribute in the controller's RIB #define CTRLM_RCU_IARM_CALL_RF4CE_POLLING_ACTION "Rcu_Rf4cePollingAction" ///< IARM Call to Send Remote Heartbeat Response Polling Action #define CTRLM_RCU_IARM_BUS_API_REVISION (13) ///< Revision of the RCU IARM API @@ -42,7 +40,6 @@ #define CTRLM_RCU_MAX_EVENT_TYPE_LENGTH (20) ///< Maximum length of the event type (including null termination) #define CTRLM_RCU_MAX_EVENT_DATA_LENGTH (50) ///< Maximum length of the event data (including null termination) -#define CTRLM_RCU_MAX_RIB_ATTRIBUTE_SIZE (92) ///< Maximum size of a RIB attribute (in bytes) #define CTRLM_RCU_RIB_ATTR_LEN_PERIPHERAL_ID (4) ///< RIB Attribute Length - Peripheral Id #define CTRLM_RCU_RIB_ATTR_LEN_RF_STATISTICS (16) ///< RIB Attribute Length - RF Statistics #define CTRLM_RCU_RIB_ATTR_LEN_VERSIONING (4) ///< RIB Attribute Length - Versioning @@ -422,17 +419,6 @@ typedef struct { ctrlm_controller_status_t status; ///< Status of the controller } ctrlm_rcu_iarm_call_controller_status_t; -typedef struct { - unsigned char api_revision; ///< Revision of this API - ctrlm_iarm_call_result_t result; ///< Result of the IARM call - ctrlm_network_id_t network_id; ///< IN - identifier of network on which the controller is bound - ctrlm_controller_id_t controller_id; ///< IN - identifier of the controller - ctrlm_rcu_rib_attr_id_t attribute_id; ///< RIB attribute identifier - unsigned char attribute_index; ///< RIB attribute index - unsigned char length; ///< RIB data length - char data[CTRLM_RCU_MAX_RIB_ATTRIBUTE_SIZE]; ///< RIB entry's data -} ctrlm_rcu_iarm_call_rib_request_t; - typedef struct { unsigned char api_revision; ///< Revision of this API ctrlm_iarm_call_result_t result; ///< Result of the IARM call diff --git a/src/ctrlm.h b/src/ctrlm.h index 5a8839ec..07d6b7f5 100644 --- a/src/ctrlm.h +++ b/src/ctrlm.h @@ -81,7 +81,6 @@ typedef enum { CTRLM_MAIN_QUEUE_MSG_TYPE_TERMINATE = CTRLM_MAIN_QUEUE_MSG_TYPE_GLOBAL + 1, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_STATUS, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_FACTORY_RESET, - CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROLLER_UNBIND, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_IR_LINE_OF_SIGHT, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_IR_AUTOBIND, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_TIMEOUT_LINE_OF_SIGHT, @@ -186,13 +185,6 @@ typedef struct { ctrlm_main_status_cmd_result_t * cmd_result; } ctrlm_main_queue_msg_main_factory_reset_t; -typedef struct { - ctrlm_main_queue_msg_header_t header; - ctrlm_main_iarm_call_controller_unbind_t *unbind; - sem_t * semaphore; - ctrlm_main_status_cmd_result_t * cmd_result; -} ctrlm_main_queue_msg_main_controller_unbind_t; - typedef struct { union { ctrlm_hal_rf4ce_cfm_init_params_t rf4ce; @@ -426,7 +418,6 @@ bool ctrlm_main_active_period_screenbind_timeout_set_(uint32_t timeout); gboolean ctrlm_main_iarm_call_status_get(ctrlm_main_iarm_call_status_t *status); gboolean ctrlm_main_iarm_call_network_status_get(ctrlm_main_iarm_call_network_status_t *status); gboolean ctrlm_main_iarm_call_factory_reset(ctrlm_main_iarm_call_factory_reset_t *reset); -gboolean ctrlm_main_iarm_call_controller_unbind(ctrlm_main_iarm_call_controller_unbind_t *unbind); gboolean ctrlm_main_iarm_call_ir_remote_usage_get(ctrlm_main_iarm_call_ir_remote_usage_t *ir_remote_usage); gboolean ctrlm_main_iarm_call_pairing_metrics_get(ctrlm_main_iarm_call_pairing_metrics_t *pairing_metrics); gboolean ctrlm_main_iarm_call_last_key_info_get(ctrlm_main_iarm_call_last_key_info_t *last_key_info); diff --git a/src/ctrlm_main.cpp b/src/ctrlm_main.cpp index 8bfc1ab9..7e051346 100644 --- a/src/ctrlm_main.cpp +++ b/src/ctrlm_main.cpp @@ -351,7 +351,6 @@ static gboolean ctrlm_unix_signal_terminate(gpointer user_data); static void ctrlm_main_iarm_call_status_get_(ctrlm_main_iarm_call_status_t *status); static void ctrlm_main_iarm_call_factory_reset_(ctrlm_main_iarm_call_factory_reset_t *reset); -static void ctrlm_main_iarm_call_controller_unbind_(ctrlm_main_iarm_call_controller_unbind_t *unbind); static void ctrlm_main_update_export_controller_list(void); static void ctrlm_main_iarm_call_ir_remote_usage_get_(ctrlm_main_iarm_call_ir_remote_usage_t *ir_remote_usage); static void ctrlm_main_iarm_call_pairing_metrics_get_(ctrlm_main_iarm_call_pairing_metrics_t *pairing_metrics); @@ -2509,17 +2508,6 @@ gpointer ctrlm_main_thread(gpointer param) { } break; } - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROLLER_UNBIND: { - ctrlm_main_queue_msg_main_controller_unbind_t *dqm = (ctrlm_main_queue_msg_main_controller_unbind_t *) msg; - XLOGD_DEBUG("message type CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROLLER_UNBIND"); - ctrlm_main_iarm_call_controller_unbind_(dqm->unbind); - if(dqm->semaphore != NULL && dqm->cmd_result != NULL) { - // Signal the semaphore to indicate that the result is present - *dqm->cmd_result = CTRLM_MAIN_STATUS_REQUEST_SUCCESS; - sem_post(dqm->semaphore); - } - break; - } case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_IR_LINE_OF_SIGHT: { // Cancel active line of sight timer (if active) ctrlm_timeout_destroy(&g_ctrlm.line_of_sight_timeout_tag); @@ -3464,60 +3452,6 @@ void ctrlm_main_iarm_call_factory_reset_(ctrlm_main_iarm_call_factory_reset_t *r reset->result = CTRLM_IARM_CALL_RESULT_SUCCESS; } -gboolean ctrlm_main_iarm_call_controller_unbind(ctrlm_main_iarm_call_controller_unbind_t *unbind) { - if(unbind == NULL) { - XLOGD_ERROR("NULL parameter"); - return(false); - } - XLOGD_INFO(""); - - // Signal completion of the operation - sem_t semaphore; - ctrlm_main_status_cmd_result_t cmd_result = CTRLM_MAIN_STATUS_REQUEST_PENDING; - - // Allocate a message and send it to Control Manager's queue - ctrlm_main_queue_msg_main_controller_unbind_t *msg = (ctrlm_main_queue_msg_main_controller_unbind_t *)g_malloc(sizeof(ctrlm_main_queue_msg_main_controller_unbind_t)); - - if(NULL == msg) { - XLOGD_FATAL("Out of memory"); - g_assert(0); - return(false); - } - - sem_init(&semaphore, 0, 0); - - msg->header.type = CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROLLER_UNBIND; - msg->header.network_id = CTRLM_MAIN_NETWORK_ID_ALL; - msg->unbind = unbind; - msg->semaphore = &semaphore; - msg->cmd_result = &cmd_result; - - ctrlm_main_queue_msg_push(msg); - - // Wait for the result semaphore to be signaled - XLOGD_DEBUG("Waiting for main thread to process CONTROLLER_UNBIND request"); - sem_wait(&semaphore); - sem_destroy(&semaphore); - - if(cmd_result == CTRLM_MAIN_STATUS_REQUEST_SUCCESS) { - return(true); - } - return(false); -} - -void ctrlm_main_iarm_call_controller_unbind_(ctrlm_main_iarm_call_controller_unbind_t *unbind) { - if(!ctrlm_network_id_is_valid(unbind->network_id)) { - unbind->result = CTRLM_IARM_CALL_RESULT_ERROR_INVALID_PARAMETER; - XLOGD_ERROR("network id - Out of range %u", unbind->network_id); - return; - } - - ctrlm_obj_network_t *obj_net = g_ctrlm.networks[unbind->network_id]; - - obj_net->controller_unbind(unbind->controller_id, CTRLM_UNBIND_REASON_TARGET_USER); - unbind->result = CTRLM_IARM_CALL_RESULT_SUCCESS; -} - gboolean ctrlm_timeout_line_of_sight(gpointer user_data) { XLOGD_INFO("Timeout - Line of sight."); // Allocate a message and send it to Control Manager's queue diff --git a/src/ctrlm_main_iarm.cpp b/src/ctrlm_main_iarm.cpp index 2741bd9e..a47ce675 100644 --- a/src/ctrlm_main_iarm.cpp +++ b/src/ctrlm_main_iarm.cpp @@ -35,7 +35,6 @@ static IARM_Result_t ctrlm_main_iarm_call_status_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_network_status_get(void *arg); -static IARM_Result_t ctrlm_main_iarm_call_controller_unbind(void *arg); static IARM_Result_t ctrlm_main_iarm_call_ir_remote_usage_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_last_key_info_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_control_service_set_values(void *arg); @@ -58,7 +57,6 @@ static volatile int running = 0; ctrlm_iarm_call_t ctrlm_iarm_calls[] = { {CTRLM_MAIN_IARM_CALL_STATUS_GET, ctrlm_main_iarm_call_status_get }, {CTRLM_MAIN_IARM_CALL_NETWORK_STATUS_GET, ctrlm_main_iarm_call_network_status_get }, - {CTRLM_MAIN_IARM_CALL_CONTROLLER_UNBIND, ctrlm_main_iarm_call_controller_unbind }, {CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET, ctrlm_main_iarm_call_ir_remote_usage_get }, {CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET, ctrlm_main_iarm_call_last_key_info_get }, {CTRLM_MAIN_IARM_CALL_CONTROL_SERVICE_SET_VALUES, ctrlm_main_iarm_call_control_service_set_values }, @@ -202,29 +200,6 @@ IARM_Result_t ctrlm_main_iarm_call_network_status_get(void *arg) { return(IARM_RESULT_SUCCESS); } -IARM_Result_t ctrlm_main_iarm_call_controller_unbind(void *arg) { - ctrlm_main_iarm_call_controller_unbind_t *unbind = (ctrlm_main_iarm_call_controller_unbind_t *)arg; - - if(0 == g_atomic_int_get(&running)) { - XLOGD_ERROR("IARM Call received when IARM component in stopped/terminated state, reply with ERROR"); - return(IARM_RESULT_INVALID_STATE); - } - if(NULL == unbind) { - XLOGD_ERROR("NULL Property Argument"); - g_assert(0); - return(IARM_RESULT_INVALID_PARAM); - } - if(unbind->api_revision != CTRLM_MAIN_IARM_BUS_API_REVISION) { - XLOGD_INFO("Unsupported API Revision (%u, %u)", unbind->api_revision, CTRLM_MAIN_IARM_BUS_API_REVISION); - unbind->result = CTRLM_IARM_CALL_RESULT_ERROR_API_REVISION; - return(IARM_RESULT_SUCCESS); - } - if(!ctrlm_main_iarm_call_controller_unbind(unbind)) { - unbind->result = CTRLM_IARM_CALL_RESULT_ERROR; - } - return(IARM_RESULT_SUCCESS); -} - void ctrlm_main_iarm_event_binding_button(gboolean active) { ctrlm_main_iarm_event_binding_button_t event; event.api_revision = CTRLM_MAIN_IARM_BUS_API_REVISION; diff --git a/src/ctrlm_network.cpp b/src/ctrlm_network.cpp index fc7035a0..85112019 100644 --- a/src/ctrlm_network.cpp +++ b/src/ctrlm_network.cpp @@ -570,38 +570,6 @@ void ctrlm_obj_network_t::hal_init_cfm(void *data, int size) { } } -void ctrlm_obj_network_t::req_process_rib_set(void *data, int size) { - ctrlm_main_queue_msg_rib_t *dqm = (ctrlm_main_queue_msg_rib_t *)data; - - g_assert(dqm); - g_assert(size == sizeof(ctrlm_main_queue_msg_rib_t)); - - if(dqm->cmd_result && *dqm->cmd_result == CTRLM_RIB_REQUEST_PENDING) { - XLOGD_WARN("not implemented for %s network", name_get()); - *dqm->cmd_result = CTRLM_RIB_REQUEST_ERROR; - } - - if(dqm->semaphore) { - sem_post(dqm->semaphore); - } -} - -void ctrlm_obj_network_t::req_process_rib_get(void *data, int size) { - ctrlm_main_queue_msg_rib_t *dqm = (ctrlm_main_queue_msg_rib_t *)data; - - g_assert(dqm); - g_assert(size == sizeof(ctrlm_main_queue_msg_rib_t)); - - if(dqm->cmd_result && *dqm->cmd_result == CTRLM_RIB_REQUEST_PENDING) { - XLOGD_WARN("not implemented for %s network", name_get()); - *dqm->cmd_result = CTRLM_RIB_REQUEST_ERROR; - } - - if(dqm->semaphore) { - sem_post(dqm->semaphore); - } -} - void ctrlm_obj_network_t::req_process_network_status(void *data, int size) { ctrlm_main_queue_msg_main_network_status_t *dqm = (ctrlm_main_queue_msg_main_network_status_t *)data; diff --git a/src/ctrlm_network.h b/src/ctrlm_network.h index cb877123..3d375b6f 100644 --- a/src/ctrlm_network.h +++ b/src/ctrlm_network.h @@ -271,8 +271,6 @@ class ctrlm_obj_network_t virtual void req_process_ir_clear_codes(void *data, int size); virtual void req_process_find_my_remote(void *data, int size); - virtual void req_process_rib_set(void *data, int size); - virtual void req_process_rib_get(void *data, int size); virtual void req_process_polling_action_push(void *data, int size); virtual void req_process_network_managed_upgrade(void *data, int size); diff --git a/src/ctrlm_rcu.cpp b/src/ctrlm_rcu.cpp index 3e7f0a24..a0a13411 100644 --- a/src/ctrlm_rcu.cpp +++ b/src/ctrlm_rcu.cpp @@ -72,100 +72,6 @@ gboolean ctrlm_rcu_controller_status(ctrlm_rcu_iarm_call_controller_status_t *pa return(false); } -gboolean ctrlm_rcu_rib_request_get(ctrlm_rcu_iarm_call_rib_request_t *params) { - if(params->attribute_id == CTRLM_RCU_RIB_ATTR_ID_IR_RF_DATABASE) { - XLOGD_INFO("(%u, %u) Attribute <%s> Index <%s> Length %u", params->network_id, params->controller_id, ctrlm_rcu_rib_attr_id_str(params->attribute_id), ctrlm_key_code_str((ctrlm_key_code_t)params->attribute_index), params->length); - } else { - XLOGD_INFO("(%u, %u) Attribute <%s> Index %u Length %u", params->network_id, params->controller_id, ctrlm_rcu_rib_attr_id_str(params->attribute_id), params->attribute_index, params->length); - } - - if(params->network_id == CTRLM_MAIN_NETWORK_ID_ALL || params->controller_id == CTRLM_MAIN_CONTROLLER_ID_ALL) { - XLOGD_ERROR("Cannot get multiple RIB entries"); - return(false); - } - sem_t semaphore; - ctrlm_rib_request_cmd_result_t cmd_result = CTRLM_RIB_REQUEST_PENDING; - - // Allocate a message and send it to Control Manager's queue - ctrlm_main_queue_msg_rib_t msg; - errno_t safec_rc = memset_s(&msg, sizeof(msg), 0, sizeof(msg)); - ERR_CHK(safec_rc); - - sem_init(&semaphore, 0, 0); - - msg.controller_id = params->controller_id; - msg.attribute_id = params->attribute_id; - msg.attribute_index = params->attribute_index; - msg.length = params->length; - msg.length_out = ¶ms->length; - msg.data = (guchar *)params->data; - msg.semaphore = &semaphore; - msg.cmd_result = &cmd_result; - - ctrlm_main_queue_handler_push(CTRLM_HANDLER_NETWORK, (ctrlm_msg_handler_network_t)&ctrlm_obj_network_t::req_process_rib_get, &msg, sizeof(msg), NULL, params->network_id); - - // Wait for the result semaphore to be signaled - sem_wait(&semaphore); - sem_destroy(&semaphore); - - if(cmd_result == CTRLM_RIB_REQUEST_SUCCESS) { - return(true); - } - - params->length = 0; - XLOGD_ERROR("Failed to get RIB entry"); - - return(false); -} - -gboolean ctrlm_rcu_rib_request_set(ctrlm_rcu_iarm_call_rib_request_t *params) { - - if(params->attribute_id == CTRLM_RCU_RIB_ATTR_ID_IR_RF_DATABASE) { - XLOGD_INFO("(%u, %u) Attribute <%s> Index <%s> Length %u", params->network_id, params->controller_id, ctrlm_rcu_rib_attr_id_str(params->attribute_id), ctrlm_key_code_str((ctrlm_key_code_t)params->attribute_index), params->length); - } else { - XLOGD_INFO("(%u, %u) Attribute <%s> Index %u Length %u", params->network_id, params->controller_id, ctrlm_rcu_rib_attr_id_str(params->attribute_id), params->attribute_index, params->length); - } - - if(params->length > CTRLM_RCU_MAX_RIB_ATTRIBUTE_SIZE) { - XLOGD_ERROR("Invalid length %u", params->length); - return(false); - } - if(params->network_id == CTRLM_MAIN_NETWORK_ID_ALL) { - XLOGD_ERROR("Cannot set rib for multiple networks"); - return(false); - } - - sem_t semaphore; - ctrlm_rib_request_cmd_result_t cmd_result = CTRLM_RIB_REQUEST_PENDING; - - // Allocate a message and send it to Control Manager's queue - ctrlm_main_queue_msg_rib_t msg; - errno_t safec_rc = memset_s(&msg, sizeof(msg), 0, sizeof(msg)); - ERR_CHK(safec_rc); - - sem_init(&semaphore, 0, 0); - - msg.controller_id = params->controller_id; - msg.attribute_id = params->attribute_id; - msg.attribute_index = params->attribute_index; - msg.length = params->length; - msg.length_out = 0; - msg.data = (guchar *)params->data; - msg.semaphore = &semaphore; - msg.cmd_result = &cmd_result; - - ctrlm_main_queue_handler_push(CTRLM_HANDLER_NETWORK, (ctrlm_msg_handler_network_t)&ctrlm_obj_network_t::req_process_rib_set, &msg, sizeof(msg), NULL, params->network_id); - - // Wait for the result semaphore to be signaled - sem_wait(&semaphore); - sem_destroy(&semaphore); - - if(cmd_result == CTRLM_RIB_REQUEST_SUCCESS) { - return(true); - } - return(false); -} - gboolean ctrlm_rcu_controller_link_key(ctrlm_rcu_iarm_call_controller_link_key_t *params) { XLOGD_INFO("(%u, %u)", params->network_id, params->controller_id); diff --git a/src/ctrlm_rcu.h b/src/ctrlm_rcu.h index 7b3729ff..f332c726 100644 --- a/src/ctrlm_rcu.h +++ b/src/ctrlm_rcu.h @@ -28,7 +28,6 @@ typedef enum { } ctrlm_controller_status_cmd_result_t; typedef enum { - CTRLM_RIB_REQUEST_PENDING = 0, CTRLM_RIB_REQUEST_SUCCESS = 1, CTRLM_RIB_REQUEST_ERROR = 2 } ctrlm_rib_request_cmd_result_t; @@ -73,18 +72,6 @@ typedef struct { ctrlm_main_iarm_call_rcu_reverse_cmd_t reverse_command; } ctrlm_main_queue_msg_rcu_reverse_cmd_t; -typedef struct { - ctrlm_main_queue_msg_header_t header; - ctrlm_controller_id_t controller_id; - unsigned char attribute_id; - unsigned char attribute_index; - unsigned char length; - unsigned char * length_out; - unsigned char * data; - sem_t * semaphore; - ctrlm_rib_request_cmd_result_t *cmd_result; -} ctrlm_main_queue_msg_rib_t; - typedef struct { ctrlm_main_queue_msg_header_t header; ctrlm_controller_id_t controller_id; @@ -140,8 +127,6 @@ void ctrlm_rcu_iarm_event_remote_reboot(ctrlm_network_id_t network_id, ctrlm void ctrlm_rcu_iarm_event_reverse_cmd(ctrlm_network_id_t network_id, ctrlm_controller_id_t controller_id, ctrlm_main_iarm_event_t event, ctrlm_rcu_reverse_cmd_result_t result, int result_data_size, const unsigned char* result_data); gboolean ctrlm_rcu_controller_status(ctrlm_rcu_iarm_call_controller_status_t *params); -gboolean ctrlm_rcu_rib_request_get(ctrlm_rcu_iarm_call_rib_request_t *params); -gboolean ctrlm_rcu_rib_request_set(ctrlm_rcu_iarm_call_rib_request_t *params); gboolean ctrlm_rcu_controller_link_key(ctrlm_rcu_iarm_call_controller_link_key_t *params); gboolean ctrlm_rcu_controller_type_get(ctrlm_network_id_t network_id, ctrlm_controller_id_t controller_id, ctrlm_rcu_controller_type_t *type); gboolean ctrlm_rcu_rf4ce_polling_action(ctrlm_rcu_iarm_call_rf4ce_polling_action_t *params); diff --git a/src/ctrlm_rcu_iarm.cpp b/src/ctrlm_rcu_iarm.cpp index a28ea82e..a001d4e0 100644 --- a/src/ctrlm_rcu_iarm.cpp +++ b/src/ctrlm_rcu_iarm.cpp @@ -29,8 +29,6 @@ #include "ctrlm_utils.h" static IARM_Result_t ctrlm_rcu_iarm_call_controller_status(void *arg); -static IARM_Result_t ctrlm_rcu_iarm_call_rib_request_get(void *arg); -static IARM_Result_t ctrlm_rcu_iarm_call_rib_request_set(void *arg); static IARM_Result_t ctrlm_rcu_iarm_call_controller_link_key(void *arg); static IARM_Result_t ctrlm_rcu_iarm_call_rf4ce_polling_action(void *arg); @@ -41,8 +39,6 @@ typedef struct { static iarm_call_handler_t handlers[] = { { CTRLM_RCU_IARM_CALL_CONTROLLER_STATUS, &ctrlm_rcu_iarm_call_controller_status }, - { CTRLM_RCU_IARM_CALL_RIB_REQUEST_GET, &ctrlm_rcu_iarm_call_rib_request_get }, - { CTRLM_RCU_IARM_CALL_RIB_REQUEST_SET, &ctrlm_rcu_iarm_call_rib_request_set }, { CTRLM_RCU_IARM_CALL_CONTROLLER_LINK_KEY, &ctrlm_rcu_iarm_call_controller_link_key }, { CTRLM_RCU_IARM_CALL_RF4CE_POLLING_ACTION, &ctrlm_rcu_iarm_call_rf4ce_polling_action } }; @@ -227,16 +223,6 @@ IARM_Result_t ctrlm_rcu_iarm_call_controller_status(void *arg) { return ctrlm_rcu_iarm_call_dispatch(params, &ctrlm_rcu_controller_status); } -IARM_Result_t ctrlm_rcu_iarm_call_rib_request_get(void *arg) { - ctrlm_rcu_iarm_call_rib_request_t *params = (ctrlm_rcu_iarm_call_rib_request_t *) arg; - return ctrlm_rcu_iarm_call_dispatch(params, &ctrlm_rcu_rib_request_get); -} - -IARM_Result_t ctrlm_rcu_iarm_call_rib_request_set(void *arg) { - ctrlm_rcu_iarm_call_rib_request_t *params = (ctrlm_rcu_iarm_call_rib_request_t *) arg; - return ctrlm_rcu_iarm_call_dispatch(params, &ctrlm_rcu_rib_request_set); -} - IARM_Result_t ctrlm_rcu_iarm_call_controller_link_key(void *arg) { ctrlm_rcu_iarm_call_controller_link_key_t *params = (ctrlm_rcu_iarm_call_controller_link_key_t *) arg; return ctrlm_rcu_iarm_call_dispatch(params, &ctrlm_rcu_controller_link_key); diff --git a/src/ctrlm_utils.cpp b/src/ctrlm_utils.cpp index edac08c1..30bc4e20 100644 --- a/src/ctrlm_utils.cpp +++ b/src/ctrlm_utils.cpp @@ -366,7 +366,6 @@ const char *ctrlm_main_queue_msg_type_str(ctrlm_main_queue_msg_type_t type) { case CTRLM_MAIN_QUEUE_MSG_TYPE_TERMINATE: return("TERMINATE"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_STATUS: return("MAIN_STATUS"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_FACTORY_RESET: return("MAIN_FACTORY_RESET"); - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROLLER_UNBIND: return("MAIN_CONTROLLER_UNBIND"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_TIMEOUT_LINE_OF_SIGHT: return("MAIN_TIMEOUT_LINE_OF_SIGHT"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_TIMEOUT_AUTOBIND: return("MAIN_TIMEOUT_AUTOBIND"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_TIMEOUT_BINDING_BUTTON: return("MAIN_TIMEOUT_BINDING_BUTTON"); diff --git a/src/rf4ce/ctrlm_rf4ce_network.cpp b/src/rf4ce/ctrlm_rf4ce_network.cpp index 8dce469e..a46a33d6 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.cpp +++ b/src/rf4ce/ctrlm_rf4ce_network.cpp @@ -1527,236 +1527,6 @@ void ctrlm_obj_network_rf4ce_t::process_event_key(ctrlm_controller_id_t controll controllers_[controller_id]->process_event_key(key_status, static_cast(key_code), mask_key_codes_get()); } -void ctrlm_obj_network_rf4ce_t::req_process_rib_set(void *data, int size) { - THREAD_ID_VALIDATE(); - ctrlm_main_queue_msg_rib_t *dqm = (ctrlm_main_queue_msg_rib_t *)data; - - g_assert(dqm); - g_assert(size == sizeof(ctrlm_main_queue_msg_rib_t)); - g_assert(dqm->cmd_result); - - *dqm->cmd_result = CTRLM_RIB_REQUEST_SUCCESS; - - ctrlm_controller_id_t controller_id = dqm->controller_id; - if(controller_id == CTRLM_MAIN_CONTROLLER_ID_ALL) { // set to all controllers - if(is_attribute_network_wide((ctrlm_rf4ce_rib_attr_id_t)dqm->attribute_id)) { // Some attributes are network wide - gboolean rib_entries_updated = false; - if(!rf4ce_rib_set_target((ctrlm_rf4ce_rib_attr_id_t)dqm->attribute_id, dqm->attribute_index, dqm->length, dqm->data, &rib_entries_updated)) { - *dqm->cmd_result = CTRLM_RIB_REQUEST_ERROR; - } else if(rib_entries_updated) { - guchar flag[CTRLM_RF4CE_RIB_ATTR_LEN_RIB_ENTRIES_UPDATED]; - flag[0] = 0x01; // True - for(map::iterator it = controllers_.begin(); it != controllers_.end(); it++) { - it->second->rf4ce_rib_set_target(CTRLM_RF4CE_RIB_ATTR_ID_RIB_ENTRIES_UPDATED, 0, CTRLM_RF4CE_RIB_ATTR_LEN_RIB_ENTRIES_UPDATED, flag); - } - } - } else { - for(map::iterator it = controllers_.begin(); it != controllers_.end(); it++) { - it->second->rf4ce_rib_set_target((ctrlm_rf4ce_rib_attr_id_t)dqm->attribute_id, dqm->attribute_index, dqm->length, dqm->data); - } - } - } else { // set for specific controller - if(!controller_exists(controller_id)) { - XLOGD_WARN("Controller %u NOT present.", controller_id); - *dqm->cmd_result = CTRLM_RIB_REQUEST_ERROR; - } else { - controllers_[controller_id]->rf4ce_rib_set_target((ctrlm_rf4ce_rib_attr_id_t)dqm->attribute_id, dqm->attribute_index, dqm->length, dqm->data); - } - } - ctrlm_obj_network_t::req_process_rib_set(data, size); -} - -gboolean ctrlm_obj_network_rf4ce_t::is_attribute_network_wide(ctrlm_rf4ce_rib_attr_id_t attribute_id) { - #ifdef CONTROLLER_SPECIFIC_NETWORK_ATTRIBUTES - return(false); - #else - switch(attribute_id) { - case CTRLM_RF4CE_RIB_ATTR_ID_SHORT_RF_RETRY_PERIOD: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_MAXIMUM_UTTERANCE_LENGTH: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_MAX_VOICE_DATA_RETRY: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_MAX_VOICE_CSMA_BACKOFF: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_MIN_VOICE_DATA_BACKOFF: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_VOICE_TARG_AUDIO_PROFILES: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_RIB_UPDATE_CHECK_INTERVAL: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_UPDATE_POLLING_PERIOD: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_DATA_REQUEST_WAIT_TIME: return(true); - case CTRLM_RF4CE_RIB_ATTR_ID_VALIDATION_CONFIGURATION: return(true); - default: return(false); - } - #endif -} - -gboolean ctrlm_obj_network_rf4ce_t::rf4ce_rib_set_target(ctrlm_rf4ce_rib_attr_id_t attribute_id, guchar index, guchar length, guchar *data, gboolean *rib_entries_updated) { - #ifdef CONTROLLER_SPECIFIC_NETWORK_ATTRIBUTES - return(false); - #else - switch(attribute_id) { - case CTRLM_RF4CE_RIB_ATTR_ID_SHORT_RF_RETRY_PERIOD: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_SHORT_RF_RETRY_PERIOD || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - short_rf_retry_period_ = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | (data[0]); - XLOGD_INFO("%u us", short_rf_retry_period_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_MAXIMUM_UTTERANCE_LENGTH: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_MAXIMUM_UTTERANCE_LENGTH || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - utterance_duration_max_ = (data[1] << 8) | (data[0]); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_MAX_VOICE_DATA_RETRY: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_MAX_VOICE_DATA_RETRY || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - if(voice_data_retry_max_ != data[0]) { - *rib_entries_updated = true; - } - - voice_data_retry_max_ = data[0]; - XLOGD_INFO("%u attempts", voice_data_retry_max_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_MAX_VOICE_CSMA_BACKOFF: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_MAX_VOICE_CSMA_BACKOFF || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - guchar voice_csma_backoff_max = data[0]; - if(voice_csma_backoff_max > 5) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - if(voice_csma_backoff_max_ != voice_csma_backoff_max) { - *rib_entries_updated = true; - } - voice_csma_backoff_max_ = voice_csma_backoff_max; - - XLOGD_INFO("%u backoffs", voice_csma_backoff_max_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_MIN_VOICE_DATA_BACKOFF: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_MIN_VOICE_DATA_BACKOFF || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - guchar voice_data_backoff_exp_min = data[0]; - if(voice_data_backoff_exp_min_ != voice_data_backoff_exp_min) { - *rib_entries_updated = true; - } - voice_data_backoff_exp_min_ = voice_data_backoff_exp_min; - - XLOGD_INFO("backoff exponent %u", voice_data_backoff_exp_min_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_VOICE_TARG_AUDIO_PROFILES: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_VOICE_TARG_AUDIO_PROFILES || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } else { - XLOGD_ERROR("VOICE TARG AUDIO PROFILES - NOT SUPPORTED"); - return(false); - } - } - case CTRLM_RF4CE_RIB_ATTR_ID_RIB_UPDATE_CHECK_INTERVAL: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_RIB_UPDATE_CHECK_INTERVAL || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - guint16 rib_update_check_interval = (data[1] << 8) | data[0]; - if(rib_update_check_interval > 8760) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - if(rib_update_check_interval_ != rib_update_check_interval) { - *rib_entries_updated = true; - } - rib_update_check_interval_ = rib_update_check_interval; - - XLOGD_INFO("%u hours", rib_update_check_interval_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_UPDATE_POLLING_PERIOD: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_UPDATE_POLLING_PERIOD || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - update_polling_period_ = (data[1] << 8) | (data[0]); - - XLOGD_INFO("%u hours", update_polling_period_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_DATA_REQUEST_WAIT_TIME: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_DATA_REQUEST_WAIT_TIME || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - data_request_wait_time_ = (data[1] << 8) | (data[0]); - - XLOGD_INFO("%u ms", data_request_wait_time_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_VALIDATION_CONFIGURATION: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_VALIDATION_CONFIGURATION || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - auto_check_validation_period_ = (data[1] << 8) | (data[0]); - link_lost_wait_time_ = (data[3] << 8) | (data[2]); - - XLOGD_INFO("auto check validation period %u ms", auto_check_validation_period_); - XLOGD_INFO("link lost wait time %u ms", link_lost_wait_time_); - return(true); - } - case CTRLM_RF4CE_RIB_ATTR_ID_VOICE_COMMAND_ENCRYPTION: { - if(length != CTRLM_RF4CE_RIB_ATTR_LEN_VOICE_COMMAND_ENCRYPTION || index > 0) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - voice_command_encryption_t voice_command_encryption = (voice_command_encryption_t)data[0]; - - if(voice_command_encryption > VOICE_COMMAND_ENCRYPTION_DEFAULT) { - XLOGD_ERROR("INVALID PARAMETERS"); - return(false); - } - if(voice_command_encryption_ != voice_command_encryption) { - *rib_entries_updated = true; - } - voice_command_encryption_ = voice_command_encryption; - XLOGD_INFO("<%s>", ctrlm_rf4ce_voice_command_encryption_str(voice_command_encryption)); - return(true); - } - default: break; - } - return(false); - #endif -} - -void ctrlm_obj_network_rf4ce_t::req_process_rib_get(void *data, int size) { - THREAD_ID_VALIDATE(); - ctrlm_main_queue_msg_rib_t *dqm = (ctrlm_main_queue_msg_rib_t *)data; - - g_assert(dqm); - g_assert(size == sizeof(ctrlm_main_queue_msg_rib_t)); - g_assert(dqm->cmd_result); - - *dqm->cmd_result = CTRLM_RIB_REQUEST_SUCCESS; - - ctrlm_controller_id_t controller_id = dqm->controller_id; - if(!controller_exists(controller_id)) { - XLOGD_WARN("Controller %u NOT present.", controller_id); - *dqm->cmd_result = CTRLM_RIB_REQUEST_ERROR; - } else { - controllers_[controller_id]->rf4ce_rib_get_target((ctrlm_rf4ce_rib_attr_id_t)dqm->attribute_id, dqm->attribute_index, dqm->length, dqm->length_out, dqm->data); - } - - ctrlm_obj_network_t::req_process_rib_get(data, size); -} - void ctrlm_obj_network_rf4ce_t::req_process_controller_status(void *data, int size) { THREAD_ID_VALIDATE(); ctrlm_main_queue_msg_controller_status_t *dqm = (ctrlm_main_queue_msg_controller_status_t *)data; diff --git a/src/rf4ce/ctrlm_rf4ce_network.h b/src/rf4ce/ctrlm_rf4ce_network.h index f9b49ad5..a2e0696e 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.h +++ b/src/rf4ce/ctrlm_rf4ce_network.h @@ -342,8 +342,6 @@ class ctrlm_obj_network_rf4ce_t : public ctrlm_obj_network_t void notify_controllers_polling_configuration(void *data, size_t size); // void req_process_voice_settings_update(ctrlm_main_queue_msg_voice_settings_update_t *dqm); - void req_process_rib_set(void *data, int size); - void req_process_rib_get(void *data, int size); ctrlm_rib_request_cmd_result_t req_process_rib_export(ctrlm_controller_id_t controller_id, uint8_t identifier, unsigned char index, unsigned char length, unsigned char *data); void req_process_controller_status(void *dqm, int size); void req_process_controller_product_name(void *data, int size); @@ -620,8 +618,6 @@ class ctrlm_obj_network_rf4ce_t : public ctrlm_obj_network_t void controller_backup(ctrlm_controller_id_t controller_id, void *data); void controller_restore(ctrlm_controller_id_t controller_id); ctrlm_hal_result_t controller_unpair(ctrlm_controller_id_t controller_id); - gboolean is_attribute_network_wide(ctrlm_rf4ce_rib_attr_id_t attribute_id); - gboolean rf4ce_rib_set_target(ctrlm_rf4ce_rib_attr_id_t identifier, guchar index, guchar length, guchar *data, gboolean *rib_entries_updated); gboolean is_xr11_hardware_version(version_hardware_t version_hardware); gboolean is_xr15_hardware_version(version_hardware_t version_hardware); gboolean is_autobind_active(ctrlm_hal_rf4ce_ieee_address_t ieee_address); From 91eda453e3fe3e607c396e57e00abc4949da585c Mon Sep 17 00:00:00 2001 From: dwolav200 Date: Thu, 13 Aug 2026 16:00:29 -0400 Subject: [PATCH 3/3] remove control service get/set iarm apis --- include/ctrlm_ipc.h | 26 ----- src/ctrlm.h | 11 -- src/ctrlm_main.cpp | 188 +----------------------------- src/ctrlm_main_iarm.cpp | 53 --------- src/ctrlm_network.cpp | 2 +- src/ctrlm_network.h | 2 +- src/ctrlm_utils.cpp | 2 - src/rf4ce/ctrlm_rf4ce_network.cpp | 10 +- src/rf4ce/ctrlm_rf4ce_network.h | 2 +- 9 files changed, 5 insertions(+), 291 deletions(-) diff --git a/include/ctrlm_ipc.h b/include/ctrlm_ipc.h index 73bedd6c..0f699227 100644 --- a/include/ctrlm_ipc.h +++ b/include/ctrlm_ipc.h @@ -32,8 +32,6 @@ #define CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET "Main_IrRemoteUsageGet" ///< Retrieves the ir remote usage info #define CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET "Main_LastKeyInfoGet" ///< Retrieves the last key info #define CTRLM_MAIN_IARM_CALL_LAST_KEYPRESS_GET "Main_LastKeyPressGet" ///< Retrieves the last key press (TODO: replace CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET with this) -#define CTRLM_MAIN_IARM_CALL_CONTROL_SERVICE_SET_VALUES "Main_ControlService_SetValues" ///< IARM Call to set control service values -#define CTRLM_MAIN_IARM_CALL_CONTROL_SERVICE_GET_VALUES "Main_ControlService_GetValues" ///< IARM Call to get control service values #define CTRLM_MAIN_IARM_CALL_PAIRING_METRICS_GET "Main_PairingMetricsGet" ///< Retrieves the stb's pairing metrics #define CTRLM_MAIN_IARM_CALL_AUDIO_CAPTURE_START "Main_AudioCaptureStart" ///< Sends message to xraudio to capture mic data, in specified container #define CTRLM_MAIN_IARM_CALL_AUDIO_CAPTURE_STOP "Main_AudioCaptureStop" ///< Sends message to xraudio to stop capturing mic data @@ -83,16 +81,6 @@ #define CTRLM_MAIN_SOURCE_NAME_MAX_LENGTH (20) ///< Maximum length of source name string (including null termination) -// Bitmask defines for setting the available value in ctrlm_main_iarm_call_control_service_settings_t -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_ASB_ENABLED (0x01) ///< Setting to enable/disable asb -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_OPEN_CHIME_ENABLED (0x02) ///< Setting to enable/disable open chime -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_CLOSE_CHIME_ENABLED (0x04) ///< Setting to enable/disable close chime -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_PRIVACY_CHIME_ENABLED (0x08) ///< Setting to enable/disable privacy chime -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_CONVERSATIONAL_MODE (0x10) ///< Setting for conversational mode (0-6) -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_SET_CHIME_VOLUME (0x20) ///< Setting to set the chime volume -#define CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_SET_IR_COMMAND_REPEATS (0x40) ///< Setting to set the ir command repeats - -#define CTRLM_MIN_CONVERSATIONAL_MODE (0) #define CTRLM_MAX_CONVERSATIONAL_MODE (6) #define CTRLM_MIN_IR_COMMAND_REPEATS (1) #define CTRLM_MAX_IR_COMMAND_REPEATS (10) @@ -430,20 +418,6 @@ typedef struct { char source_name[CTRLM_MAIN_SOURCE_NAME_MAX_LENGTH]; ///< OUT - The source name of the last key press. } ctrlm_main_iarm_call_last_key_info_t; -typedef struct { - unsigned char api_revision; ///< The revision of this API. - ctrlm_iarm_call_result_t result; ///< Result of the IARM call - unsigned long available; ///< Bitmask indicating the settings that are available in this event - unsigned char asb_supported; ///< Read only Boolean value to indicate asb supported enable (non-zero) or not supported (zero) asb - unsigned char asb_enabled; ///< Boolean value to enable (non-zero) or disable (zero) asb - unsigned char open_chime_enabled; ///< Boolean value to enable (non-zero) or disable (zero) open chime - unsigned char close_chime_enabled; ///< Boolean value to enable (non-zero) or disable (zero) close chime - unsigned char privacy_chime_enabled; ///< Boolean value to enable (non-zero) or disable (zero) privacy chime - unsigned char conversational_mode; ///< Boolean value to set conversational mode (0-6) - ctrlm_chime_volume_t chime_volume; ///< The chime volume - unsigned char ir_command_repeats; ///< The ir command repeats (1 - 10) -} ctrlm_main_iarm_call_control_service_settings_t; - typedef struct { unsigned char api_revision; ///< The revision of this API. ctrlm_iarm_call_result_t result; ///< Result of the IARM call diff --git a/src/ctrlm.h b/src/ctrlm.h index 07d6b7f5..acdbb4d4 100644 --- a/src/ctrlm.h +++ b/src/ctrlm.h @@ -95,8 +95,6 @@ typedef enum { CTRLM_MAIN_QUEUE_MSG_TYPE_IR_REMOTE_USAGE, CTRLM_MAIN_QUEUE_MSG_TYPE_LAST_KEY_INFO, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_STOP_BINDING_SCREEN, - CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES, - CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_STOP_ONE_TOUCH_AUTOBIND, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CLOSE_PAIRING_WINDOW, CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_BIND_STATUS_SET, @@ -241,13 +239,6 @@ typedef struct { ctrlm_main_status_cmd_result_t *cmd_result; } ctrlm_main_queue_msg_last_key_info_t; -typedef struct { - ctrlm_main_queue_msg_header_t header; - ctrlm_main_iarm_call_control_service_settings_t *settings; - sem_t * semaphore; - ctrlm_main_status_cmd_result_t * cmd_result; -} ctrlm_main_queue_msg_main_control_service_settings_t; - typedef struct { ctrlm_main_queue_msg_header_t header; ctrlm_main_iarm_call_control_service_pairing_mode_t *pairing; @@ -421,8 +412,6 @@ gboolean ctrlm_main_iarm_call_factory_reset(ctrlm_main_iarm_call_factory_reset_t gboolean ctrlm_main_iarm_call_ir_remote_usage_get(ctrlm_main_iarm_call_ir_remote_usage_t *ir_remote_usage); gboolean ctrlm_main_iarm_call_pairing_metrics_get(ctrlm_main_iarm_call_pairing_metrics_t *pairing_metrics); gboolean ctrlm_main_iarm_call_last_key_info_get(ctrlm_main_iarm_call_last_key_info_t *last_key_info); -gboolean ctrlm_main_iarm_call_control_service_set_values(ctrlm_main_iarm_call_control_service_settings_t *settings); -gboolean ctrlm_main_iarm_call_control_service_get_values(ctrlm_main_iarm_call_control_service_settings_t *settings); void ctrlm_main_iarm_call_control_service_start_pairing_mode_(ctrlm_main_iarm_call_control_service_pairing_mode_t *pairing); void ctrlm_main_iarm_call_control_service_end_pairing_mode_(ctrlm_main_iarm_call_control_service_pairing_mode_t *pairing); diff --git a/src/ctrlm_main.cpp b/src/ctrlm_main.cpp index 7e051346..80dd4214 100644 --- a/src/ctrlm_main.cpp +++ b/src/ctrlm_main.cpp @@ -2758,110 +2758,6 @@ gpointer ctrlm_main_thread(gpointer param) { } break; } - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES: { - ctrlm_main_queue_msg_main_control_service_settings_t *dqm = (ctrlm_main_queue_msg_main_control_service_settings_t *) msg; - ctrlm_main_iarm_call_control_service_settings_t *settings = dqm->settings; - XLOGD_DEBUG("message type CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES"); - - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_ASB_ENABLED) { - if(ctrlm_is_rf4ce_asb_supported()) { - // Write new asb_enabled flag to NVM - ctrlm_db_asb_enabled_write(&settings->asb_enabled, CTRLM_ASB_ENABLED_LEN); - g_ctrlm.cs_values.asb_enable = settings->asb_enabled; - XLOGD_INFO("ASB Enabled Set Values <%s>", g_ctrlm.cs_values.asb_enable ? "true" : "false"); - } else { - XLOGD_INFO("ASB Enabled Set Values , ASB Not Supported"); - } - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_OPEN_CHIME_ENABLED) { - // Write new open_chime_enabled flag to NVM - ctrlm_db_open_chime_enabled_write(&settings->open_chime_enabled, CTRLM_OPEN_CHIME_ENABLED_LEN); - g_ctrlm.cs_values.chime_open_enable = settings->open_chime_enabled; - XLOGD_INFO("Open Chime Enabled <%s>", settings->open_chime_enabled ? "true" : "false"); - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_CLOSE_CHIME_ENABLED) { - // Write new close_chime_enabled flag to NVM - ctrlm_db_close_chime_enabled_write(&settings->close_chime_enabled, CTRLM_CLOSE_CHIME_ENABLED_LEN); - g_ctrlm.cs_values.chime_close_enable = settings->close_chime_enabled; - XLOGD_INFO("Close Chime Enabled <%s>", settings->close_chime_enabled ? "true" : "false"); - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_PRIVACY_CHIME_ENABLED) { - // Write new privacy_chime_enabled flag to NVM - ctrlm_db_privacy_chime_enabled_write(&settings->privacy_chime_enabled, CTRLM_PRIVACY_CHIME_ENABLED_LEN); - g_ctrlm.cs_values.chime_privacy_enable = settings->privacy_chime_enabled; - XLOGD_INFO("Privacy Chime Enabled <%s>", settings->privacy_chime_enabled ? "true" : "false"); - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_CONVERSATIONAL_MODE) { - if(settings->conversational_mode > CTRLM_MAX_CONVERSATIONAL_MODE) { - XLOGD_WARN("Conversational Mode Invalid <%d>. Ignoring.", settings->conversational_mode); - } else { - // Write new conversational mode to NVM - ctrlm_db_conversational_mode_write((guchar *)&settings->conversational_mode, CTRLM_CONVERSATIONAL_MODE_LEN); - g_ctrlm.cs_values.conversational_mode = settings->conversational_mode; - XLOGD_INFO("Conversational Mode Set <%d>", settings->conversational_mode); - } - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_SET_CHIME_VOLUME) { - if(settings->chime_volume >= CTRLM_CHIME_VOLUME_INVALID) { - XLOGD_WARN("Chime Volume Invalid <%d>. Ignoring.", settings->chime_volume); - } else { - // Write new chime_volume to NVM - ctrlm_db_chime_volume_write((guchar *)&settings->chime_volume, CTRLM_CHIME_VOLUME_LEN); - g_ctrlm.cs_values.chime_volume = settings->chime_volume; - XLOGD_INFO("Chime Volume Set <%d>", settings->chime_volume); - } - } - if(settings->available & CTRLM_MAIN_CONTROL_SERVICE_SETTINGS_SET_IR_COMMAND_REPEATS) { - if((settings->ir_command_repeats < CTRLM_MIN_IR_COMMAND_REPEATS) || (settings->ir_command_repeats > CTRLM_MAX_IR_COMMAND_REPEATS)) { - XLOGD_WARN("IR command repeats Invalid <%d>. Ignoring.", settings->ir_command_repeats); - } else { - // Write new ir_command_repeats to NVM - ctrlm_db_ir_command_repeats_write(&settings->ir_command_repeats, CTRLM_IR_COMMAND_REPEATS_LEN); - g_ctrlm.cs_values.ir_repeats = settings->ir_command_repeats; - XLOGD_INFO("IR Command Repeats Set <%d>", settings->ir_command_repeats); - } - } - - // Set these values in the networks - for(auto const &itr : g_ctrlm.networks) { - itr.second->cs_values_set(&g_ctrlm.cs_values, false); - } - - if(dqm->semaphore != NULL && dqm->cmd_result != NULL) { - // Signal the semaphore to indicate that the result is present - *dqm->cmd_result = CTRLM_MAIN_STATUS_REQUEST_SUCCESS; - sem_post(dqm->semaphore); - } - break; - } - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES: { - ctrlm_main_queue_msg_main_control_service_settings_t *dqm = (ctrlm_main_queue_msg_main_control_service_settings_t *) msg; - ctrlm_main_iarm_call_control_service_settings_t *settings = dqm->settings; - XLOGD_DEBUG("message type CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES"); - if(ctrlm_is_rf4ce_asb_supported()) { - settings->asb_supported = true; - } else { - settings->asb_supported = false; - } - - settings->asb_enabled = g_ctrlm.cs_values.asb_enable; - settings->open_chime_enabled = g_ctrlm.cs_values.chime_open_enable; - settings->close_chime_enabled = g_ctrlm.cs_values.chime_close_enable; - settings->privacy_chime_enabled = g_ctrlm.cs_values.chime_privacy_enable; - settings->conversational_mode = g_ctrlm.cs_values.conversational_mode; - settings->chime_volume = g_ctrlm.cs_values.chime_volume; - settings->ir_command_repeats = g_ctrlm.cs_values.ir_repeats; - XLOGD_INFO("ASB Get Values: Supported <%s> ASB Enabled <%s> Open Chime Enabled <%s> Close Chime Enabled <%s> Privacy Chime Enabled <%s> Conversational Mode <%u> Chime Volume <%d> IR Command Repeats <%d>", - settings->asb_supported ? "true" : "false", settings->asb_enabled ? "true" : "false", settings->open_chime_enabled ? "true" : "false", - settings->close_chime_enabled ? "true" : "false", settings->privacy_chime_enabled ? "true" : "false", settings->conversational_mode, settings->chime_volume, settings->ir_command_repeats); - - if(dqm->semaphore != NULL && dqm->cmd_result != NULL) { - // Signal the semaphore to indicate that the result is present - *dqm->cmd_result = CTRLM_MAIN_STATUS_REQUEST_SUCCESS; - sem_post(dqm->semaphore); - } - break; - } case CTRLM_MAIN_QUEUE_MSG_TYPE_BATTERY_MILESTONE_EVENT: { ctrlm_main_queue_msg_rf4ce_battery_milestone_t *dqm = (ctrlm_main_queue_msg_rf4ce_battery_milestone_t *) msg; XLOGD_DEBUG("message type CTRLM_MAIN_QUEUE_MSG_TYPE_BATTERY_MILESTONE_EVENT"); @@ -4021,88 +3917,6 @@ void ctrlm_update_last_key_info(int controller_id, ctrlm_key_source_t source_typ } } -gboolean ctrlm_main_iarm_call_control_service_set_values(ctrlm_main_iarm_call_control_service_settings_t *settings) { - if(settings == NULL) { - XLOGD_ERROR("NULL parameter"); - return(false); - } - XLOGD_INFO(""); - - // Signal completion of the operation - sem_t semaphore; - ctrlm_main_status_cmd_result_t cmd_result = CTRLM_MAIN_STATUS_REQUEST_PENDING; - - // Allocate a message and send it to Control Manager's queue - ctrlm_main_queue_msg_main_control_service_settings_t *msg = (ctrlm_main_queue_msg_main_control_service_settings_t *)g_malloc(sizeof(ctrlm_main_queue_msg_main_control_service_settings_t)); - - if(NULL == msg) { - XLOGD_FATAL("Out of memory"); - g_assert(0); - return(false); - } - - sem_init(&semaphore, 0, 0); - - msg->header.type = CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES; - msg->header.network_id = CTRLM_MAIN_NETWORK_ID_ALL; - msg->settings = settings; - msg->semaphore = &semaphore; - msg->cmd_result = &cmd_result; - - ctrlm_main_queue_msg_push(msg); - - // Wait for the result semaphore to be signaled - XLOGD_DEBUG("Waiting for main thread to process CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES request"); - sem_wait(&semaphore); - sem_destroy(&semaphore); - - if(cmd_result == CTRLM_MAIN_STATUS_REQUEST_SUCCESS) { - return(true); - } - return(false); -} - -gboolean ctrlm_main_iarm_call_control_service_get_values(ctrlm_main_iarm_call_control_service_settings_t *settings) { - if(settings == NULL) { - XLOGD_ERROR("NULL parameter"); - return(false); - } - XLOGD_INFO(""); - - // Signal completion of the operation - sem_t semaphore; - ctrlm_main_status_cmd_result_t cmd_result = CTRLM_MAIN_STATUS_REQUEST_PENDING; - - // Allocate a message and send it to Control Manager's queue - ctrlm_main_queue_msg_main_control_service_settings_t *msg = (ctrlm_main_queue_msg_main_control_service_settings_t *)g_malloc(sizeof(ctrlm_main_queue_msg_main_control_service_settings_t)); - - if(NULL == msg) { - XLOGD_FATAL("Out of memory"); - g_assert(0); - return(false); - } - - sem_init(&semaphore, 0, 0); - - msg->header.type = CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES; - msg->header.network_id = CTRLM_MAIN_NETWORK_ID_ALL; - msg->settings = settings; - msg->semaphore = &semaphore; - msg->cmd_result = &cmd_result; - - ctrlm_main_queue_msg_push(msg); - - // Wait for the result semaphore to be signaled - XLOGD_DEBUG("Waiting for main thread to process CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES request"); - sem_wait(&semaphore); - sem_destroy(&semaphore); - - if(cmd_result == CTRLM_MAIN_STATUS_REQUEST_SUCCESS) { - return(true); - } - return(false); -} - void ctrlm_main_iarm_call_control_service_start_pairing_mode_(ctrlm_main_iarm_call_control_service_pairing_mode_t *pairing) { if(pairing->network_id != CTRLM_MAIN_NETWORK_ID_ALL && !ctrlm_network_id_is_valid(pairing->network_id)) { pairing->result = CTRLM_IARM_CALL_RESULT_ERROR_INVALID_PARAMETER; @@ -4781,7 +4595,7 @@ void control_service_values_read_from_db() { // Call the network cs_values funcitons for(auto const &itr : g_ctrlm.networks) { - itr.second->cs_values_set(&g_ctrlm.cs_values, true); + itr.second->cs_values_set(&g_ctrlm.cs_values); } } diff --git a/src/ctrlm_main_iarm.cpp b/src/ctrlm_main_iarm.cpp index a47ce675..17d153cf 100644 --- a/src/ctrlm_main_iarm.cpp +++ b/src/ctrlm_main_iarm.cpp @@ -37,8 +37,6 @@ static IARM_Result_t ctrlm_main_iarm_call_status_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_network_status_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_ir_remote_usage_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_last_key_info_get(void *arg); -static IARM_Result_t ctrlm_main_iarm_call_control_service_set_values(void *arg); -static IARM_Result_t ctrlm_main_iarm_call_control_service_get_values(void *arg); static IARM_Result_t ctrlm_main_iarm_call_pairing_metrics_get(void *arg); static IARM_Result_t ctrlm_main_iarm_call_voice_session_begin(void *arg); static IARM_Result_t ctrlm_main_iarm_call_voice_session_end(void *arg); @@ -59,8 +57,6 @@ ctrlm_iarm_call_t ctrlm_iarm_calls[] = { {CTRLM_MAIN_IARM_CALL_NETWORK_STATUS_GET, ctrlm_main_iarm_call_network_status_get }, {CTRLM_MAIN_IARM_CALL_IR_REMOTE_USAGE_GET, ctrlm_main_iarm_call_ir_remote_usage_get }, {CTRLM_MAIN_IARM_CALL_LAST_KEY_INFO_GET, ctrlm_main_iarm_call_last_key_info_get }, - {CTRLM_MAIN_IARM_CALL_CONTROL_SERVICE_SET_VALUES, ctrlm_main_iarm_call_control_service_set_values }, - {CTRLM_MAIN_IARM_CALL_CONTROL_SERVICE_GET_VALUES, ctrlm_main_iarm_call_control_service_get_values }, {CTRLM_MAIN_IARM_CALL_PAIRING_METRICS_GET, ctrlm_main_iarm_call_pairing_metrics_get }, {CTRLM_VOICE_IARM_CALL_SESSION_BEGIN, ctrlm_main_iarm_call_voice_session_begin }, {CTRLM_VOICE_IARM_CALL_SESSION_END, ctrlm_main_iarm_call_voice_session_end }, @@ -305,55 +301,6 @@ IARM_Result_t ctrlm_main_iarm_call_audio_capture_stop(void *arg) { return(IARM_RESULT_SUCCESS); } -IARM_Result_t ctrlm_main_iarm_call_control_service_set_values(void *arg) { - ctrlm_main_iarm_call_control_service_settings_t *settings = (ctrlm_main_iarm_call_control_service_settings_t *)arg; - - if(0 == g_atomic_int_get(&running)) { - XLOGD_ERROR("IARM Call received when IARM component in stopped/terminated state, reply with ERROR"); - return(IARM_RESULT_INVALID_STATE); - } - if(NULL == settings) { - XLOGD_ERROR("NULL Settings Argument"); - g_assert(0); - return(IARM_RESULT_INVALID_PARAM); - } - if(settings->api_revision != CTRLM_MAIN_IARM_BUS_API_REVISION) { - XLOGD_INFO("Unsupported API Revision (%u, %u)", settings->api_revision, CTRLM_MAIN_IARM_BUS_API_REVISION); - settings->result = CTRLM_IARM_CALL_RESULT_ERROR_API_REVISION; - return(IARM_RESULT_SUCCESS); - } - XLOGD_INFO(""); - - if(!ctrlm_main_iarm_call_control_service_set_values(settings)) { - settings->result = CTRLM_IARM_CALL_RESULT_ERROR; - } - return(IARM_RESULT_SUCCESS); -} - -IARM_Result_t ctrlm_main_iarm_call_control_service_get_values(void *arg) { - ctrlm_main_iarm_call_control_service_settings_t *settings = (ctrlm_main_iarm_call_control_service_settings_t *)arg; - - if(0 == g_atomic_int_get(&running)) { - XLOGD_ERROR("IARM Call received when IARM component in stopped/terminated state, reply with ERROR"); - return(IARM_RESULT_INVALID_STATE); - } - if(NULL == settings) { - XLOGD_ERROR("NULL Settings Argument"); - g_assert(0); - return(IARM_RESULT_INVALID_PARAM); - } - if(settings->api_revision != CTRLM_MAIN_IARM_BUS_API_REVISION) { - XLOGD_INFO("Unsupported API Revision (%u, %u)", settings->api_revision, CTRLM_MAIN_IARM_BUS_API_REVISION); - settings->result = CTRLM_IARM_CALL_RESULT_ERROR_API_REVISION; - return(IARM_RESULT_SUCCESS); - } - - if(!ctrlm_main_iarm_call_control_service_get_values(settings)) { - settings->result = CTRLM_IARM_CALL_RESULT_ERROR; - } - return(IARM_RESULT_SUCCESS); -} - IARM_Result_t ctrlm_main_iarm_call_pairing_metrics_get(void *arg) { ctrlm_main_iarm_call_pairing_metrics_t *pairing_metrics = (ctrlm_main_iarm_call_pairing_metrics_t *) arg; diff --git a/src/ctrlm_network.cpp b/src/ctrlm_network.cpp index 85112019..92c71faf 100644 --- a/src/ctrlm_network.cpp +++ b/src/ctrlm_network.cpp @@ -897,7 +897,7 @@ bool ctrlm_obj_network_t::discovery_config_set(ctrlm_controller_discovery_config return false; } -void ctrlm_obj_network_t::cs_values_set(const ctrlm_cs_values_t *values, bool db_load) { +void ctrlm_obj_network_t::cs_values_set(const ctrlm_cs_values_t *values) { XLOGD_WARN("not implemented for %s network", name_get()); } diff --git a/src/ctrlm_network.h b/src/ctrlm_network.h index 3d375b6f..372e456d 100644 --- a/src/ctrlm_network.h +++ b/src/ctrlm_network.h @@ -240,7 +240,7 @@ class ctrlm_obj_network_t virtual void factory_reset(); virtual bool binding_config_set(ctrlm_controller_bind_config_t conf); virtual bool discovery_config_set(ctrlm_controller_discovery_config_t conf); - virtual void cs_values_set(const ctrlm_cs_values_t *values, bool db_load); + virtual void cs_values_set(const ctrlm_cs_values_t *values); virtual void recovery_set(ctrlm_recovery_type_t recovery); virtual bool backup_hal_nvm(); virtual void bind_validation_begin(ctrlm_main_queue_msg_bind_validation_begin_t *dqm); diff --git a/src/ctrlm_utils.cpp b/src/ctrlm_utils.cpp index 30bc4e20..0c226110 100644 --- a/src/ctrlm_utils.cpp +++ b/src/ctrlm_utils.cpp @@ -380,8 +380,6 @@ const char *ctrlm_main_queue_msg_type_str(ctrlm_main_queue_msg_type_t type) { case CTRLM_MAIN_QUEUE_MSG_TYPE_IR_REMOTE_USAGE: return("IR_REMOTE_USAGE"); case CTRLM_MAIN_QUEUE_MSG_TYPE_LAST_KEY_INFO: return("LAST_KEY_INFO"); case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_STOP_BINDING_SCREEN: return("MAIN_STOP_BINDING_SCREEN"); - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_SET_VALUES: return("CONTROL_SERVICE_SET_VALUES"); - case CTRLM_MAIN_QUEUE_MSG_TYPE_MAIN_CONTROL_SERVICE_GET_VALUES: return("CONTROL_SERVICE_GET_VALUES"); case CTRLM_MAIN_QUEUE_MSG_TYPE_EXPORT_CONTROLLER_LIST: return("EXPORT_CONTROLLER_LIST"); default: if (type >= CTRLM_MAIN_QUEUE_MSG_TYPE_VENDOR_FIRST && type <= CTRLM_MAIN_QUEUE_MSG_TYPE_VENDOR_LAST) { return("VENDOR SPECIFIC MESSAGE"); diff --git a/src/rf4ce/ctrlm_rf4ce_network.cpp b/src/rf4ce/ctrlm_rf4ce_network.cpp index a46a33d6..5e87808f 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.cpp +++ b/src/rf4ce/ctrlm_rf4ce_network.cpp @@ -3903,7 +3903,7 @@ void ctrlm_obj_network_rf4ce_t::req_process_network_status(void *data, int size) ctrlm_obj_network_t::req_process_network_status(data, size); } -void ctrlm_obj_network_rf4ce_t::cs_values_set(const ctrlm_cs_values_t *values, bool db_load) { +void ctrlm_obj_network_rf4ce_t::cs_values_set(const ctrlm_cs_values_t *values) { if(values == NULL) { XLOGD_ERROR("values are NULL"); return; @@ -3919,8 +3919,6 @@ void ctrlm_obj_network_rf4ce_t::cs_values_set(const ctrlm_cs_values_t *values, b } // Far Field Configuration - far_field_configuration_t temp = ff_configuration_; - if(values->chime_open_enable) { ff_configuration_.flags |= FAR_FIELD_CONFIGURATION_FLAGS_OPENING_CHIME; } else { @@ -3953,12 +3951,6 @@ void ctrlm_obj_network_rf4ce_t::cs_values_set(const ctrlm_cs_values_t *values, b } ff_configuration_.volume_ir_repeats = values->ir_repeats; - - if(!db_load && memcmp(&temp, &ff_configuration_, sizeof(temp))) { - // Configuration changed - update_far_field_configuration(); - } - } ctrlm_rf4ce_polling_configuration_t ctrlm_obj_network_rf4ce_t::controller_polling_configuration_heartbeat_get(ctrlm_rf4ce_controller_type_t controller_type) { diff --git a/src/rf4ce/ctrlm_rf4ce_network.h b/src/rf4ce/ctrlm_rf4ce_network.h index a2e0696e..45470dfd 100644 --- a/src/rf4ce/ctrlm_rf4ce_network.h +++ b/src/rf4ce/ctrlm_rf4ce_network.h @@ -304,7 +304,7 @@ class ctrlm_obj_network_rf4ce_t : public ctrlm_obj_network_t void short_address_get(ctrlm_hal_rf4ce_short_address_t *short_address); void rf_channel_info_get(ctrlm_rf4ce_rf_channel_info_t *rf_channel_info); bool binding_config_set(ctrlm_controller_bind_config_t conf); - void cs_values_set(const ctrlm_cs_values_t *values, bool db_load); + void cs_values_set(const ctrlm_cs_values_t *values); void factory_reset(); void controller_unbind(ctrlm_controller_id_t controller_id, ctrlm_unbind_reason_t reason); ctrlm_rf4ce_controller_type_t controller_type_get(ctrlm_controller_id_t controller_id);