-enum bt_graph_status
-bt_graph_add_source_component_output_port_removed_listener(
- struct bt_graph *graph,
- bt_graph_source_component_output_port_removed_listener_func func,
- bt_graph_listener_removed_func listener_removed, void *data,
- int *out_listener_id)
-{
- struct bt_graph_listener_port_removed listener = {
- .base = {
- .removed = listener_removed,
- .data = data,
- },
- .func = (port_removed_func_t) func,
- };
- int listener_id;
-
- BT_ASSERT_PRE_NON_NULL(graph, "Graph");
- BT_ASSERT_PRE_NON_NULL(func, "Listener");
- BT_ASSERT_PRE_NON_NULL(func, "\"Listener removed\" listener");
- BT_ASSERT_PRE(!graph->in_remove_listener,
- "Graph currently executing a \"listener removed\" listener: "
- "%!+g", graph);
- g_array_append_val(graph->listeners.source_output_port_removed, listener);
- listener_id = graph->listeners.source_output_port_removed->len - 1;
- BT_LIB_LOGV("Added \"source component output port removed\" listener to graph: "
- "%![graph-]+g, listener-addr=%p, id=%d", graph, listener,
- listener_id);
-
- if (listener_id) {
- *out_listener_id = listener_id;
- }
-
- return BT_GRAPH_STATUS_OK;
-}
-
-enum bt_graph_status
-bt_graph_add_filter_component_output_port_removed_listener(
- struct bt_graph *graph,
- bt_graph_filter_component_output_port_removed_listener_func func,
- bt_graph_listener_removed_func listener_removed, void *data,
- int *out_listener_id)
-{
- struct bt_graph_listener_port_removed listener = {
- .base = {
- .removed = listener_removed,
- .data = data,
- },
- .func = (port_removed_func_t) func,
- };
- int listener_id;
-
- BT_ASSERT_PRE_NON_NULL(graph, "Graph");
- BT_ASSERT_PRE_NON_NULL(func, "Listener");
- BT_ASSERT_PRE_NON_NULL(func, "\"Listener removed\" listener");
- BT_ASSERT_PRE(!graph->in_remove_listener,
- "Graph currently executing a \"listener removed\" listener: "
- "%!+g", graph);
- g_array_append_val(graph->listeners.filter_output_port_removed, listener);
- listener_id = graph->listeners.filter_output_port_removed->len - 1;
- BT_LIB_LOGV("Added \"filter component output port removed\" listener to graph: "
- "%![graph-]+g, listener-addr=%p, id=%d", graph, listener,
- listener_id);
-
- if (listener_id) {
- *out_listener_id = listener_id;
- }
-
- return BT_GRAPH_STATUS_OK;
-}
-
-enum bt_graph_status
-bt_graph_add_filter_component_input_port_removed_listener(
- struct bt_graph *graph,
- bt_graph_filter_component_input_port_removed_listener_func func,
- bt_graph_listener_removed_func listener_removed, void *data,
- int *out_listener_id)
-{
- struct bt_graph_listener_port_removed listener = {
- .base = {
- .removed = listener_removed,
- .data = data,
- },
- .func = (port_removed_func_t) func,
- };
- int listener_id;
-
- BT_ASSERT_PRE_NON_NULL(graph, "Graph");
- BT_ASSERT_PRE_NON_NULL(func, "Listener");
- BT_ASSERT_PRE_NON_NULL(func, "\"Listener removed\" listener");
- BT_ASSERT_PRE(!graph->in_remove_listener,
- "Graph currently executing a \"listener removed\" listener: "
- "%!+g", graph);
- g_array_append_val(graph->listeners.filter_input_port_removed, listener);
- listener_id = graph->listeners.filter_input_port_removed->len - 1;
- BT_LIB_LOGV("Added \"filter component input port removed\" listener to graph: "
- "%![graph-]+g, listener-addr=%p, id=%d", graph, listener,
- listener_id);
-
- if (listener_id) {
- *out_listener_id = listener_id;
- }
-
- return BT_GRAPH_STATUS_OK;
-}
-
-enum bt_graph_status
-bt_graph_add_sink_component_input_port_removed_listener(
- struct bt_graph *graph,
- bt_graph_sink_component_input_port_removed_listener_func func,
- bt_graph_listener_removed_func listener_removed, void *data,
- int *out_listener_id)
-{
- struct bt_graph_listener_port_removed listener = {
- .base = {
- .removed = listener_removed,
- .data = data,
- },
- .func = (port_removed_func_t) func,
- };
- int listener_id;
-
- BT_ASSERT_PRE_NON_NULL(graph, "Graph");
- BT_ASSERT_PRE_NON_NULL(func, "Listener");
- BT_ASSERT_PRE_NON_NULL(func, "\"Listener removed\" listener");
- BT_ASSERT_PRE(!graph->in_remove_listener,
- "Graph currently executing a \"listener removed\" listener: "
- "%!+g", graph);
- g_array_append_val(graph->listeners.sink_input_port_removed, listener);
- listener_id = graph->listeners.sink_input_port_removed->len - 1;
- BT_LIB_LOGV("Added \"sink component input port removed\" listener to graph: "
- "%![graph-]+g, listener-addr=%p, id=%d", graph, listener,
- listener_id);
-
- if (listener_id) {
- *out_listener_id = listener_id;
- }
-
- return BT_GRAPH_STATUS_OK;
-}
-