Currently the preferred device will not be restored for new streams if the
device is currently not avilable. This patch fixes the problem.
else if ((e = entry_read(u, name))) {
pa_sink *s = NULL;
- if (e->device_valid)
+ if (e->device_valid) {
s = pa_namereg_get(c, e->device, PA_NAMEREG_SINK);
+ new_data->preferred_sink = pa_xstrdup(e->device);
+ }
if (!s && e->card_valid) {
pa_card *card;
else if ((e = entry_read(u, name))) {
pa_source *s = NULL;
- if (e->device_valid)
+ if (e->device_valid) {
s = pa_namereg_get(c, e->device, PA_NAMEREG_SOURCE);
+ new_data->preferred_source = pa_xstrdup(e->device);
+ }
if (!s && e->card_valid) {
pa_card *card;