In case a port has not yet been saved, which is e g often the case if a sink/source has only one port, reading volume/mute will be done without port, whereas writing volume/mute will be done with port.
Work around this by setting a default port before the fixate hook, so module-device-restore can read volume/mute for the correct port. BugLink: https://bugs.launchpad.net/bugs/1289515 Signed-off-by: David Henningsson <david.hennings...@canonical.com> --- src/pulsecore/sink.c | 11 +++++++++++ src/pulsecore/source.c | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 08143e9..9c4b0c3 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -235,6 +235,17 @@ pa_sink* pa_sink_new( pa_device_init_icon(data->proplist, true); pa_device_init_intended_roles(data->proplist); + if (!data->active_port && !data->save_port) { + void *state; + pa_device_port *p, *p2 = NULL; + + PA_HASHMAP_FOREACH(p, data->ports, state) + if (!p2 || p->priority > p2->priority) { + p2 = p; + pa_sink_new_data_set_port(data, p2->name); + } + } + if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SINK_FIXATE], data) < 0) { pa_xfree(s); pa_namereg_unregister(core, name); diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 2a600e2..94533df 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -222,6 +222,17 @@ pa_source* pa_source_new( pa_device_init_icon(data->proplist, false); pa_device_init_intended_roles(data->proplist); + if (!data->active_port && !data->save_port) { + void *state; + pa_device_port *p, *p2 = NULL; + + PA_HASHMAP_FOREACH(p, data->ports, state) + if (!p2 || p->priority > p2->priority) { + p2 = p; + pa_source_new_data_set_port(data, p2->name); + } + } + if (pa_hook_fire(&core->hooks[PA_CORE_HOOK_SOURCE_FIXATE], data) < 0) { pa_xfree(s); pa_namereg_unregister(core, name); -- 1.7.9.5 -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to pulseaudio in Ubuntu. https://bugs.launchpad.net/bugs/1289515 Title: Sound volume resets after making a call Status in “pulseaudio” package in Ubuntu: Incomplete Bug description: 1. mute your phone 2. dial a number and ensure the call is picked 3. end the call What happens: The sound volume is set to full and the phone unmutes What should happen: Ending the call should not effect the sound volume setting. ProblemType: Bug DistroRelease: Ubuntu 14.04 Package: telephony-service 0.1+14.04.20140303-0ubuntu1 Uname: Linux 3.4.0-5-mako armv7l ApportVersion: 2.13.2-0ubuntu5 Architecture: armhf Date: Fri Mar 7 23:26:43 2014 InstallationDate: Installed on 2014-03-07 (0 days ago) InstallationMedia: Ubuntu Trusty Tahr (development branch) - armhf (20140307.2) ProcEnviron: TERM=linux PATH=(custom, no user) SourcePackage: telephony-service UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1289515/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp