Integrate GENIVI Audio Manager Plugins for CES2017 demo.
[AGL/meta-agl-demo.git] / recipes-multimedia / audiomanager-plugins-config / audiomanager-plugins-config / configuration.xml
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>