diff options
author | Adrian Scarlat <adrian.scarlat@windriver.com> | 2014-10-13 19:45:55 +0300 |
---|---|---|
committer | James Thomas <james.thomas@codethink.co.uk> | 2015-05-19 09:49:37 +0000 |
commit | 64d2ba454ecfb1ea9bef3b4b717989afa58db1c7 (patch) | |
tree | e0cc25ce4d8415a8b7a87f73ea95a9d8d3363c67 /PluginControlInterfacePulse/data | |
parent | a4539202bc7bab8c17d4c532ccb4cee1c4daed09 (diff) | |
download | audiomanager-64d2ba454ecfb1ea9bef3b4b717989afa58db1c7.tar.gz |
Porting Pulse Control Interface from AM v1.x to AM v3.0
This Control Interface is the "heart" of the AM; It is needed
by any application that will be developed on top of AM and will use
PulseAudio Sound Server to control the sources and sinks present on the
system. It must be loaded by AM;
The interface can be built by supplying cmake with the -DWITH_PULSE_CONTROL_PLUGIN=ON;
There is one configuration file that is used at the moment by the Control Interface:
1. libPluginControlInterface.conf - configuration file for defining the Sources,
Source Classes, Sinks, Sink Classes, Gateways, Routes and Mixing rules form them;
Modified files:
CMakeLists.txt
Added new folders:
PluginControlInterfacePulse/
Added new files:
PluginControlInterfacePulse/CMakeLists.txt
PluginControlInterfacePulse/README
PluginControlInterfacePulse/data/libPluginControlInterface.conf
PluginControlInterfacePulse/include/ControlConfig.h
PluginControlInterfacePulse/include/ControlSender.h
PluginControlInterfacePulse/src/ControlSender.cpp
Signed-off-by: Adrian Scarlat <adrian.scarlat@windriver.com>
Diffstat (limited to 'PluginControlInterfacePulse/data')
-rw-r--r-- | PluginControlInterfacePulse/data/libPluginControlInterface.conf | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/PluginControlInterfacePulse/data/libPluginControlInterface.conf b/PluginControlInterfacePulse/data/libPluginControlInterface.conf new file mode 100644 index 0000000..d2547c8 --- /dev/null +++ b/PluginControlInterfacePulse/data/libPluginControlInterface.conf @@ -0,0 +1,86 @@ +############################################################################ +# 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 + |