# An example filter chain that makes a source that duplicates the FL channel
# to FL and FR.
#
# Copy this file into a conf.d/ directory such as
# ~/.config/pipewire/filter-chain.conf.d/
#
context.modules = [
    { name = libpipewire-module-filter-chain
        args = {
            node.description = "Remap example"
            media.name       = "Remap example"
            filter.graph = {
                nodes = [
                    {
                        name   = copyIL
                        type   = builtin
                        label  = copy
                    }
                    {
                        name   = copyOL
                        type   = builtin
                        label  = copy
                    }
                    {
                        name   = copyOR
                        type   = builtin
                        label  = copy
                    }
                ]
                links = [
		    # we can only tee from nodes, not inputs so we need
		    # to copy the inputs and then tee.
                    { output = "copyIL:Out" input = "copyOL:In" }
                    { output = "copyIL:Out" input = "copyOR:In" }
                ]
                inputs  = [ "copyIL:In" ]
                outputs = [ "copyOL:Out" "copyOR:Out" ]
            }
            capture.props = {
                node.name         = "remap_input.remap-FL-to-FL-FR"
                audio.position    = [ FL ]
                stream.dont-remix = true
                node.passive      = true
            }
            playback.props = {
                node.name         = "remap_output.remap-FL-to-FL-FR"
                audio.position    = [ FL FR ]
                media.class       = "Audio/Source"
            }
        }
    }
]
