mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-26 07:00:13 -05:00
Make a new softVolume property that contains only the soft volume to apply. In the case of HW/SW volume, we pass the real volume in the channelVolume and the leftover volume in softVolume. We don't use the monitorVolume for this anymore because it is a completely separate volume handled by the merger node. This way, channelVolume always represents the effective volume set on routes, channelmix and merger and only the softVolume (when available) is applied as software volume by channelmix. This makes things map a bit better to what is actually happening with the real volume and leftover software volumes after applying the hardware volumes in the device. With this change, the volume on the monitor is not affected by the sink volume anymore and we can use the monitorVolume for this later. This also means that the monitor volume in pavucontrol of the sinks does not change when the sink volume changes. PulseAudio is inconsistent here: If the volume is HW, the monitor volume is not affected, if the volume is SW, it is. In PipeWire there is an option in merger to let the volume affect the monitor with monitor.channel-volumes = true.
117 lines
4.2 KiB
Text
117 lines
4.2 KiB
Text
# Bluez monitor config file for PipeWire version @VERSION@ #
|
|
|
|
properties = {
|
|
# Enable mSBC support, disabled by default. Be aware that
|
|
# mSBC is not expected to work on all headset + adapter combinations.
|
|
# This can be overloaded for a specific device and native backend
|
|
# in rules section.
|
|
#bluez5.msbc-support = false
|
|
|
|
#bluez5.sbc-xq-support = false
|
|
|
|
# Enabled headset roles (default: [ hsp_hs hfp_ag ]), this
|
|
# property only applies to native backend. Currently some headsets
|
|
# (Sony WH-1000XM3) are not working with both hsp_ag and hfp_ag
|
|
# enabled, disable either hsp_ag or hfp_ag to work around it.
|
|
#
|
|
# Supported headset roles: hsp_hs (HSP Headset),
|
|
# hsp_ag (HSP Audio Gateway),
|
|
# hfp_hf (HFP Hands-Free),
|
|
# hfp_ag (HFP Audio Gateway)
|
|
#bluez5.headset-roles = [ hsp_hs hsp_ag hfp_hf hfp_ag ]
|
|
|
|
# Enabled A2DP codecs (default: all).
|
|
#bluez5.codecs = [ sbc aac ldac aptx aptx_hd ]
|
|
}
|
|
|
|
rules = [
|
|
# An array of matches/actions to evaluate.
|
|
{
|
|
# Rules for matching a device or node. It is an array of
|
|
# properties that all need to match the regexp. If any of the
|
|
# matches work, the actions are executed for the object.
|
|
matches = [
|
|
{
|
|
# This matches all cards.
|
|
device.name = "~bluez_card.*"
|
|
}
|
|
]
|
|
actions = {
|
|
# Actions can update properties on the matched object.
|
|
update-props = {
|
|
|
|
# Auto-connect device profiles on start up or when only partial
|
|
# profiles have connected. Disabled by default if the property
|
|
# is not specified.
|
|
#bluez5.auto-connect = [
|
|
# hfp_hf
|
|
# hsp_hs
|
|
# a2dp_sink
|
|
# hfp_ag
|
|
# hsp_ag
|
|
# a2dp_source
|
|
#]
|
|
bluez5.auto-connect = [ hfp_hf hsp_hs a2dp_sink ]
|
|
|
|
# Overload mSBC support for native backend and a specific device.
|
|
#bluez5.msbc-support = false
|
|
|
|
# Hardware volume control (default: [ hfp_ag hsp_ag a2dp_source ])
|
|
#bluez5.hw-volume = [
|
|
# hfp_hf
|
|
# hsp_hs
|
|
# a2dp_sink
|
|
# hfp_ag
|
|
# hsp_ag
|
|
# a2dp_source
|
|
#]
|
|
|
|
# LDAC encoding quality
|
|
# Available values: auto (Adaptive Bitrate, default)
|
|
# hq (High Quality, 990/909kbps)
|
|
# sq (Standard Quality, 660/606kbps)
|
|
# mq (Mobile use Quality, 330/303kbps)
|
|
#bluez5.a2dp.ldac.quality = auto
|
|
|
|
# AAC variable bitrate mode
|
|
# Available values: 0 (cbr, default), 1-5 (quality level)
|
|
#bluez5.a2dp.aac.bitratemode = 0
|
|
|
|
# Profile connected first
|
|
# Available values: a2dp-sink (default), headset-head-unit
|
|
#device.profile = a2dp-sink
|
|
}
|
|
}
|
|
}
|
|
{
|
|
matches = [
|
|
{
|
|
# Matches all sources.
|
|
node.name = "~bluez_input.*"
|
|
}
|
|
{
|
|
# Matches all sinks.
|
|
node.name = "~bluez_output.*"
|
|
}
|
|
]
|
|
actions = {
|
|
update-props = {
|
|
#node.nick = "My Node"
|
|
#node.nick = null
|
|
#priority.driver = 100
|
|
#priority.session = 100
|
|
node.pause-on-idle = false
|
|
#resample.quality = 4
|
|
#channelmix.normalize = false
|
|
#channelmix.mix-lfe = false
|
|
#session.suspend-timeout-seconds = 5 # 0 disables suspend
|
|
#monitor.channel-volumes = false
|
|
|
|
# A2DP source role, "input" or "playback"
|
|
# Defaults to "playback", playing stream to speakers
|
|
# Set to "input" to use as an input for apps
|
|
#bluez5.a2dp-source-role = input
|
|
}
|
|
}
|
|
}
|
|
]
|