summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2023-12-17Add balance/fade/treble/bass supportricefish_18.0.0ricefish/18.0.0quillback_17.1.4quillback_17.1.3quillback_17.1.2quillback_17.1.1quillback_17.1.0quillback_17.0.2quillback_17.0.1quillback_17.0.0quillback/17.1.4quillback/17.1.3quillback/17.1.2quillback/17.1.1quillback/17.1.0quillback/17.0.2quillback/17.0.1quillback/17.0.0devtool-patcheddevtool-base18.0.017.1.417.1.317.1.217.1.117.1.017.0.217.0.117.0.0Scott Murray3-73/+310
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>
2023-12-15audiomixer: add new channel volume APIAshok Sidipotu3-31/+250
- Add API to control left and right channel volumes. - Fix a bug in treble gain update. The changed gain value of Treble is not updated in the audiomixer as the gain changed callback(on_eq_params_changed) doesnt look beyond bass for gain controls. Fix this issue by continuing to look beyond bass control. - Adjust the floating point comparision epsilon value from 0.000001 to 0.00001. Bug-AGL: SPEC-4931 Change-Id: I2a242d08f194b66abd84bb31a97364884e8d2a1d Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com>
2023-12-08audiomixer: Add gain controlsAshok Sidipotu4-7/+570
- Add Equalizer gain controls. - Add a simple app to test the controls. Bug-AGL: SPEC-4931 Change-Id: Ib33eb0e829747c401861e99acd67291462ec6a97 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com>
2023-08-24Rework to switch to using KUKSA.val databrokerScott Murray13-762/+974
Rework to use the "VAL" gRPC API from the KUKSA.val databroker instead of the older server's WebSocket interface. Some source files have been renamed to match the class naming to provide a bit more consistency. Bug-AGL: SPEC-4762 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5ded74cfbd6987cd045b7b142fd9f38971aaef66
2023-06-07vis-config.cpp: define local load_string_fileDenys Dmytriyenko1-4/+14
As boost has deprecated string_file helper functions since 1.81, define one locally with minor changes to use std types where needed. Bug-AGL: SPEC-4578 Signed-off-by: Denys Dmytriyenko <denys@konsulko.com> Change-Id: I231ff70857e8d4ed827337a52c60e58d01ab6ea5
2023-03-29audiomixer: fix compilation issueAshok Sidipotu1-0/+3
Set _XOPEN_SOURCE=700 to fix the compilation error with pipewire headers. Bug-AGL: SPEC-4732 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Change-Id: Ib009c9ecb1828286fd83173ac5cb6ebba5c78b97
2022-11-08Update message data type handlingScott Murray1-0/+6
KUKSA.val 0.2.1 always returned numeric values as floating point, this has changed with 0.2.5 and support is required to handle data points actually having integer or unsigned integer types. Bug-AGL: SPEC-4598 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ica9b3e5fc27e110c02788dde6549e0bb194ffeb1
2022-07-04Repurpose into VIS clientneedlefish_13.93.0needlefish/13.93.013.93.0Scott Murray10-0/+1411
Repurpose repository for a spiritual successor of the previous binding. The replacement is a daemon that demonstrates servicing the volume actuator from the VSS schema via VIS signals from KUKSA.val. Currently the connection to KUKSA.val is websocket based using the boost::asio framework, but the plan is to migrate to gRPC as that becomes more robust in KUKSA.val. As well, this new code will serve as the base for implementing a gRPC API to expose the full set of WirePlumber controls as was done with the previous binding. Notable changes: - New code is completely C++, partly to leverage using Boost, but also to futureproof future work with gRPC. The WirePlumber interfacing code that has been kept from the old binding is still C for now, converting it to C++ is a planned future rework. - Switch from CMake to meson for ease of development and some degree of futureproofing. - Use with systemd is assumed; behavior follows the systemd daemon guidelines barring the use of journald logging prefixes, which may be addressed with future work. A systemd unit is also installed as part of the build. - SPDX license headers using SPDX "short identifiers" are used in source files rather than the full copyright headers used in the previous codebase. This follows the direction that projects such as the Linux kernel are going in. Bug-AGL: SPEC-4409 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ibb7091c4354432bb094147d1419ab475486a4abc (cherry picked from commit 298bbf445a731b85cb8d5d19a3b595e8870d8701)