node: remove info from node interface

Replace with info event emited when callbacks are set. This makes it
easier to implement dynamic changes.
This commit is contained in:
Wim Taymans 2018-11-26 12:41:40 +01:00
parent 57e94f7bc4
commit 7bc9c1ebfe
23 changed files with 69 additions and 89 deletions

View file

@ -448,6 +448,10 @@ static int impl_node_send_command(struct spa_node *node, const struct spa_comman
return 0;
}
static const struct spa_dict_item node_info_items[] = {
{ "media.class", "Audio/Source" },
};
static int
impl_node_set_callbacks(struct spa_node *node,
const struct spa_node_callbacks *callbacks,
@ -462,6 +466,11 @@ impl_node_set_callbacks(struct spa_node *node,
this->callbacks = callbacks;
this->callbacks_data = data;
if (callbacks) {
if (callbacks->info)
callbacks->info(data, &SPA_DICT_INIT_ARRAY(node_info_items));
}
return 0;
}
@ -966,15 +975,6 @@ static int impl_node_process(struct spa_node *node)
return SPA_STATUS_OK;
}
static const struct spa_dict_item node_info_items[] = {
{ "media.class", "Audio/Source" },
};
static const struct spa_dict node_info = {
node_info_items,
SPA_N_ELEMENTS(node_info_items)
};
static const struct spa_node impl_node = {
SPA_VERSION_NODE,
&node_info,