From 507d494ccd5d5096a4e1ee33a6e500a1793df2e7 Mon Sep 17 00:00:00 2001 From: urmain Date: Mon, 7 Oct 2024 16:36:31 +0900 Subject: [PATCH] Add logic to find port when port_type and port_name are same Change-Id: I63eb8fb8a76e6b9c6d6a76c95bc34fc36a673aa9 --- src/mmi/mmi-node.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/mmi/mmi-node.cpp b/src/mmi/mmi-node.cpp index 53ed0a1..d757100 100644 --- a/src/mmi/mmi-node.cpp +++ b/src/mmi/mmi-node.cpp @@ -19,6 +19,7 @@ #include "mmi.h" #include "mmi-node.h" #include "mmi-node-internal.h" +#include "mmi-port-internal.h" #include "mmi-plugin-storage.h" #include "mmi-log.h" @@ -98,7 +99,22 @@ int mmi_node_find_port(mmi_node_h node, mmi_port_type_e port_type, const char *p LOGE("[ERROR] parameter is null"); return MMI_ERROR_INVALID_PARAMETER; } - return MMI_ERROR_NONE; + + mmi_node_s *node_ptr = static_cast(node); + + mmi_port_h *ports = node_ptr->ports; + size_t port_count = node_ptr->port_count; + + for (size_t i = 0; i < port_count; ++i) { + mmi_port_s *current_port = static_cast(ports[i]); + + if (current_port->type == port_type && strncmp(current_port->name, port_name, MMI_NAME_MAX_LENGTH) == 0) { + *port = ports[i]; + return MMI_ERROR_NONE; + } + } + LOGE("[ERROR] Port not found"); + return MMI_ERROR_INVALID_PARAMETER; } int mmi_node_link(mmi_node_h from_node, mmi_node_h to_node) { -- 2.34.1