Systemd provides the status of a given user and system session as a
human readable string.
Retrieve this information via RequestSystemState and guard the
retrieve of failed units depending on this request.
The functionality is extended but does not change, which means that
failed units in any granularity are displayed as before.
Update documentation in the meantime.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Split-out request of failed units from systemd into a separate member
function.
This increases the readability and extendability, but preserves the
current functionality (non-functional change).
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
Keeping nr_failed as member allows to split-out calculation of overall
failed units into updateData.
Signed-off-by: Steffen Kothe <steffen.kothe@skothe.net>
- The module only fetches nodes for "node-type". This causes the 'onMixerChanged' log to spam whenever two or more
wireplumber modules were registered on different nodes. To reduce this the unknown node warning will now only print
if the node is not the focus of any current module.
- Adds microphone support etc to the wireplumber module.
The existing module hardcodes the selected node type to "Audio/Sink". This feature allows the user to override this
via `"node-type": "Audio/Source"`.
- Unlike the pulseaudio module, this change does not try to see the module manage both input and output. The same effect
can be achieved by running two instances of the wireplumber module.
This approach:
- Works around some of the complexity overhead that seem to have caused similar PRs to stall.
- Using separate module instances also allows both the microphone and speaker levels to be controlled with a scroll
wheel. This is something a unified module like pulseaudio struggles with.
- Similarly, separate instances allows the source volume level to be exposed as the state. Ie- the linear-gradient
css patterns can be applied to both input and output.