summaryrefslogtreecommitdiff
path: root/PluginControlInterfacePulse/data/libPluginControlInterface.conf
diff options
context:
space:
mode:
authorAdrian Scarlat <adrian.scarlat@windriver.com>2014-10-13 19:45:55 +0300
committerJames Thomas <james.thomas@codethink.co.uk>2015-05-19 09:49:37 +0000
commit64d2ba454ecfb1ea9bef3b4b717989afa58db1c7 (patch)
treee0cc25ce4d8415a8b7a87f73ea95a9d8d3363c67 /PluginControlInterfacePulse/data/libPluginControlInterface.conf
parenta4539202bc7bab8c17d4c532ccb4cee1c4daed09 (diff)
downloadaudiomanager-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/libPluginControlInterface.conf')
-rw-r--r--PluginControlInterfacePulse/data/libPluginControlInterface.conf86
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
+