Age | Commit message (Collapse) | Author | Files | Lines |
|
Bug-AGL: SPEC-4934
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
Change-Id: I767f7ee6bcc89b1eafad48472a06304159ef2dfe
|
|
- Replace g_warning() with fprintf(), so that we don't need to enable
WIREPLUMBER_DEBUG to actually read those messages.
- Make it so that the help message can be printed before connecting
to pipewire and waiting for controls.
- Remove the race condition mitigation hack that was previously there,
in case ensure_controls() did not discover all controls initially.
- Lock the audiomixer properly when using its methods and structures.
Bug-AGL: SPEC-4934
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
Change-Id: Ia4b9448dee83838858153f1c1c744e962294cd4e
|
|
This update also brings improvements to the initialization state
management, so that ensure_controls() is guaranteed to return after
all the relevant controls have been discovered. Previously there were
cases that ensure_controls() would return without having discovered
the role-based sinks or the equalizer sink.
Bug-AGL: SPEC-4934
Change-Id: If3acca37c98ae6ff5ef811b7634951d12bf1d030
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
|
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>
|
|
- 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>
|
|
- 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>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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)
|