-static pa_hook_result_t card_port_add_callback(pa_core *c, pa_device_port *port, struct userdata *u) {
- struct entry *entry;
- pa_card *card;
-
- pa_assert(port);
- card = port->card;
-
- if ((entry = entry_read(u, card->name))) {
- struct port_info *p_info;
-
- if ((p_info = pa_hashmap_get(entry->ports, port->name)))
- port_info_update(p_info, port);
- else {
- p_info = port_info_new(port);
- pa_assert_se(pa_hashmap_put(entry->ports, p_info->name, p_info) >= 0);
- }
-
- pa_log_info("Storing port info for port %s on card %s.", port->name, card->name);
-
- } else {
- entry = entry_from_card(card);
- show_full_info(card);
- }
-
- if (entry_write(u, card->name, entry))
- trigger_save(u);
-
- entry_free(entry);
- return PA_HOOK_OK;
-}
-