alsa: rework parameter handling

Pass the parameters around in a structure.
Add BUFFER_BYTES argument to configure the buffer size.
Add PIPEWIRE_ALSA env variable to set format, rate, channels,
period-bytes and buffer-bytes.
Add more variables in the alsa config file.
This commit is contained in:
Wim Taymans 2022-09-20 16:13:59 +02:00
parent 0ce95e69fd
commit c9753b0722
2 changed files with 163 additions and 75 deletions

View file

@ -4,9 +4,14 @@ defaults.pipewire.server "pipewire-0"
defaults.pipewire.node "-1"
defaults.pipewire.exclusive false
defaults.pipewire.role ""
defaults.pipewire.rate 0
defaults.pipewire.format ""
defaults.pipewire.channels 0
defaults.pipewire.period_bytes 0
defaults.pipewire.buffer_bytes 0
pcm.pipewire {
@args [ SERVER NODE EXCLUSIVE ROLE ]
@args [ SERVER NODE EXCLUSIVE ROLE RATE FORMAT CHANNELS PERIOD_BYTES BUFFER_BYTES ]
@args.SERVER {
type string
default {
@ -35,7 +40,41 @@ pcm.pipewire {
name defaults.pipewire.role
}
}
@args.RATE {
type integer
default {
@func refer
name defaults.pipewire.rate
}
}
@args.FORMAT {
type string
default {
@func refer
name defaults.pipewire.format
}
}
@args.CHANNELS {
type integer
default {
@func refer
name defaults.pipewire.channels
}
}
@args.PERIOD_BYTES {
type integer
default {
@func refer
name defaults.pipewire.period_bytes
}
}
@args.BUFFER_BYTES {
type integer
default {
@func refer
name defaults.pipewire.buffer_bytes
}
}
type pipewire
server $SERVER
@ -43,6 +82,11 @@ pcm.pipewire {
capture_node $NODE
exclusive $EXCLUSIVE
role $ROLE
rate $RATE
format $FORMAT
channels $CHANNELS
period_bytes $PERIOD_BYTES
buffer_bytes $BUFFER_BYTES
hint {
show on
description "PipeWire Sound Server"