aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToshiaki Isogai <tisogai@jp.adit-jv.com>2016-12-23 07:04:48 -0500
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2016-12-27 17:40:01 +0000
commitd7c4e0d888a0ff61ac9b7b3fb91b6bd28aed7dd1 (patch)
tree4dfc05cb88dc43c678ab2caa5f3f675a99095026
parentcda9d972b6bab2d942468f13edf25118b183b366 (diff)
Integrate GENIVI Audio Manager Plugins for CES2017 demo.
Change-Id: I56081180f8dc3bc10159492d4bc7e5fdd621ab27 Signed-off-by: Toshiaki Isogai <tisogai@jp.adit-jv.com>
-rw-r--r--recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bbappend4
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amcp_dbus.conf20
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amrp_dbus.conf21
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/configuration.xml522
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/customtypes.xsd63
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/org.genivi.audiomanager.routing.pulseaudio.conf35
-rw-r--r--recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config_7.4.bb38
-rw-r--r--recipes-multimedia/audiomanager-plugins/audiomanager-plugins_git.bb59
-rwxr-xr-xrecipes-multimedia/module-router/module-router_git.bb31
9 files changed, 793 insertions, 0 deletions
diff --git a/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bbappend b/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bbappend
new file mode 100644
index 000000000..3623601c6
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bbappend
@@ -0,0 +1,4 @@
+RDEPENDS_${PN} += "\
+ audiomanager \
+ "
+ \ No newline at end of file
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amcp_dbus.conf b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amcp_dbus.conf
new file mode 100644
index 000000000..49544d5e5
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amcp_dbus.conf
@@ -0,0 +1,20 @@
+<!-- This configuration file specifies the required security policies
+to use the audiomanager command d-bus plugin interface. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- ../system.conf have denied everything, so we just punch some holes -->
+ <policy user="root">
+ <allow own="org.genivi.audiomanager"/>
+ <allow own="org.genivi.audiomanager.command"/>
+ <allow send_destination="org.genivi.audiomanager"/>
+ <allow send_destination="org.genivi.audiomanager.command"/>
+ </policy>
+ <policy at_console="true">
+ <allow send_destination="org.genivi.audiomanager"/>
+ </policy>
+ <policy context="default">
+ <allow send_destination="org.genivi.audiomanager"/>
+ </policy>
+</busconfig>
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amrp_dbus.conf b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amrp_dbus.conf
new file mode 100644
index 000000000..6832d305e
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amrp_dbus.conf
@@ -0,0 +1,21 @@
+<!-- This configuration file specifies the required security policies
+to use the audiomanager routing d-bus plugin interface. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+ <!-- ../system.conf have denied everything, so we just punch some holes -->
+ <policy user="root">
+ <allow own="org.genivi.audiomanager"/>
+ <allow own="org.genivi.audiomanager.routing"/>
+ <allow send_destination="org.genivi.audiomanager"/>
+ <allow send_destination="org.genivi.audiomanager.routing"/>
+ </policy>
+ <policy at_console="true">
+ <allow send_destination="org.genivi.audiomanager"/>
+ </policy>
+ <policy context="default">
+ <allow send_destination="org.genivi.audiomanager"/>
+ </policy>
+</busconfig>
+
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/configuration.xml b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/configuration.xml
new file mode 100644
index 000000000..3df7d5ca9
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/configuration.xml
@@ -0,0 +1,522 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<c:configuration xmlns:c="controller" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="controller audiomanagertypes.xsd ">
+ <listSources>
+ <source>
+ <id>0</id>
+ <domainName>UNKNOWN</domainName>
+ <name>SourceTemplate</name>
+ <volume>0</volume>
+ <visible>TRUE</visible>
+ <className>UNKNOWN</className>
+ <sourceState>SS_OFF</sourceState>
+ <connectionFormat>CF_GENIVI_STEREO</connectionFormat>
+ <connectionFormat>CF_GENIVI_MONO</connectionFormat>
+ <interruptState>IS_OFF</interruptState>
+ <availability>
+ <availability>A_AVAILABLE</availability>
+ <availabilityReason>AR_UNKNOWN</availabilityReason>
+ </availability>
+ <soundProperty>
+ <type>SP_GENIVI_TREBLE</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <soundProperty>
+ <type>SP_GENIVI_MID</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <soundProperty>
+ <type>SP_GENIVI_BASS</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_TREBLE</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_MID</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_BASS</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <registrationType>REG_TEMPLATE</registrationType>
+ <isVolumeSupported>TRUE</isVolumeSupported>
+ <priority>1</priority>
+ <listMainSoundPropertiesToSoundProperties>
+ <mapEntry>MSP_UNKNOWN,SP_UNKNOWN</mapEntry>
+ <mapEntry>MSP_GENIVI_TREBLE,SP_GENIVI_TREBLE</mapEntry>
+ </listMainSoundPropertiesToSoundProperties>
+ </source>
+ <source baseName="SourceTemplate">
+ <id>1</id>
+ <domainName>PulseAudio</domainName>
+ <name>mediaplayer</name>
+ <className>BASE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </source>
+ <source baseName="SourceTemplate">
+ <id>2</id>
+ <domainName>PulseAudio</domainName>
+ <name>ALSA#Playback</name>
+ <className>BASE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </source>
+ <source baseName="SourceTemplate">
+ <id>3</id>
+ <domainName>PulseAudio</domainName>
+ <name>music</name>
+ <className>BASE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </source>
+ <source baseName="SourceTemplate">
+ <id>4</id>
+ <domainName>PulseAudio</domainName>
+ <name>Navi</name>
+ <className>INT</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </source>
+ <source baseName="SourceTemplate">
+ <id>5</id>
+ <domainName>PulseAudio</domainName>
+ <name>phone</name>
+ <className>PHONE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </source>
+ </listSources>
+ <listSinks>
+ <sink>
+ <id>0</id>
+ <domainName>UNKNOWN</domainName>
+ <name>SinkTemplate</name>
+ <volume>0</volume>
+ <visible>TRUE</visible>
+ <mainVolume>100</mainVolume>
+ <className>BASE</className>
+ <muteState>MS_UNMUTED</muteState>
+ <connectionFormat>CF_GENIVI_STEREO</connectionFormat>
+ <connectionFormat>CF_GENIVI_MONO</connectionFormat>
+ <availability>
+ <availability>A_AVAILABLE</availability>
+ <availabilityReason>AR_GENIVI_NEWMEDIA</availabilityReason>
+ </availability>
+ <soundProperty>
+ <type>SP_GENIVI_TREBLE</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <soundProperty>
+ <type>SP_GENIVI_MID</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <soundProperty>
+ <type>SP_GENIVI_BASS</type>
+ <value minValue="0" maxValue="10">5</value>
+ </soundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_TREBLE</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_MID</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <mainSoundProperty>
+ <type>MSP_GENIVI_BASS</type>
+ <value minValue="0" maxValue="10">5</value>
+ </mainSoundProperty>
+ <registrationType>REG_TEMPLATE</registrationType>
+ <isVolumeSupported>TRUE</isVolumeSupported>
+ <priority>1</priority>
+ <listMainVolumesToNormalizedVolumes>
+ <tableEntry>0,0.0</tableEntry>
+ <tableEntry>1,0.01</tableEntry>
+ <tableEntry>2,0.02</tableEntry>
+ <tableEntry>3,0.03</tableEntry>
+ <tableEntry>4,0.04</tableEntry>
+ <tableEntry>5,0.05</tableEntry>
+ <tableEntry>6,0.06</tableEntry>
+ <tableEntry>7,0.07</tableEntry>
+ <tableEntry>8,0.08</tableEntry>
+ <tableEntry>9,0.09</tableEntry>
+ <tableEntry>10,0.1</tableEntry>
+ <tableEntry>11,0.11</tableEntry>
+ <tableEntry>12,0.12</tableEntry>
+ <tableEntry>14,0.14</tableEntry>
+ <tableEntry>15,0.15</tableEntry>
+ <tableEntry>17,0.17</tableEntry>
+ <tableEntry>20,0.2</tableEntry>
+ <tableEntry>22,0.22</tableEntry>
+ <tableEntry>25,0.25</tableEntry>
+ <tableEntry>28,0.28</tableEntry>
+ <tableEntry>31,0.31</tableEntry>
+ <tableEntry>35,0.35</tableEntry>
+ <tableEntry>40,0.4</tableEntry>
+ <tableEntry>45,0.45</tableEntry>
+ <tableEntry>50,0.5</tableEntry>
+ <tableEntry>56,0.56</tableEntry>
+ <tableEntry>62,0.62</tableEntry>
+ <tableEntry>70,0.7</tableEntry>
+ <tableEntry>80,0.8</tableEntry>
+ <tableEntry>90,0.9</tableEntry>
+ <tableEntry>100,1.0</tableEntry>
+ </listMainVolumesToNormalizedVolumes>
+ <listNormalizedVolumesToDecibelVolumes>
+ <tableEntry>0.0,-192.0</tableEntry>
+ <tableEntry>0.01,-40.0</tableEntry>
+ <tableEntry>0.02,-34.0</tableEntry>
+ <tableEntry>0.03,-30.0</tableEntry>
+ <tableEntry>0.04,-27.0</tableEntry>
+ <tableEntry>0.05,-26.0</tableEntry>
+ <tableEntry>0.06,-24.0</tableEntry>
+ <tableEntry>0.07,-23.0</tableEntry>
+ <tableEntry>0.08,-22.0</tableEntry>
+ <tableEntry>0.09,-21.0</tableEntry>
+ <tableEntry>0.1,-20.0</tableEntry>
+ <tableEntry>0.11,-19.0</tableEntry>
+ <tableEntry>0.12,-18.0</tableEntry>
+ <tableEntry>0.14,-17.0</tableEntry>
+ <tableEntry>0.15,-16.0</tableEntry>
+ <tableEntry>0.17,-15.0</tableEntry>
+ <tableEntry>0.2,-14.0</tableEntry>
+ <tableEntry>0.22,-13.0</tableEntry>
+ <tableEntry>0.25,-12.0</tableEntry>
+ <tableEntry>0.28,-11.0</tableEntry>
+ <tableEntry>0.31,-10.0</tableEntry>
+ <tableEntry>0.35,-9.0</tableEntry>
+ <tableEntry>0.4,-8.0</tableEntry>
+ <tableEntry>0.45,-7.0</tableEntry>
+ <tableEntry>0.5,-6.0</tableEntry>
+ <tableEntry>0.56,-5.0</tableEntry>
+ <tableEntry>0.62,-4.0</tableEntry>
+ <tableEntry>0.7,-3.0</tableEntry>
+ <tableEntry>0.8,-2.0</tableEntry>
+ <tableEntry>0.9,-1.0</tableEntry>
+ <tableEntry>1.0,0.0</tableEntry>
+ </listNormalizedVolumesToDecibelVolumes>
+ <listMainSoundPropertiesToSoundProperties>
+ <mapEntry>MSP_UNKNOWN,SP_UNKNOWN</mapEntry>
+ <mapEntry>MSP_GENIVI_TREBLE,SP_GENIVI_TREBLE</mapEntry>
+ </listMainSoundPropertiesToSoundProperties>
+ </sink>
+ <sink baseName="SinkTemplate">
+ <id>1</id>
+ <domainName>PulseAudio</domainName>
+ <name>rsnd-dai.0-ak4642-hifi#Analog#Stereo</name>
+ <className>BASE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </sink>
+ <sink baseName="SinkTemplate">
+ <id>2</id>
+ <domainName>PulseAudio</domainName>
+ <name>Microchip#MOST:0#Multichannel</name>
+ <className>BASE</className>
+ <registrationType>REG_ROUTER</registrationType>
+ </sink>
+ </listSinks>
+ <listGateways>
+ <!-- This is a single domain example, therefore no gateway is present -->
+ </listGateways>
+ <listDomains>
+ <domain>
+ <id>0</id>
+ <name>PulseAudio</name>
+ <busName>org.genivi.audiomanager</busName>
+ <nodeName>pulseaudio</nodeName>
+ <early>FALSE</early>
+ <complete>TRUE</complete>
+ <state>DS_CONTROLLED</state>
+ <registrationType>REG_ROUTER</registrationType>
+ </domain>
+ </listDomains>
+ <listClasses>
+ <class>
+ <name>BASE</name>
+ <type>C_PLAYBACK</type>
+ <priority>1</priority>
+ <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=mediaplayer^music^ALSA#Playback</topology>
+ </class>
+ <class>
+ <name>INT</name>
+ <type>C_PLAYBACK</type>
+ <priority>2</priority>
+ <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=Navi</topology>
+ </class>
+ <class>
+ <name>PHONE</name>
+ <type>C_PLAYBACK</type>
+ <priority>3</priority>
+ <topology>Microchip#MOST:0#Multichannel^rsnd-dai.0-ak4642-hifi#Analog#Stereo=phone</topology>
+ </class>
+ </listClasses>
+ <listPolicies>
+<!--Connect Policy Start-->
+<!--BASE Policy-->
+ <policy>
+ <trigger>USER_CONNECTION_REQUEST</trigger>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "BASE"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_SUSPEND</type>
+ <param>
+ <className>"BASE"</className>
+ <connectionState>CS_CONNECTED</connectionState>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!--INT policy-->
+ <policy>
+ <trigger>USER_CONNECTION_REQUEST</trigger>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <action>
+ <type>ACTION_LIMIT</type>
+ <param>
+ <className>"BASE"</className>
+ <volume>-2500</volume>
+ <pattern>01</pattern>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
+ <condition>priority(CONNECTIONOFCLASS, REQUESTING, OTHERS) LT priority(CONNECTION, REQUESTING)</condition>
+ <action>
+ <type>ACTION_PUSH</type>
+ <param>
+ <className>"INT"</className>
+ <order>O_NEWEST</order>
+ </param>
+ </action>
+ <break>TRUE</break>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_PUSH</type>
+ <param>
+ <className>"INT"</className>
+ <order>O_OLDEST</order>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, "PHONE") INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_MUTE</type>
+ <param>
+ <className>REQUESTING</className>
+ </param>
+ </action>
+ <action>
+ <type>ACTION_CONNECT</type>
+ <param>
+ <className>REQUESTING</className>
+ </param>
+ </action>
+ <break>TRUE</break>
+ </process>
+ </policy>
+<!--PHONE policy-->
+ <policy>
+ <trigger>USER_CONNECTION_REQUEST</trigger>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
+ <action>
+ <type>ACTION_LIMIT</type>
+ <param>
+ <className>"BASE"</className>
+ <volume>-2500</volume>
+ <pattern>02</pattern>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, "INT") INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_MUTE</type>
+ <param>
+ <className>"INT"</className>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(SINK, REQUESTING) EQ "AMP"</condition>
+ <action>
+ <type>ACTION_CONNECT</type>
+ <param>
+ <className>REQUESTING</className>
+ <timeOut>5000</timeOut>
+ </param>
+ </action>
+ <break>TRUE</break>
+ </process>
+ </policy>
+<!--Connect policy end-->
+<!--Disconnect policy start-->
+ <policy>
+ <trigger>USER_DISCONNECTION_REQUEST</trigger>
+ <process>
+ <action>
+ <type>ACTION_DISCONNECT</type>
+ <param>
+ <sourceName>REQUESTING</sourceName>
+ <sinkName>REQUESTING</sinkName>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <action>
+ <type>ACTION_UNLIMIT</type>
+ <param>
+ <className>"BASE"</className>
+ <pattern>01</pattern>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "INT"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, REQUESTING, OTHERS) INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_POP</type>
+ <param>
+ <className>"INT"</className>
+ <order>O_OLDEST</order>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, "INT") INC CS_CONNECTED</condition>
+ <action>
+ <type>ACTION_UNMUTE</type>
+ <param>
+ <className>"INT"</className>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "PHONE"</condition>
+ <action>
+ <type>ACTION_UNLIMIT</type>
+ <param>
+ <className>"BASE"</className>
+ <pattern>02</pattern>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>name(CLASS, REQUESTING) EQ "BASE"</condition>
+ <condition>connectionState(CONNECTIONOFCLASS, "BASE") INC CS_SUSPENDED</condition>
+ <action>
+ <type>ACTION_RESUME</type>
+ <param>
+ <className>"BASE"</className>
+ <connectionState>CS_SUSPENDED</connectionState>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default volume policy start -->
+ <policy>
+ <trigger>USER_SET_VOLUME</trigger>
+ <process>
+ <action>
+ <type>ACTION_SET_VOLUME</type>
+ <param>
+ <sinkName>REQUESTING</sinkName>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default volume policy end -->
+<!-- default mute policy start -->
+ <policy>
+ <trigger>USER_SET_SINK_MUTE_STATE</trigger>
+ <process>
+ <condition>muteState(USER,REQUESTING) EQ MS_MUTED</condition>
+ <action>
+ <type>ACTION_MUTE</type>
+ <param>
+ <sinkName>REQUESTING</sinkName>
+ </param>
+ </action>
+ </process>
+ <process>
+ <condition>muteState(USER,REQUESTING) EQ MS_UNMUTED</condition>
+ <action>
+ <type>ACTION_UNMUTE</type>
+ <param>
+ <sinkName>REQUESTING</sinkName>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default mute policy end -->
+<!-- default set sink sound property policy start -->
+ <policy>
+ <trigger>USER_SET_SINK_MAIN_SOUND_PROPERTY</trigger>
+ <process>
+ <action>
+ <type>ACTION_SET_PROPERTY</type>
+ <param>
+ <sinkName>REQUESTING</sinkName>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default set sink sound property policy end -->
+<!-- default set source sound property policy start -->
+ <policy>
+ <trigger>USER_SET_SOURCE_MAIN_SOUND_PROPERTY</trigger>
+ <process>
+ <action>
+ <type>ACTION_SET_PROPERTY</type>
+ <param>
+ <sourceName>REQUESTING</sourceName>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default set source sound property policy end -->
+<!-- default connect policy start -->
+ <policy>
+ <trigger>USER_CONNECTION_REQUEST</trigger>
+ <process>
+ <action>
+ <type>ACTION_MUTE</type>
+ <param>
+ <className>REQUESTING</className>
+ <timeOut>5000</timeOut>
+ </param>
+ </action>
+ <action>
+ <type>ACTION_CONNECT</type>
+ <param>
+ <className>REQUESTING</className>
+ <timeOut>5000</timeOut>
+ </param>
+ </action>
+ <action>
+ <type>ACTION_UNMUTE</type>
+ <param>
+ <className>REQUESTING</className>
+ </param>
+ </action>
+ </process>
+ </policy>
+<!-- default connect policy end -->
+ </listPolicies>
+ <listSystemProperties>
+ <systemProperty>
+ <type>SYP_DEBUG_LOG</type>
+ <value>5</value>
+ </systemProperty>
+ </listSystemProperties>
+</c:configuration>
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/customtypes.xsd b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/customtypes.xsd
new file mode 100644
index 000000000..2604fb71f
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/customtypes.xsd
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>
+<xsd:schema targetNamespace="controller" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c="controller">
+ <xsd:simpleType name="am_CustomAvailabilityReason_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration list the source/sink availability change reason. </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomSoundPropertyType_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration list the source and sink sound property. The sound properties of Genivi Audio manager can be extended to include project specific properties. Three sound properties like volume persistence, connection persistence and volume support are extended.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomConnectionFormat_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration lists the connection format for the source and sinks.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomNotificationType_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration contains the type of notification possible.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomSystemPropertyType_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration lists the system properties.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="SYP_DEBUG_LOG">
+ <xsd:annotation>
+ <xsd:documentation>1 </xsd:documentation>
+ </xsd:annotation>
+ </xsd:enumeration>
+
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomRampType_t">
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_CustomMainSoundPropertyType_t">
+ <xsd:annotation>
+ <xsd:documentation>This enumeration lists the Main Properties for source and sinks.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_SourceID_e">
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+ <xsd:simpleType name="am_SinkID_e">
+ <xsd:restriction base="xsd:string">
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema>
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/org.genivi.audiomanager.routing.pulseaudio.conf b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/org.genivi.audiomanager.routing.pulseaudio.conf
new file mode 100644
index 000000000..f77845a3a
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/org.genivi.audiomanager.routing.pulseaudio.conf
@@ -0,0 +1,35 @@
+<!-- This configuration file specifies the required security policies
+ for routing adapter for KP audio server to work. -->
+
+<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
+<busconfig>
+
+ <!-- ../system.conf have denied everything, so we just punch some holes -->
+
+ <policy user="root">
+ <allow own="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_destination="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_interface="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow receive_sender="org.genivi.audiomanager.routing.pulseaudio"/>
+ </policy>
+
+ <policy user="adit">
+ <allow own="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_destination="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_interface="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow receive_sender="org.genivi.audiomanager.routing.pulseaudio"/>
+ </policy>
+
+ <policy at_console="true">
+ <allow own="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_destination="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow send_interface="org.genivi.audiomanager.routing.pulseaudio"/>
+ <allow receive_sender="org.genivi.audiomanager.routing.pulseaudio"/>
+ </policy>
+
+ <policy context="default">
+ <allow send_destination="org.genivi.audiomanager"/>
+ </policy>
+
+</busconfig>
diff --git a/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config_7.4.bb b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config_7.4.bb
new file mode 100644
index 000000000..b8b76ec21
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config_7.4.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "Configurations for Audiomanager Plugins for AGL Demo"
+HOMEPAGE = ""
+LICENSE = "Proprietary"
+SECTION = "multimedia"
+
+LIC_FILES_CHKSUM = "file://${WORKDIR}/configuration.xml;md5=97090515005265aca5bddffcee4bc8a1"
+RDEPENDS_${PN} = "libxml2 zlib dbus-lib"
+
+SRC_URI = " \
+ file://amcp_dbus.conf \
+ file://amrp_dbus.conf \
+ file://configuration.xml \
+ file://customtypes.xsd \
+ file://org.genivi.audiomanager.routing.pulseaudio.conf \
+"
+
+FILES_${PN} = " \
+ ${sysconfdir}/dbus-1/system.d/amcp_dbus.conf \
+ ${sysconfdir}/dbus-1/system.d/amrp_dbus.conf \
+ ${sysconfdir}/dbus-1/system.d/org.genivi.audiomanager.routing.pulseaudio.conf \
+ ${sysconfdir}/audiomanager/control/configuration.xml \
+ ${sysconfdir}/audiomanager/control/customtypes.xsd \
+"
+
+FILES_${PN}-dbg += " \
+ /usr/lib/audiomanager/command/.debug \
+ /usr/lib/audiomanager/routing/.debug \
+"
+
+do_install() {
+ install -d ${D}${sysconfdir}/dbus-1/system.d
+ install -m 644 ${WORKDIR}/amcp_dbus.conf ${D}${sysconfdir}/dbus-1/system.d/
+ install -m 644 ${WORKDIR}/amrp_dbus.conf ${D}${sysconfdir}/dbus-1/system.d/
+ install -m 644 ${WORKDIR}/org.genivi.audiomanager.routing.pulseaudio.conf ${D}${sysconfdir}/dbus-1/system.d/
+ install -d ${D}${sysconfdir}/audiomanager/control
+ install -m 644 ${WORKDIR}/configuration.xml ${D}${sysconfdir}/audiomanager/control/
+ install -m 644 ${WORKDIR}/customtypes.xsd ${D}${sysconfdir}/audiomanager/control/
+}
diff --git a/recipes-multimedia/audiomanager-plugins/audiomanager-plugins_git.bb b/recipes-multimedia/audiomanager-plugins/audiomanager-plugins_git.bb
new file mode 100644
index 000000000..c81f414b2
--- /dev/null
+++ b/recipes-multimedia/audiomanager-plugins/audiomanager-plugins_git.bb
@@ -0,0 +1,59 @@
+DESCRIPTION = "GENIVI Audio Manager Plugins"
+HOMEPAGE = "http://projects.genivi.org/audio-manager/home"
+LICENSE = "MPLv2"
+SECTION = "multimedia"
+DEPENDS = "audiomanager libxml2 dbus pulseaudio"
+RDEPENDS_${PN} = "audiomanager-plugins-config"
+
+LIC_FILES_CHKSUM = "file://PluginControlInterfaceGeneric/LICENSE.txt;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRC_URI = " \
+ git://github.com/tisogai/AudioManagerPlugins.git;protocol=https;branch=unknown_element_support \
+ "
+
+SRCREV = "bf5c5e8198b85e84363770150d5a02f553f43296"
+
+S = "${WORKDIR}/git"
+inherit cmake
+OECMAKE_CXX_FLAGS += "-std=c++11"
+EXTRA_OECMAKE = " \
+ -DWITH_COMMAND_INTERFACE_CAPI=OFF \
+ -DWITH_COMMAND_INTERFACE_DBUS=ON \
+ -DWITH_ROUTING_INTERFACE_ASYNC=OFF \
+ -DWITH_ROUTING_INTERFACE_CAPI=OFF \
+ -DWITH_ROUTING_INTERFACE_DBUS=ON \
+ -DWITH_TEST_CONTROLLER=OFF \
+ -DWITH_GENERIC_CONTROLLER=ON \
+ -DCONTROLLER_CONFIG_DIR="/etc/audiomanager/control" \
+"
+
+# NOTE: The specific product should have a separate customtypes.xsd
+# and should be appended to FILES_${PN} in product specific
+# audiomanager-generic-controller_git.bbappend
+FILES_${PN} = " \
+ ${libdir}/audiomanager/control/libPluginControlInterfaceGeneric.so \
+ ${sysconfdir}/audiomanager/control/audiomanagertypes.xsd \
+ ${libdir}/audiomanager/command/libPluginCommandInterfaceDbus.so \
+ ${libdir}/audiomanager/routing/libPluginRoutingInterfaceDbus.so \
+ /usr/share/audiomanager/audiomanager/CommandInterface.xml \
+ /usr/share/audiomanager/audiomanager/RoutingReceiver.xml \
+"
+
+# NOTE: The specific product should have a separate customtypes.h
+# and should be appended to FILES_${PN}-dev in product specific
+# audiomanager-generic-controller_git.bbappend
+FILES_${PN}-dev = " \
+ ${sysconfdir}/audiomanager/control/xsd2header.pl \
+"
+
+FILES_${PN}-dbg += " \
+ ${libdir}/audiomanager/control/.debug/libPluginControlInterfaceGeneric.so \
+ ${libdir}/audiomanager/command/.debug/libPluginCommandInterfaceDbus.so \
+ ${libdir}/audiomanager/routing/.debug/libPluginRoutingInterfaceDbus.so \
+"
+
+# remove example configurations
+do_install_append() {
+ rm -rf ${D}${sysconfdir}/audiomanager/control/*.xml
+ rm -rf ${D}${sysconfdir}/audiomanager/control/customtypes.xsd
+}
diff --git a/recipes-multimedia/module-router/module-router_git.bb b/recipes-multimedia/module-router/module-router_git.bb
new file mode 100755
index 000000000..e84382408
--- /dev/null
+++ b/recipes-multimedia/module-router/module-router_git.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "Pulseaudio router module"
+HOMEPAGE = "https://github.com/tisogai/module-router"
+LICENSE = "LGPLv2"
+SECTION = "multimedia"
+DEPENDS = "pulseaudio"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
+
+SRC_URI = " \
+ git://github.com/tisogai/module-router.git;protocol=https;branch=master \
+ "
+
+SRCREV = "10b9b8bbd890dcd9acb55d4bb12f80659e1338b6"
+
+S = "${WORKDIR}/git"
+inherit cmake
+OECMAKE_CXX_FLAGS += "-std=c++11"
+
+# NOTE: The specific product should have a separate customtypes.xsd
+# and should be appended to FILES_${PN} in product specific
+# audiomanager-generic-controller_git.bbappend
+FILES_${PN} = " \
+ ${libdir}/pulse-*/modules/module-router.so \
+"
+
+
+FILES_${PN}-dbg += " \
+ ${libdir}/pulse-*/modules/.debug/module-router.so \
+"
+
+