Ok, so one finding:
This row (in gvc-mixer-control.c, update_sink and update_source) control->priv->profile_swapping_device_id = GVC_MIXER_UI_DEVICE_INVALID;
...needs to move inside this block: if (gvc_mixer_ui_device_get_stream_id (dev) == gvc_mixer_stream_get_id (stream)) {
...otherwise profile_swapping_device_id gets forgotten before it is used.
Ok, so one finding:
This row (in gvc-mixer- control. c, update_sink and update_source)
control- >priv-> profile_ swapping_ device_ id = GVC_MIXER_ UI_DEVICE_ INVALID;
...needs to move inside this block:
if (gvc_mixer_ ui_device_ get_stream_ id (dev) == gvc_mixer_ stream_ get_id (stream)) {
...otherwise profile_ swapping_ device_ id gets forgotten before it is used.