if (source)
pa_subscription_post(p->core, PA_SUBSCRIPTION_EVENT_SOURCE|PA_SUBSCRIPTION_EVENT_CHANGE, source->index);
- pa_hook_fire(&p->core->hooks[PA_CORE_HOOK_PORT_AVAILABLE_CHANGED], p);
-
/* A sink or source whose active port is unavailable can't be the
* default sink/source, so port availability changes may affect the
* default sink/source choice. */
pa_core_move_streams_to_newly_available_preferred_source(p->core, source);
}
}
+
+ /* This may cause the sink and source pointers to become invalid, if
+ * the availability change causes the card profile to get switched. If
+ * you add code after this line, remember to take that into account. */
+ pa_hook_fire(&p->core->hooks[PA_CORE_HOOK_PORT_AVAILABLE_CHANGED], p);
}
}