diff --git a/agent/agent.c b/agent/agent.c index a11f55b889932b9f6fabe7bc67c7c715080cd5eb..d17f3d2bf9fdac83d22e2bc0482190e27e7e062d 100644 --- a/agent/agent.c +++ b/agent/agent.c @@ -5866,3 +5866,20 @@ agent_socket_send (NiceSocket *sock, const NiceAddress *addr, gsize len, return ret; } } + +NiceComponentState +nice_agent_get_component_state (NiceAgent *agent, + guint stream_id, guint component_id) +{ + NiceComponentState state = NICE_COMPONENT_STATE_FAILED; + Component *component; + + agent_lock (); + + if (agent_find_component (agent, stream_id, component_id, NULL, &component)) + state = component->state; + + agent_unlock (); + + return state; +} diff --git a/agent/agent.h b/agent/agent.h index da59b45a8c9d750647f43f2505066c1bf98f1d2f..501933ff6a591e9311ee7cddced24e608cd77556 100644 --- a/agent/agent.h +++ b/agent/agent.h @@ -1487,6 +1487,24 @@ nice_agent_forget_relays (NiceAgent *agent, guint stream_id, guint component_id); +/** + * nice_agent_get_component_state: + * @agent: The #NiceAgent Object + * @stream_id: The ID of the stream + * @component_id: The ID of the component + * + * Retrieves the current state of a component. + * + * Returns: the #NiceComponentState of the component and + * %NICE_COMPONENT_STATE_FAILED if the component was invalid. + * + * Since: 0.1.7 + */ +NiceComponentState +nice_agent_get_component_state (NiceAgent *agent, + guint stream_id, + guint component_id); + G_END_DECLS #endif /* _AGENT_H */ diff --git a/nice/libnice.sym b/nice/libnice.sym index 117d00a2adb2aa6225628e653a9d212833a15b90..9a7cc790db7dd75817dd93d975686ffa497d242d 100644 --- a/nice/libnice.sym +++ b/nice/libnice.sym @@ -27,6 +27,7 @@ nice_agent_gather_candidates nice_agent_generate_local_candidate_sdp nice_agent_generate_local_sdp nice_agent_generate_local_stream_sdp +nice_agent_get_component_state nice_agent_get_default_local_candidate nice_agent_get_io_stream nice_agent_get_local_candidates