The tentative fix of the issue #185

Submitted by Hui Wang on Nov. 5, 2018, 1:47 a.m.

Details

Reviewer None
Submitted Nov. 5, 2018, 1:47 a.m.
Last Updated Nov. 5, 2018, 1:47 a.m.
Revision 1

Cover Letter(s)

Revision 1
      This is a tentative fix of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/185

The patch is implemented based on Tanu's design:
https://lists.freedesktop.org/archives/pulseaudio-discuss/2018-October/030531.html

So far, the patches only cover the sink and sink_input, don't touch
the source and source_output yet. Based on these patches, I tested the switch
between HDMI output and speaker, it worked as expected. If the way of changing
sink/sink_input is basically correct and is worth to apply to the
source/source_output, I will continue to write patches for them too.


Hui Wang (4):
  change bool save_sink to char *preferred_sink
  move stream after default sink is changed.
  move streams to new appeared sinks if they prefer these sinks
  move stream when the active_port changes

 src/modules/dbus/iface-core.c               |  2 +-
 src/modules/module-default-device-restore.c |  2 +-
 src/modules/module-device-manager.c         |  2 +-
 src/modules/module-intended-roles.c         |  2 +-
 src/modules/module-stream-restore.c         | 47 ++++++++----
 src/modules/module-switch-on-connect.c      | 28 +------
 src/pulsecore/cli-command.c                 |  2 +-
 src/pulsecore/core.c                        |  9 ++-
 src/pulsecore/core.h                        |  4 +-
 src/pulsecore/device-port.c                 | 18 ++++-
 src/pulsecore/protocol-native.c             |  2 +-
 src/pulsecore/sink-input.c                  | 25 +++++--
 src/pulsecore/sink-input.h                  |  7 +-
 src/pulsecore/sink.c                        | 83 ++++++++++++++++++++-
 src/pulsecore/sink.h                        |  3 +
 15 files changed, 172 insertions(+), 64 deletions(-)
    

Revisions