]> code.delx.au - pulseaudio/commit
sink: volume handling rework, new flat volume logic
authorLennart Poettering <lennart@poettering.net>
Wed, 19 Aug 2009 00:55:02 +0000 (02:55 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 19 Aug 2009 00:55:02 +0000 (02:55 +0200)
commit8c31974f56ebbbfc1a4978150026acf77c32689e
tree3078845a45638377a5d181695ed352dd32bf44cb
parent5207e191424675df74059aaf30f9b1292a05cb5d
sink: volume handling rework, new flat volume logic

- We now implement a logic where the sink maintains two distinct
  volumes: the 'reference' volume which is shown to the users, and the
  'real' volume, which is configured to the hardware. The latter is
  configured to the max of all streams. Volume changes on sinks are
  propagated back to the streams proportional to the reference volume
  change. Volume changes on sink inputs are forwarded to the sink by
  'pushing' the volume if necessary.

  This renames the old 'virtual_volume' to 'real_volume'. The
  'reference_volume' is now the one exposed to users.

  By this logic the sink volume visible to the user, will always be the
  "upper" boundary for everything that is played. Saved/restored stream
  volumes are measured relative to this boundary, the factor here is
  always < 1.0.

- introduce accuracy for sink volumes, similar to the accuracy we
  already have for source volumes.

- other cleanups.
16 files changed:
src/modules/alsa/alsa-sink.c
src/modules/module-device-restore.c
src/modules/module-lirc.c
src/modules/module-match.c
src/modules/module-mmkbd-evdev.c
src/modules/module-tunnel.c
src/modules/oss/module-oss.c
src/modules/raop/module-raop-sink.c
src/pulsecore/cli-command.c
src/pulsecore/cli-text.c
src/pulsecore/core.h
src/pulsecore/protocol-native.c
src/pulsecore/sink-input.c
src/pulsecore/sink-input.h
src/pulsecore/sink.c
src/pulsecore/sink.h