Integrate GENIVI Audio Manager Plugins for CES2017 demo. 55/7855/3
authorToshiaki Isogai <tisogai@jp.adit-jv.com>
Fri, 23 Dec 2016 12:04:48 +0000 (07:04 -0500)
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>
Tue, 27 Dec 2016 17:40:01 +0000 (17:40 +0000)
Change-Id: I56081180f8dc3bc10159492d4bc7e5fdd621ab27
Signed-off-by: Toshiaki Isogai <tisogai@jp.adit-jv.com>
recipes-core/packagegroups/packagegroup-ivi-common-core-multimedia.bbappend [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amcp_dbus.conf [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/amrp_dbus.conf [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/configuration.xml [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/customtypes.xsd [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config/org.genivi.audiomanager.routing.pulseaudio.conf [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins-config/audiomanager-plugins-config_7.4.bb [new file with mode: 0644]
recipes-multimedia/audiomanager-plugins/audiomanager-plugins_git.bb [new file with mode: 0644]
recipes-multimedia/module-router/module-router_git.bb [new file with mode: 0755]

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 (file)
index 0000000..3623601
--- /dev/null
@@ -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 (file)
index 0000000..49544d5
--- /dev/null
@@ -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 (file)
index 0000000..6832d30
--- /dev/null
@@ -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 (file)
index 0000000..3df7d5c
--- /dev/null
@@ -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 (file)
index 0000000..2604fb7
--- /dev/null
@@ -0,0 +1,63 @@
+<?xml version="1.0"?>\r
+<xsd:schema targetNamespace="controller" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c="controller">\r
+       <xsd:simpleType name="am_CustomAvailabilityReason_t">\r
+               <xsd:annotation>\r
+                       <xsd:documentation>This enumeration list the source/sink availability change reason. </xsd:documentation>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomSoundPropertyType_t">\r
+               <xsd:annotation>\r
+                       <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>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomConnectionFormat_t">\r
+               <xsd:annotation>\r
+                       <xsd:documentation>This enumeration lists the connection format for the source and sinks.</xsd:documentation>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomNotificationType_t">\r
+               <xsd:annotation>\r
+                       <xsd:documentation>This enumeration contains the type of notification possible.</xsd:documentation>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomSystemPropertyType_t">\r
+               <xsd:annotation>\r
+                       <xsd:documentation>This enumeration lists the system properties.</xsd:documentation>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+            <xsd:enumeration value="SYP_DEBUG_LOG">\r
+                <xsd:annotation>\r
+                    <xsd:documentation>1 </xsd:documentation>\r
+                </xsd:annotation>\r
+            </xsd:enumeration>\r
+\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomRampType_t">\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_CustomMainSoundPropertyType_t">\r
+               <xsd:annotation>\r
+                       <xsd:documentation>This enumeration lists the Main Properties for source and sinks.</xsd:documentation>\r
+               </xsd:annotation>\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_SourceID_e">\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+       <xsd:simpleType name="am_SinkID_e">\r
+               <xsd:restriction base="xsd:string">\r
+               </xsd:restriction>\r
+       </xsd:simpleType>\r
+</xsd:schema>\r
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 (file)
index 0000000..f77845a
--- /dev/null
@@ -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 (file)
index 0000000..b8b76ec
--- /dev/null
@@ -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 (file)
index 0000000..c81f414
--- /dev/null
@@ -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 (executable)
index 0000000..e843824
--- /dev/null
@@ -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 \
+"
+
+