############################################################################ # SPDX license identifier: MPL-2.0 # # Copyright (C) 2012-2014, Wind River Systems # Copyright (C) 2014, GENIVI Alliance # # This file is part of Pulse Audio Interface Routing Plugin. # # This Source Code Form is subject to the terms of the Mozilla Public # License (MPL), v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. # # For further information see http://www.genivi.org/. # # List of changes: # # 08.09.2014, Adrian Scarlat, First version of the code; # Porting code from AM ver1.x to AM ver3.0; # Added Copyright and License information; # # 19.09.2014, Adrian Scarlat, Added information regarding configuration options; # ############################################################################ # SourceClass has the following format: SourceClassName|SourceClassType [SourceClass] Entertainment|Main Navigation|Interrupt Telephony|Interrupt TTS|Main Analogic|Interrupt Digital|Main ############################################################################ # SinkClass has the following format: SinkClassName|SinkClassType [SinkClass] AlsaPrimary|Main ############################################################################ # Sinks and sources are clustered into independent parts which are capable of # exchanging audio with each other (AudioDomains). # Examples for possible AudioDomains: # - PulseAudio, Alsa, Jack, DSP, FPGA, MOST, In-chip switching matrix; # Between these AudioDomains, Audio can be interchanged via Gateways; # The format for a Gateway is: Sink from DomainX -> Source from DomainY; # Gateways always have a direction and can only transport one stream at a time. # Several gateways connecting the same domains together can exist in parallel # so that more than one source can be connected to more than one sink from the # same domains at the same time. #[Gateway] #Pulse2Dirana Primary:Alsa Primary>Primary Channel #Pulse2Dirana Secondary:Alsa Secondary>Secondary Channel ############################################################################ # Routes ar defined from a SourceClass to a Sink. A route is a ">" separated list # of Sources and Sinks. Routes have the following format: # SOURCE_CATEGORY:[SOURCE_NAME>SINK_NAME] # Where: # - SOURCE_CATEGORY = "Source" or "SourceClass"; # If SOURCE_CATEGORY=SourceClass, the first SOURCE_NAME must be the name of a source class # Otherwise SOURCE_NAME and SINK_NAME should be the name of a source and a sink. # A Gateway might be used to replace a Sink-Source pair: # Route1: SourceClass1 > Sink1 > Source2 > Sink2 # Is equivalent to # Route2: SourceClass1 > Gateway1 > Sink 2 # If and only if Gateway1 = Sink1 > Source2 [Route] Entertainment>AlsaPrimary Analogic>AlsaSecondary Navigation>AlsaSecondary Telephony>AlsaSecondary TTS>AlsaSecondary ############################################################################ # Mixing rule should be something like: # - if a new source is in the class XXX # - if there is a connection like [SourceClass->Sink] # - apply an action in: Domain/ # Mixing line format: [SourceClass]>[ACTION]|[ACTION]... # Where ACTION = SourceClass-Sink:ACTION_TYPE,ACTION_TARGET:ActionTarget # Where ACTION_TYPE = Mute, Unmute, Pause, Resume, DecreaseVolume, IncreaseVolume, Disconnect # ActionTarget = Domain/Sink or Domain/Source [Mixing] Entertainment:Entertainment>AlsaPrimary:Disconnect:PulseAudio:Source Analogic:Analogic>AlsaSecondary:Disconnect:PulseAudio:Source|Entertainment>AlsaPrimary:Disconnect:PulseAudio:Source|Navigation>AlsaSecondary:Disconnect:PulseAudio:Source|TTS>AlsaSecondary:Disconnect:PulseAudio:Source Navigation:Entertainment>AlsaPrimary:DecreaseVolume:PulseAudio:Sink|TTS>AlsaSecondary:Mute:PulseAudio:Source|Analogic>AlsaSecondary:Disconnect:PulseAudio:Source TTS:Entertainment>AlsaPrimary:DecreaseVolume:PulseAudio:Sink Telephony:Entertainment>AlsaPrimary:Disconnect:PulseAudio:Source|Analogic>AlsaSecondary:Disconnect:PulseAudio:Source|Navigation>AlsaSecondary:Mute:PulseAudio:Source|TTS>AlsaSecondary:Disconnect:PulseAudio:Source # !END