Add balance/fade/treble/bass support 31/29531/3 17.0.0 17.0.1 17.0.2 17.1.0 17.1.1 17.1.2 17.1.3 17.1.4 18.0.0 devtool-base devtool-patched quillback/17.0.0 quillback/17.0.1 quillback/17.0.2 quillback/17.1.0 quillback/17.1.1 quillback/17.1.2 quillback/17.1.3 quillback/17.1.4 quillback_17.0.0 quillback_17.0.1 quillback_17.0.2 quillback_17.1.0 quillback_17.1.1 quillback_17.1.2 quillback_17.1.3 quillback_17.1.4 ricefish/18.0.0 ricefish_18.0.0
authorScott Murray <scott.murray@konsulko.com>
Sun, 17 Dec 2023 20:35:19 +0000 (15:35 -0500)
committerScott Murray <scott.murray@konsulko.com>
Sun, 17 Dec 2023 20:46:14 +0000 (15:46 -0500)
commit0ff3ef1b254364639fc42495bbcfb4760250990a
tree7a54eb69afa4bf11c54f3491ee1f69e2e1650873
parent5567e12699dcc6584a620d2682430e3882dc0907
Add balance/fade/treble/bass support

Changes:
- Add support for new VSS signals for balance/fade/treble/bass.
  Treble and bass drive the recently added equalizer controls,
  while balance and fade currently do simple linear scaling down
  of the non-emphasized direction.
- Add support for VSS 4.0 separate navigation volume and mute
  signals.
- Significant refactoring of the audiomixer API calling code in
  the AudioMixerService class to avoid code duplication.
- All pushes of the updated VSS values for volume and mute
  signals now are driven from the mixer API callback so that
  internal and external mixer changes are handled with less
  code duplication.  For now, gain changes have been kept as
  explicit VSS updates on set, this may change if handling
  external changes seems more worthwhile.  As well, initial
  master volume setting is a bit of a special case, see below.
- Setting the initial volume has been tweaked a bit to ensure
  that the value gets pushed out via VSS.  There currently seems
  to be an issue with the master playback sink mixer not taking
  changes until playback starts, so while the current code
  ensures that VSS subscribers see the value the daemon has set,
  it is likely that does not correspond to what's in WirePlumber
  until playback of some form happens and another volume change
  is made.  This will be addressed with upstream.
- Change flags in the mixer API have been updated to indicate
  overall and per-channel volume changes as separate flags.

Bug-AGL: SPEC-5001

Change-Id: I66585f573978989a0c281f060a667b4495e4bc0f
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
src/AudiomixerService.cpp
src/AudiomixerService.h
src/audiomixer.h