# PulseAudio config file for PipeWire version "1.6.7" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.
#
# It is also possible to place a file with an updated section in
# /etc/pipewire/pipewire-pulse.conf.d/ for system-wide changes or in
# ~/.config/pipewire/pipewire-pulse.conf.d/ for local changes.
#

context.properties = {
    ## Configure properties in the system.
    #mem.warn-mlock  = false
    #mem.allow-mlock = true
    #mem.mlock-all   = false
    #log.level       = 2

    #default.clock.quantum-limit = 8192
}

context.spa-libs = {
    audio.convert.* = audioconvert/libspa-audioconvert
    support.*       = support/libspa-support
}

context.modules = [
    { name = libpipewire-module-rt
        args = {
            nice.level   = -11
            #rt.prio      = 83
            #rt.time.soft = -1
            #rt.time.hard = -1
            #rlimits.enabled = true
            #rtportal.enabled = true
            #rtkit.enabled = true
            #uclamp.min = 0
            #uclamp.max = 1024
        }
        flags = [ ifexists nofail ]
    }
    { name = libpipewire-module-protocol-native }
    { name = libpipewire-module-client-node }
    { name = libpipewire-module-adapter }
    { name = libpipewire-module-avb
        args = {
	    # contents of avb.properties can also be placed here
	    # to have config per server.
        }
    }
]

# Extra modules can be loaded here. Setup in default.pa can be moved here
context.exec = [
    #{ path = "pactl"        args = "load-module module-always-sink" }
]

stream.properties = {
    #node.latency          = 1024/48000
    #node.autoconnect      = true
    #resample.quality      = 4
    #channelmix.normalize  = false
    #channelmix.mix-lfe    = true
    #channelmix.upmix      = true
    #channelmix.lfe-cutoff = 120
    #channelmix.fc-cutoff  = 6000
    #channelmix.rear-delay = 12.0
    #channelmix.stereo-widen = 0.1
    #channelmix.hilbert-taps = 0
}

avb.properties = {
    # the addresses this server listens on
    #ifname = "eth0.2"
    ifname = "enp3s0"
    milan = false
}

avb.properties.rules = [
    {   matches = [ { cpu.vm.name = !null } ]
        actions = {
            update-props = {
                # These overrides are only applied when running in a vm.
	    }
        }
    }
]
